Задача прогнозирования трафика
При создании рекламной системы очень важно предоставить рекламодателям возможность прогнозирования рекламного трафика. Такой прогноз дает пользователю понимание:
- Реально ли открутить нужное число показов в планируемые сроки
- Каков потенциал размещения баннера на данном рекламном месте с данными условиями таргетирования.
Прогноз предоставляют практически все современные системы размещения (Google AdWords, OpenX, Яндекс.Директ), правда, обычно без упоминания качества прогноза. Поговорим более детально о том, как можно построить систему прогнозирования и от чего будет зависеть качество прогноза.
Типичная система прогнозирования использует в качестве отправной точки накопленную системой статистику по рекламным местам.
Здесь ёмкость — это показатель того, сколько трафика (максимально) может обеспечить площадка/рекламное место.
Общий трафик рекламного места обычно хорошо предсказуем; помимо этого, можно анализировать темпы роста трафика и учитывать их как дополнительный фактор (например, предположить, что темпы роста трафика останутся более-менее постоянными). В итоге для каждого рекламного места мы экстраполируем существующую статистику для получения прогноза.
Очень важным моментом в рекламном трафике является сезонность, т.е. временное распределение трафика сильно коррелирует с календарными интервалами:
- Недельный трафик имеет тенденцию к повторению в соответствующие дни недели; трафик выходных и праздничных дней, как правило, отличается от трафика будней.
- Также имеется корреляция с локальным (местным) временем в разные сутки
- В разные годы имеется корреляция между соответствующими месяцами года (как и между временами года)
Сезонность проявляется по-разному у разных рекламных площадок и даже рекламных мест на одной площадке. Какие-то площадки имеют всплеск посещаемости в рабочее время, какие-то наоборот. Чтобы сделать прогноз более точным, необходимо внести календарные поправки. В экстраполяции трафика нужно учесть, для каких именно календарных «областей» мы хотим сделать прогноз. Если это, например, выходной день, то более репрезентативным будет трафик выходного дня. Если это утренние часы, то лучше всего экстраполировать статистику именно утренних часов. Чем больше сезонных факторов мы учтем, тем точнее будет прогноз. При этом нужно, конечно, понимать, что такие улучшения не бесплатны. Усложняется алгоритм прогнозирования и возникает необходимость дополнительной «календарной» группировки статистики, что приводит к быстрому росту объема статистических данных. На первый взгляд ведь объем промежуточных статистических данных (оперативная статистика) вроде бы останется таким же, как и раньше — раньше через рекламную систему проходило 100 млн. событий, столько же будет и теперь, откуда взялся рост объема? А рост объема возникает по причине того, что всю промежуточную статистику нужно будет группировать для использования в прогнозе. Чем больше «календарных точек» использует система прогнозирования, тем больше групп возникает при такой группировке.
Нетрудно прикинуть, что учет статистики по месяцам года увеличит число таких групп минимум в 12 раз (при хранении данных за 1 год), учет статистики по дням недели — минимум в 7 раз (если хранить данные всего за одну неделю), и т.д.
Общий принцип: чем точнее мы хотим сделать прогноз, тем дороже он обойдется в плане программных и аппаратных ресурсов.
Таргетирование рекламы
До этого момента мы полностью игнорировали возможность таргетирования рекламы. Система размещения может поддерживать такие переменные таргетирования как, например:
- Геолокация (город, область и т.п.)
- Браузер пользователя
- Операционная система пользователя
Таргетирование вносит существенные усложнения в описанную выше схему:
- Необходимо учитывать не просто ёмкость рекламного места целиком, а ёмкость рекламного места при данных условиях таргетирования
- Условия таргетирования могут нетривиальным образом накладываться друг на друга.
Концептуально условия таргетирования делят весь общий трафик рекламного места на отдельные взаимно-пересекающиеся сегменты (поэтому сами условия таргетирования часто называют segmentation variables).
В данном примере 3 переменные таргетирования образуют 4 пересечения: Firefox & Москва, Firefox & Windows, Москва & Windows, Firefox & Москва & Windows. Существует также серая область — остальное — куда попадают пользователи, не подходящие ни под одно из условий. В сумме все эти сегменты формируют весь трафик рекламного места.
Выше мы анализировали общую статистику с целью прогноза ёмкости рекламного места. Подобным же образом можно поступить и с условиями таргетирования. При этом группировка статистики будет осуществляться по набору переменных таргетирования. Можно грубо оценить число таких групп сверху как перемножение числа значений каждой переменной (это будет ситуация, когда все условия имеют пересечения между собой).
Чтобы стало яснее, о каком объеме данных идет речь, вот пример. Допустим, у нас есть следующие переменные таргетирования:
- Геолокация — 100 регионов
- Браузер — 10 вариантов
- Пол — 2 варианта.
Примем как факт, что все варианты значений между собой не пересекаются (если пользователь находится в Москве, то он не может быть в Санкт-Петербурге). Таким образом, для каждого рекламного места нам понадобится обработать, как максимум, (100 + 1) × (10 + 1) × (2 + 1) комбинаций = 3333 записи на каждое рекламное место. (Везде добавляется значение «не определено»)
Если представить, что переменных у нас не три, а десять, причем каждая может принимать по 100 значений, объем данных может вырасти до космических величин. Конечно, мы рассматриваем оценку сверху, то есть реально будет возможна только часть всех этих комбинаций; а вот какая именно часть — можно понять только накопив эти данные.
В противовес хранению ёмкости для каждой комбинации переменных можно оценить ёмкость приближенно — как некоторую долю от общей ёмкости. Допустим, нам известны ёмкости по каждой переменной таргетирования отдельно (что требует существенно меньше ресурсов), в качестве примера возьмем браузер и операционную систему:
- Браузер Internet Explorer составляет 20% общей ёмкости
- ОС Windows составляет 80% общей ёмкости.
Как можно приближенно оценить ёмкость комбинации Internet Explorer & Windows? Прежде всего, очевидно, что она не больше ёмкости каждой переменной в отдельности, т.е. не превышает минимума этих двух — 20%. Еще можно предположить, что доля пользователи Internet Explorer среди пользователей Windows пропорциональна общей доле пользователей Internet Explorer. При таком предположении ёмкость Internet Explorer & Windows у нас составит 20%×80% = 16% (эта оценка, конечно, отклоняется от действительности, ведь мы знаем, что каждый пользователь IE является пользователем Windows с вероятностью, близкой с 100%). В итоге мы получили приблизительную оценку ёмкости в 16-20% от общей. Подобная же схема оценки может использоваться для трех и более переменных. Разумеется, точность такой оценки невелика; её можно повысить, дополнительно накапливая статистику не только по отдельным переменным, но и, к примеру, парам и даже тройкам переменных. Это будет компромиссное решение, когда число комбинаций (а следовательно, объем данных) удерживается в некоторых рамках, при этом повышается точность прогноза.
Ротация размещений
На каком-то этапе мы получили оценку ёмкости по любым комбинациям переменных таргетирования. Для построения финального прогноза этих данных недостаточно. Ведь на одном рекламном месте может происходить ротация нескольких размещений. Таким образом, чтобы рассчитать прогноз какого-то размещения, нужно знать все размещения, которые в будущем будут конкурировать с ним на данном рекламном месте. Более того, добавление нового размещения в систему влияет на прогноз всех остальных пересекающихся с ним размещений (понятно, что вновь добавленное размещение «отнимет» у остальных часть трафика).
Примерная схема расчета прогноза по ротации будет рассмотрена в следующей части.
Заключение
Итак, для составления правильного прогноза нам потребуется накопление достаточного объема статистики по рекламным местам. При этом чем точнее мы хотим получить прогноз, тем больше (и разница может быть в несколько порядков) будет расход памяти и процессорного времени.
Условно мы поделили формирование прогноза на две стадии:
- Статическая часть — расчет ёмкостей рекламных мест с учётом таргетирования
- Динамическая часть — расчет финального прогноза по размещению с учётом ротации на данном рекламном месте.