Тест по каннибализации брендового трафика

Материал из marketing-wiki.ru
Перейти к навигации Перейти к поиску

Ссылка на отчет: https://app.powerbi.com/view?r=eyJrIjoiYzA5NzBlNzktMTY3NS00MDM0LTgyYjAtZmFlOWVmMzE0YzBhIiwidCI6IjAwMmY1NDQ0LTg0ZDktNDEyMS05NjZkLTM5NGJmMGE1MTAwYiIsImMiOjl9

Ссылка на файл: https://drive.google.com/file/d/0B4WTOaX6z5ZvUjFQLVlHY2xHQkk/view?usp=sharing

Клиенты часто задаются вопросом - стоит ли подключать контекстную рекламу по собственным брендовым запросам? Универсального ответа нет, но есть универсальный тест. Он поможет понять, как поступать конкретно в вашем случае.

Мы говорим о тесте по каннибализации трафика. Его результат — значение ITR (incremental traffic ratio). Это доля добавленных сеансов, которую принес контекст. Например, если ITR=80%, это означает, что брендовый контекст «съел» у SEO всего 20% трафика, а 80% кликов были новыми, дополнительными.

Для проведения теста необходимо собрать брендовую рекламную кампанию в «Яндекс.Директе», в настройках кампании выставить временной таргетинг приемом «Шашечки»:

Img 2.jpg

Далее необходимо собрать статистику по «Визитам» в «Яндекс.Метрике» отдельно по часам с включённым и выключенным контекстом. И здесь начинается самая долгая и муторная работа. Выделять эти данные вручную - худшее, что может произойти за вашу карьеру аналитика. Я знаю о чем говорю, сам так жестил. До тех пор, пока наша хакатон-команда не сказала "Хватит это терпеть!".

Мы решили автоматизировать сбор статистики, расчет результатов и статистической достоверности при помощи Microsoft Power BI.

Всю работу можно было разбить на 3 этапа - подключение к API Яндекс.Метрики и выгрузка "сырых данных" - обработка полученных данных на стороне PowerQuery - расчет результатов и статистической достоверности на стороне DAX

1.Подключение к API Яндекс.Метрики и выгрузка "сырых данных"

На первом этапе мы воспользовались 2-мя коннекторами к API Метрики, написанными Сергеем Лосевым (знай наших!) и Максом Уваровым. Первый коннектор помог с выгрузкой статистики по визитам с органической выдачи Яндекс по брендовым запросам клиента

Коннектор Лосева.jpg

В коннекторе к органическому трафику есть статические параметры: dimensions, metrics, limit, а также фильтр на searchEngineRoot=='yandex'. Динамические параметры подставляются в каждом вашем случае индивидуально: 1. Номер счетчика 2. Даты начала и окончания теста 3. Фильтр ym:s:searchPhrase=@ , в котором вы указываете ваши брендовые запросы (или корни их образующие). Например ym:s:searchPhrase=@'Эльдорад'

Коннектор Уварова.jpg

Коннектор к трафику Яндекс.Директ вызывается через функцию PQYM, динамическими являются параметры: 2. Номер счетчика 3. Даты начала и окончания теста 4. ClinetID Яндекс.Директа

ВАЖНО: на скриншоте вы можете видеть, что за трафик с Яндекс.Директ здесь принимаются клики, а не визиты, как это было в случае с органикой. Что не совсем корректно. Но в нашем случае это - вынужденная мера, вызванная тех. проблемами на стороне счетчика клиента (даже Юра был бессилен(= ). Я верю, что вам судьба уготовила счетчики без таких провалов в данных, и вы сможете в поле metrics вызвать не ym:ad:clicks, а ym:ad:visits


2. Обработка полученных данных на стороне PowerQuery

На этапе обработки запросов мы путем несложных махинаций получаем колонку ContextCondition, которая говорит о том, была ли включена или выключена контекстная реклама в данный час данного дня (помните про принцип шашечек, на котором базируется этот тест?)

Ошибка создания миниатюры: Файл не найден

Далее мы, ссылаясь на запрос Brand_organic, разбиваем его на 2 таблицы. В первой содержаться агрегированные по дням данные о часах с включенным контекстом, во второй - с выключенным.

Ошибка создания миниатюры: Файл не найден

Статистика о трафике с Яндекс.Директ приводится к тому же виду, что и "органическая".

Ошибка создания миниатюры: Файл не найден

3. Расчет результатов и статистической достоверности на стороне DAX

Связав через List.Dstes таблицы Brand_organic_c_off, Brand_organic_c_on и Brand_context получаем панорамную статистику текущего теста:

Ошибка создания миниатюры: Файл не найден

Искомое значение IRT вычисляется по формуле: IRT = Добавленные визиты / Визиты с контекста , где Добавленные визиты = Визиты с контекста + Визиты с органики в часы с включенным контекстом

Т.о., для расчета ITR нам нужны промежуточные вычисляемые метрики. Statadop.jpg


Ну что ж, все необходимые данные есть, супер, огонь, давайте считать ITR:

Itr.jpg

Победа - полученный ITR составил 43% при критическом значении 3% (т.е. с 40% "запасом").

Itrfin.jpg

Критическое значение - это точка, в которой мы "выходим в 0". Ведь брендовые клики пусть и дешевые, но не бесплатные. minITR рассчитывается индивидуально для каждого клиента из системы уравнений

бренд CPC * X = Z доход с 1 бренд клика * X * minITR = Z

где X — количество кликов с бренд-РК, Z — доход с бренд-РК

Полученный ITR=43% - число крайне чудесное и позитивное. Оно говорит о том, что при подключении брендового контекста на данном клиенте, 43% контекст-кликов являются новыми, добавленным. Что, в свою очередь значит, новую, добавленную прибыль!

Richbitch.jpg


Осталось проверить статистическую значимость нашего теста. Ведь золотые мешки нашего бренд-трафика на деле могут оказаться всего-лишь черными пакетами погрешности и слез (а какие метафоры начинаете использовать вы на 25й час без сна?=)

Для проверки рассчитаем доверительный интервал по формуле

confidence interval = X +- (1,96 * Standard Deviation/(n^0,5)) где X - матожидание, Standard Deviation - стандартное отклонение (сигма), n - размер выборки

Для реализации заводим все необходимые вычисляемые метрики: Dopm.jpg На всякий случай держите DAX-формулы: AVERAGE() - матожидание COUNT() - размер выборки STDEV.P() - стандартное отклонение


Рассчитали. CI = 37% - 46%. Окончательно выдохнули - даже если ориентироваться по нижней границе ДИ, "запас" относительно критического ITR составляет 34%

Ci.jpg

Вот и все. Скачивайте, пользуйтесь. Заводите свои тесты, подставляйте свои параметры. Получайте значения ITR и дополнительные деньги. Любите жизнь и надевайте зимой вторые штаны=) Если мы выкатим какой-нибудь апдейт (в планах - проще и элегантнее реализовать 2-й этап с обработкой запросов) - обязательно поделимся в группе про Power BI и Excel

Final.jpg