В большинстве случаев А/B тесты ставок в контекстной рекламе проводятся некорректно и поэтому они часто дают неоднозначные результаты. Из этой статьи вы узнаете как правильно проводить А/B тесты ставок.

Состоятельность

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

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

Если мы тестируем 2 варианта лендинга и сравниваем конверсию, то этот тест состоятельный. Нам нужно просто сравнить у какого из вариантов выше конверсия. Но с тестом ставок не все так просто.

Пример

Допустим запустив тест и подождав бесконечное время мы получили:

Вариант А Вариант Б
Конверсия 1% 1.2%
Конверсии в неделю 100 120
CPA 1$ 1.08$
Расход в неделю 100$ 130$

По этому тесту не понятно какой вариант лучше. Нужно либо переделывать тест либо использовать какие-то допущения.

Показатель Уварова

Можно рассчитать показатель Уварова, если наша цель “максимум конверсий при фиксированном CPA”, то он равен:

1

Поскольку U>1 значит вариант Б лучше.

Однако, при вычислении показателя Уварова используются допущение о том, что клики пропорциональны корню из ставки. Поэтому наличие этой метрики не делает методику состоятельной.

НЗМ

Другая возможность трактовки результатов это использование непрерывно затухающей модели из моей книги. НЗМ говорит о том, что число кликов зависит от CPC не более чем пропорционально. Т.е. если CPC возрастет в k раз, то число кликов возрастет не более чем в k раз.

Чтобы выровнять CPA у вариантов нужно уменьшить CPС у второго варианта в 1.08 раз число кликов и конверсий уменьшится не более чем в 1.08 раз. Т.е. будет выше 120/108 = 111. Поскольку 111>100, то вариант Б снова лучше.

Однако, не всегда НЗМ дает какую-то однозначную картину. Например, при CPA=121$ НЗМ не даст четкого ответа на вопрос: “Какой из вариантов лучше?”.

Выводы

Методика тестирования ставок не состоятельна. Эту проблему нельзя решить трактовкой результатов. Поэтому нужно перед проведением теста проводить дополнительные операции.

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

Выравнивание

Чтобы провести состоятельный тест ставок нужно выровнять какой-то KPI перед тестом. Вопрос только в том, что выравнивать?

Средняя ставка

Наиболее простой вариант — это выравнивание средней ставки. Однако, он ничего нам не даст. Поскольку расход зависит не только от средней ставки, но и от дисперсии ставок (меры разброса ставок). Т.е. у двух наборов ставок с одинаковым средним будет разный расход и CPA.

Для простоты предположим, что у всех ключевых слов при ставке в 1$ будет 100 кликов. Число кликов растет пропорционально ставке. Т.е. при ставке 2$ у ключа будет 200 кликов, а при 3$ — 300. Другими словами число кликов = 100 * ставка. Пусть CPC равен половине ставки.

Пусть у нас есть 2 ключевых слова. При ставках=2$

Ставка Клики CPC Расход
1 2$ 200 1$ 200$
2 2$ 200 1$ 200$
Итого 2$ 400 1$ 400$

 

При ставках 1$ и 3$ (средняя ставка снова 2$)

Ставка Клики CPC Расход
1 1$ 100 0.5$ 50$
2 3$ 300 1.5$ 450$
Итого 2$ 400 1.25$ 500$

 

Теперь рассмотрим случай с произвольным числом ключевых слов:

2

3

 

Т.е. расход зависит не только от средней ставки, но и от дисперсии ставок. Таким образом, выравнивание средней ставки не выравняет расход.

 

CPA

CPA рассчитанный по данным статистики обладает довольно большим случайным разбросом.

Допустим у нас каждую неделю было по 10.000 кликов по 1$. Вероятность конверсии 1%. Посмотрим в R каковы будут колебания недельного CPA год (50 недель):

clicks = 10000 #кликов в неделю

cpc    = 1

p      = 0.01  #вероятность конверсии

weeks  = 50
conversions = rbinom(weeks,clicks,p)

cpa = clicks*cpc/conversions
plot(cpa/mean(cpa),type='l')

4

Мы видим довольно значительный разброс, порой превышающий 20%.

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

Ожидаемый CPA ключей

В оптимизаторах конверсии, если задан целевой CPA, то обычно используется следующая схема:

5

  • f  — прогноз
  • L — коэффициент вписки, который зависит от  эффективности автоброкера и целевого CPA.

6

 

7

8

 

Получим, что ожидаемый CPA равен целевому тогда и только тогда, когда Var[f]=Cov[p,f]. Кроме тривиальных случаев, такое возможно только когда p=f у всех ключевых слов. Т.е. прогноз идеальный.

Такой способ можно использовать только при предположении, что наш прогноз близок к идеальному. Проверить это предположение мы не можем, поскольку CPA рассчитанный по данным статистики имеет очень большой случайных разброс.

Более того, L в более сложных примерах зависит от набора ставок. Поэтому даже при идеальном прогнозе, в первые пару недель работы оптимизатора конверсии, есть систематическая ошибка вписки в районе 5%.

 

Расход

Расход имеет намного меньшие случайные колебания чем CPA

avClicks = 10000 #ср. число кликов в неделю
p        = 0.01  #вероятность конверсии
weeks    = 50
expense  = c()

cpa      = c()

for(i in 1:weeks){
    clicks = rpois(1,avClicks)

    #если CPC каждого клика ~ gamma(1,1),
    #то средний CPC n кликов будет ~ gamma(n,n)
    cpc    = rgamma(1,avClicks,avClicks)

    expense[i] = clicks*cpc

    conversions[i] = rbinom(1,clicks,p)
}
cpa = expense/conversions
plot(cpa/mean(cpa),type='l')

lines(expense/mean(expense),col='green')

9

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

Следовательно нужно выравнивать расход и сравнить число конверсий у двух вариантов.

Даже если ваша цель “Максимум кликов при фиксированном CPA”. Если один из вариантов выдает больше конверсий при одинаковом расходе, то, очевидно, что и при выравнивании CPA он тоже будет лучше.

Методика

Пусть у нас есть набор ставок a. Есть изначальный набор ставок варианта Б — b. Нам нужно получить набор ставок, который был бы пропорционален b и имел такой расход как и a.

В качестве первого приближения можно выровнять среднюю ставку, но можно ускорить процесс вписки.

Предположим, что CPC ключевика пропорционально ставке, а число кликов — корню из ставки. При таких предположениях вычисляется показать Уварова.

10

 

Допустим действовал набор ставок t, и мы получили n кликов. Тогда число при ставке a будет равно:

11

 

Пусть b второй набор ставок, расход по которому нужно выровнять с расходом по набору a путем домножения ставку на постоянный множитель L

12

 

  • n — клики за какой-то период
  • t — ставки действовавшие в этот период (можно, с некоторой погрешностью). Могут совпадать с а.
  • a — ставки варианта А
  • b — изначальные ставки варианта Б
  • b’ — первое приближение ставок

 

Далее ждем неделю и считаем второе приближение:

13

 

  • ExpenseA — расход варианта А
  • ExpenseB — расход варианта Б

 

Обычно этого хватает, чтобы достичь приемлемой точности. Расход у вариантов во вторую неделю будет отличаться на несколько процентов. Если мы не достигли приемлемой точности, то продолжаем:14

 

и так далее пока не достигнем необходимой точности. Далее уже начинаем тест и сравниваем число конверсий у вариантов.

Шанс побить

В следующей статье я подробнее расскажу о применении теории вероятности в таком тесте. Сейчас просто напишу формулу для расчета шанса побить.

Если у каждого из вариантов было больше 20 конверсий, то шанс побить (вероятность того, что один из вариантов лучше другого) можно посчитать в Вольфрам Альфа. Например, у варианта А было 120 конверсий, а у Б = 100. CDF[NormalDistribution[a-b,sqrt(a+b)],0] where a=120, b=100

15

Мы получили шанс побить в 8.89%. Вероятность того, что Б лучше А = 8.89%. Вероятность того, что А лучше Б равна 100%-8.89%=91.11%.

В следующих статьях я расскажу о том, как получилась такая формула и о методике остановки А/B теста.

 

Рекламная пауза

Ищу специалиста по контекстной рекламе в Москве. Офис в центре.

Обязанности на 70% такие-же как и в студиях Интернет-Маркетинга. На 30% помогать в исследованиях, проводить A/B тесты.

Опыт работы от 2 лет.

 

З/П 60-80К рублей. (при большем опыте, может быть выше)

Высылайте резюме на a.v.belousoff@gmail.com