как протестировать ставки, не применяя их

Newser

Moderator
Команда форума
Регистрация
5 Фев 2019
Сообщения
294
Тест ставок в контекстной рекламе вызывает вопросы даже у опытных PPC-специалистов. Так как даже при бесконечном объеме данных, с высокой достоверностью определить какой вариант ставки лучше можно только при разнице в эффективности более 3−5%. Не очень оптимистично, так ведь? Однако у меня есть несколько интересных способов проверки, которыми я поделюсь в этой статье.

Подписывайся на наш Телеграм канал и паблик ВК и узнавай первым о новых событиях!

Недостатки А/Б тестирования ставок

А/B тесты ставок имеют целый ряд проблем:

1. Они требуют для достоверных результатов просто астрономическое числа кликов.
2. Чтобы провести тест в Яндекс.Директ, нужно заказывать копии рекламной кампании у персонального менеджера и устанавливать часы в шахматном порядке:
  • что исключает автоматическое тестирование;
  • часто приводит к ошибкам;
  • требует довольно много времени на подготовку;
  • шахматка не равнозначна случайному распределению кликов между вариантами, из-за чего возникает небольшая погрешность.

3. Почти всегда, ставки тестируются только на части рекламных кампаний. Преимущество одного варианта над другим на части аккаунта не говорит о преимуществе его на всем аккаунте.
4. В отличие от тестирования изменений на сайте, не достаточно просто сравнить показатель конверсии у двух вариантов. Нужно выравнивать бюджет, CPA или ДРР (доля рекламных расходов, отношение дохода к расходу), и сравнивать число конверсий или выручку. Однако, выравнивание бюджета и CPA происходит с некоторой погрешностью.

В общем, даже при бесконечном объеме данных, с высокой достоверностью определить какой вариант лучше мы сможем только если у вариантов разница в эффективности будет более 3−5%. Назовем это теоритической чувствительностью.

На теоретическую чувствительность влияют следующие факторы:

1.
Мы проводим тест не на всем аккаунте, а на его определенной части. Причем ключевые слова, на которых тестируем, мы выбираем не случайным образом.
2. Мы выравниваем бюджет/CPA/ДРР у двух вариантов с некоторой погрешностью.
3. Шахматка не равнозначна случайному распределению кликов между вариантами.

На практике из-за того, что у нас нет бесконечного объема данных, даже для больших сайтов, порог чувствительности А/Б теста около 10−20%. Если разница в эффективности двух вариантов меньше этого порога, то проведение А/Б ненамного лучше подкидывания монеты. Назовем это практической чувствительностью.

В итоге А/Б тест ставок:
  • неточный;
  • идет долго;
  • требует много работы;
  • требует довольно специфических знаний;
  • опасный, ведь всегда есть вероятность, что новые ставки будут работать хуже;
  • его нельзя полностью автоматизировать.
Есть такая метрика...

Поэтому может существовать метрика, обладающая большей чувствительностью (даже теоретической), чем А/Б тест. Причем эту метрику можно просто рассчитать по историческим данным, не трогая ставки. Если это автоматизировать, то можно сделать за пару кликов.

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

Другими словами эта метрика будет хорошо отвечать на вопрос: «Какой вариант лучше?», но довольно плохо на вопрос «На сколько лучше?».


Теория

Промежуточные расчеты могут вам показаться громоздкими, но итоговая формула будет короткой.

Для простоты предположим, что у каждого ключевика:

  • CPC и число кликов пропорциональны ставке;
  • вероятность конверсии не зависит от ставки.
1598949309chrome_cycFm4RSfu.png

Пусть мы устанавливаем ставки пропорционально прогнозу:
1598949311chrome_lyZbLRgWaY.png

Где:

  • f — наш прогноз вероятности конверсии;
  • L — константа, чтобы вписаться в наши ограничения (бюджет, целевой CPA).
Пусть p это вероятность конверсии, тогда ожидаемое число конверсий равно:
1598949312chrome_fMvlv2hUnO.png

Ожидаемый расход по ключевику равен:
1598949313chrome_8SeYj1nNbd.png

Пусть наша цель максимум конверсий при фиксированном CPA=TargetCPA.

Ожидаемый CPA равен:
1598949314chrome_1XhG08y9UJ.png

Чтобы найти L приравняем целевой CPA к ожидаемому:
1598949315chrome_blt0rQR8qx.png

Отсюда можно вычислить L:
1598949316chrome_HDEyNfygbE.png

Введем оператор среднего взвешенного:
1598949318chrome_e7hdcjeTiX.png

Из чего следует, что:
1598949319chrome_hDYd7F7XYd.png

Также можно легко видеть, что константу можно вынести из средневзвешенного:
1598949320chrome_FXklb9Q7yy.png

Вернемся к L:
1598949321chrome_0Z9Hp3hjUh.png

Для простоты предположим, что с и f не коррелируют. То есть справедливо:
1598949322chrome_EXprPKxegN.png

Рассчитаем ожидаемое число конверсий:
1598949324chrome_jtKX5Mgx97.png

Посчитаем, что будет при равных ставках. Пусть наш прогноз для всех ключей одинаковый и равен некоторой константе m. Не нарушая общности можно сказать, что m равна средневзвешенной конверсии:
1598949325chrome_fUnZHKjAf5.png



КУРС

Теперь поделим число конверсий при произвольных ставках на число конверсий при равных ставках. Получим во сколько раз ставки приносят больше конверсий, чем равные ставки при том же CPA. Назовем эту метрику Коэффициент Улучшения Равных Ставок (КУРС).
1598949326chrome_UqNI2rsde5.png

1598949327chrome_5HcoIoYVWV.png



Проверка

При равных ставках КУРС должен быть равен 1. Например, все ставки равны константе S:
1598949328chrome_VHGnVOUOAS.png



Физический смысл


  • W[p] — это просто множитель, который не зависит от прогноза.
  • W[fp] — растет с увеличением корреляции между прогнозом и вероятностью конверсии. Также он растет с дисперсией ставок (разбросом).
  • W[ff] — растет с увеличением дисперсии ставок.
Можно выразить КУРС через дисперсию ставок и корреляцию между ставками и прогнозом.
1598949330chrome_2W2CDb69w7.png

Где:

  • C — это взвешенный коэффициент корреляции Пирсона между ставками и прогнозом. Мера адекватности ставок, не превышает 1. Равен 1 при идеальном прогнозе, равен 0 при случайных ставках.
  • V[] — взвешенная относительная дисперсия. Мера разброса. Больше либо равна нулю. Например, если V[f]=0 это значит, что все ставки одинаковые. Почти наверняка выполняется V[p]<1. Обычно V[p] около 0.5. V[f] обычно не сильно отличается от V[p].
1598949331chrome_i5OQ1TfsB7.png

При R[p]=0.5
1598949332image47.png

Видно, что в основном, чем больше V[f], тем сильнее КУРС зависит от корреляции. Также легко увидеть, что при больших корреляциях (больше 0.95) КУРС практически не зависит от V[f].

КУРС при идеальных ставках

КУРС при идеальных ставках f=p, C=1:
1598949333chrome_OHgPEYlvv1.png

1598949334chrome_mbQF8gqL21.png

1598949335chrome_JRKRI8FQqV.png

1598949337chrome_5Cqg0fd4ZG.png

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

КУРС<2

Из того, что почти наверняка, V[p]<1 получаем, что КУРС почти всегда меньше 2. Обратное говорит, скорей всего, о том, что значительное число ключевых слов имеет практически нулевую конверсию (намного меньшую, чем средней по сайту).

Это может получиться, например, когда вы покупаете львинную часть кликов на товары, которых у вас нет в наличии, на 404 страницы, на нерелевантные страницы или на части страниц нет кода отслеживания конверсий. Другими словами, КУРС>2 может говорить о том, что ставки решают какую-то специфическую проблему.

Например, вы разработали лекарство, которое продлевает жизнь лабораторных мышей с 2 до 4 лет (вдвое). Затем вы закупили новую партию мышей, и новые тесты показали, что в контрольной группе (не принимали лекарство) срок жизни 1 год, а тестовой — 3 года (втрое выше).

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



Расчет

Рассчитать КУРС из исторических данных можно по формуле:
1598949338chrome_XYTBDnKoK3.png

Где:
  • r — показатели конверсии ключевых слов;
  • n — число кликов у ключевых слов.
Обратите внимание, что f не должен напрямую зависеть от r. Т.е. f и r должны быть посчитаны на разных периодах.

Другими словами, нужно проводить «тест» так:

Например, 1го числа мы снимаем ставки или считаем прогноз. Запоминаем f.

Через пару недель, например 16-го числа, мы снимаем данные со 2-го по 15-ое. И получаем n и r.

Считаем КУРС, тот вариант у которого выше КУРС считаем победителем.
Поскольку в ходе этого теста мы не применяет ставок, просто смотрим статистику, то мы будем называть такой тест пассивным.

Ставки


Если мы домножим f на какой-то постоянный множитель S, одинаковый для всех ключевиков, то КУРС не изменится:
1598949341chrome_Pe5ccgIFNi.png

Поэтому вместо f можно взять не только прогноз, но и набор ставок, которые пропорциональны исходному прогнозу. Что дает возможность сравнивать не только прогнозы, но и наборы ставок друг с другом, или набор — ставок с прогнозом.



Предельный КУРС

Можно дать следующую оценку предельному КУРСу (при идеальном прогнозе):
1598949342chrome_inZi2jYWl1.png

Где:

  • r — показатель конверсии за первый период (на этом периоде считаются обычные курсы);
  • n — число кликов за первый период;
  • R — показатель конверсии за второй период (периоды не должны пересекаться).

Если у вас нет второго периода, то можно первый период разбить на 2 части (в идеале равные) тогда:

  • r — показатель конверсии в первой части;
  • R — показатель конверсии во второй части;
  • n — число кликов за весь период.

Это формула не зависит от однородной сезонности, когда конверсия всех ключевиков снижается или увеличивается в одинаковое число раз.

Точность расчета предельного КУРСа на малых данных в несколько раз меньше, чем у обычного КУРСа.

Другие задачи

Мы расмотрели задачу «максимальное число конверсий при фиксированном CPA». Однако, КУРС можно применять практически ко всем задачам.


Максимум оборота

Если у нас задача максимум оборота при фиксированном ДРР. То формула КУРСа не изменится. Нужно просто вместо r подставить отношения оборота к числу кликов.

Однако правило V[p]<1 и КУРС<2 в этом случае может не соблюдаться.


Фиксированный бюджет


Если у нас фиксированный бюджет, то после расчетов получим:
1598949343chrome_nYxPikR8gU.png

Что не приведет к качественным изменениям. Если у одного прогноза выше КУРС, значит у него выше и корень из КУРСа.


Модификаторы ставок


Вы можете аналогичным образом рассчитать КУРС не только для ставок, но и для модификаторов ставок по времени суток, дню недели и прочему.

Также можно оценивать учет сезонности.


Заключение


Чтобы сравнить 2 набора ставок или прогнозы, то нужно посчитать на них этот параметр:
1598949345chrome_C8Ijk9bTnV.png

Где:

  • r — показатели конверсии ключевых слов или отношения дохода к числу кликов.
  • n — число кликов у ключевых слов.
  • f — ставки, или прогноз конверсии, или дохода с клика. При их расчете не должны использоваться данные за тот период за который снят r.

W[] — оператор среднего взвешивания:
1598949346chrome_txLiXZI5f2.png

Равные ставки дают КУРС=1. Максимальный КУРС можно вычислить так:
1598949347chrome_UHqtpUul2f.png

Где R — показатели конверсии ключевых слов или отношения дохода к числу кликов за другой период, не пересекающийся с первым.


Расчет в Excel

Для начала нужно избавиться от средневзешанного:
1598949348chrome_Cw0IpsxtxW.png

Пусть:

  • n (клики) в колонке A находятся;
  • r (конверсия) в колонке B находится;
  • f (прогноз/ставки) находятся в колонке C.

Тогда формула получится такой:

SUM(A1:A)*POWER(SUMPRODUCT(A1:A,B1:B,C1:C),2)/
(POWER(SUMPRODUCT(A1:A,B1:B),2)*SUMPRODUCT(A1:A,C1:C,C1:C))

Однако, формулу можно упростить, если в колонке D находится число конверсий и доход:

SUM(A1:A)*POWER(SUMPRODUCT(C1:C,D1:D),2)/
(POWER(SUM(D1:D),2)*SUMPRODUCT(A1:A,C1:C,C1:C))

1598949349chrome_8kb1sjFr3G.png

Пусть R находится в колонке G.

Тогда формула:

SUM(A1:A)*SUMPRODUCT(A1:A,B1:B,G1:G)/(SUMPRODUCT(A1:A,B1:B) *SUMPRODUCT(A1:A,G1:G))

Вот и все :) Надеюсь, данная статья будет для вас полезна, и вы найдете что-то интересное для себя!

Источник
 
Сверху