Шаг 12. Моделирование стратегии рекламной кампании

На данный момент эффективность рекламы в нашей модели полагается постоянной. На самом деле, она зависит от текущих расходов компании на рекламу. Мы хотим улучшить нашу модель, чтобы иметь возможность управлять расходами на рекламную кампанию. Изменяя месячные расходы на рекламу, мы сможем повлиять на текущую эффективность рекламы.

Моделирование месячных расходов

Создайте константу, задающую месячные расходы компании
  1. Создайте параметр MonthlyExpenditures.
  2. Задайте Значение по умолчанию: 1100.

Замените параметр AdEffectiveness вспомогательной переменной

  1. Удалите параметр AdEffectiveness.
  2. Создайте вспомогательную переменную AdEffectiveness с формулой: MonthlyExpenditures/10000.0. Мы полагаем, что именно так эффективность рекламы зависит от текущих рекламных расходов компании.
  3. Добавьте еще одну связь зависимости, ведущую от параметра MonthlyExpenditures к динамической переменной AdEffectiveness.

Мы хотим вести статистику всех расходов компании. Это может быть сделано созданием специальной переменной для хранения информации о том, сколько денег было потрачено на рекламу продукта. Каждый месяц мы будем обновлять это значение с помощью специального события, добавляя значение запланированных на предстоящий месяц расходов на рекламную кампанию продукта.

Добавьте переменную для хранения общих расходов компании
  1. Перетащите элемент Переменная из палитры Агент на диаграмму типа агента Main.
  2. Назовите переменную TotalExpenditures.

Создайте событие, которое будет обновлять значение TotalExpenditures

  1. Перетащите элемент Событие из палитры Агент на диаграмму типа агента Main.
  2. Назовите событие monthlyEvent.
  3. Сделайте так, чтобы таймер срабатывал каждый месяц. Выберите Циклический из выпадающего списка Режим. Поскольку одна единица модельного времени в нашей модели соответствует одному году, то одному месяцу будет соответствовать выражение 1.0/12.0. Введите 1.0/12 в поле Таймаут.
  4. Задайте Действие события:
    TotalExpenditures += MonthlyExpenditures;
    Этот код будет выполняться каждый раз по истечении таймаута события. Он выполняет сбор статистики, а именно добавляет значение запланированных рекламных расходов на предстоящий месяц к значению переменной TotalExpenditures.

Моделирование плана рекламной кампании

Поскольку реклама играет значительную роль только в начальной стадии процесса завоевания рынка, мы хотим в какой-то момент времени, скажем, через 3 года остановить рекламную кампанию. Этим мы сэкономим деньгги, бесцельно тратящиеся на рекламу тогда, когда насыщение рынка будет определяться практически исключительно покупками продукта, вызванными общением потребителей с потенциальными потребителями.

Добавьте константу, задающую время переключения

  1. Добавьте параметр SwitchTime.
  2. Задайте Значение по умолчанию: 3.

Теперь мы визуально зададим поведение системы с помощью диаграммы состояний.

Создайте диаграмму состояний для моделирования рекламной стратегии

  1. Начните задание диаграммы состояний с добавления элемента Начало диаграммы состояний (перетащите этот элемент на диаграмму из палитры Диаграмма состояний).

  1. Добавьте состояние. Перетащите элемент Состояние из палитры Диаграмма состояний так, чтобы состояние присоединилось к добавленному ранее элементу (см. рисунок ниже). Измените имя состояния на with_advertising.

  1. Добавьте еще одно состояние под только что созданным. Назовите его without_advertising.

  1. Нам нужно остановить рекламную кампанию в тот момент, когда диаграмма состояний войдет в это состояние. Поэтому напишите в поле свойства Действие при входе этого состояния MonthlyExpenditures=0.0;

  1. Добавьте переход, ведущий из состояния with_advertising в состояние without_advertising. Сделайте двойной щелчок мышью по элементу Переход в палитре Диаграмма состояний. Затем нарисуйте переход, ведущий из состояния with_advertising в состояние without_advertising, щелкнув по границе верхнего состояния, а затем по границе нижнего состояния.


  1. Укажите, что этот переход произойдет по истечении времени SwitchTime. Для этого выберите По таймауту из выпадающего списка Происходит и введите SwitchTime в поле Таймаут.

Теперь, когда диаграмма состояний находится в начальном состоянии with_advertising, рекламные расходы кампании определяются переменной MonthlyExpenditures. Как только диаграмма состояний покидает это состояние в момент времени SwitchTime, компания перестает рекламировать продукт.

Запустите модель и убедитесь, что рекламная кампания длится теперь только три года.

Контрольная модель: Bass Diffusion - Phase 5


Шаг 11. Моделирование цикличности спроса

Шаг 13. Оптимизация рекламной стратегии