Вознаграждение за результат в контекстной рекламе

Автор: Андрей Белоусов, управляющий партнер HTraffic.ru, директор по технологиям К50

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

Мы с Максом Уваровым, в рамках К50 Labs решили попробовать ввести новую услугу: построение статистических моделей специально заточенных под сайт. Благодаря этим моделям мы можем очень прогнозировать вероятность конверсии и размер среднего чека, а значит и более точно расставлять ставки.

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

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

Далее, для простоты, предположим, что цель рекламодателя — максимум конверсий, при фиксированной средней стоимости конверсии (CPO, CPA). В конце статьи будет ссылка на калькулятор, который может считать и при других условиях.

Простой случай

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

«Бесплатные» конверсии = конверсии_после_оптимизации — конверсии_до_оптимизации

Это число можно перевести в деньги, просто домножив на CPO. Таким образом, мы получим оценку результатов оптимизации. По сути, мы получим увеличение расхода, к которому привела оптимизация. Поскольку ROI = Прибыль/Расход, то Прибыль = ROI * Расход. При равном CPO, ROI тоже будет одинаковым, то оптимизация принесет следующую прибыль:

«Бесплатные» конверсии * CPO * ROI

Если это число домножить на какой-то процент, например на 25%, то мы получим вознаграждение исполнителю.

Например, у нас было 1000 конверсий стало 1200. CPO=10$. ROI=2. Получим оценку в (1200-1000) * 10$ * 2 = 4000$. Если процент равен 25%, то вознаграждение будет равно 1000$.

Сложный случай

Например, есть рекламная кампания, которая приносила 1000 транзакций со средней стоимостью транзакции (CPO) равной 10$. Вы наняли исполнителя и поставили ему задачу оптимизировать кампанию. После первого месяца оптимизации CPO сократился до 6$, а число транзакций до 700.

Как оценить эффективность его работы? Какую премию ему дать?

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

Перескочить с одной точки этой кривой на другую довольно легко. Нужно просто увеличить или уменьшить все ставки в одинаковое число раз.

Построим две кривых эффективности до и после оптимизации:

Посчитаем сколько мы получаем «бесплатных» конверсий благодаря оптимизации.

Бесплатные конверсии = F_после (CPO_после) — F_до (CPO_после)

Поскольку премию выдается деньгами, а не конверсиями, нам нужно перевести как-то бесплатные конверсии в деньги. Самый простой способ — домножить число бесплатных конверсий на текущий CPO.

Получим, что эффективность выражена площадью прямоугольника одна сторона которого — число бесплатных конверсий, а вторая — текущий CPO.

Однако, площадь этой фигуры зависит от текущего CPO, поэтому мы перестроим фигуру основываясь на том CPO, который был до оптимизации:

Таким образом, мы получили оценку эффективности оптимизации в деньгах, которая не зависит от текущего CPO.

Премия = Процент* CPO_до * (F_после (CPO_до) — F_до (CPO_до))

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

Коэффициент Уварова

Для упрощения предположим, что после оптимизации, кривая эффективности выросла в определенное число раз.

F_после (X) = U*F_до (X)

Например, если U=2, то если раньше при CPO=3$ было 300 конверсий, то сейчас — 300*2 = 600. Если при CPO=5$ было 400, то сейчас — 800.

Используя коэффициент Уварова, можно сократить формулу премии до:

Премия = Процент* CPO_до * Конверсии_до * (U-1) = Процент* Расход_до* (U-1)

U можно вычислить, просто поделив число конверсий после на прогноз составленный до оптимизации для CPO=CPO_после

U = (Конверсии_до)/(F_до (CPO_после))

Если CPO в обоих случаях равны, то мы получим «старую» формулу: бесплатные конверсии умножить на СPO и умножить на процент.

Суть схемы

1. Пусть до начала работ CPO=CPO_0, а число конверсий равно Count_0

2. Перед началом работ составляется прогнозная функция, которая отражает текущую зависимость числа конверсий от CPO Count = Forecast(CPO).

3. Пусть в каком-то месяце после начала работ мы получили CPO = CPO_i, а число транзакций — Count_i

4. Высчитывается эффективность оптимизации. Коэффициент Уварова. Во сколько раз мы превзошли прогноз. U_i = (Count_i)/(Forecast(CPO_i))

5. Выгода от оптимизации будет равна Profit_i = ROI *(U_i — 1) * Count_o *CPO_0. Исполнитель получает заранее оговоренный процент от этого числа

6. Если нужно это оформить юридически, то составляется таблица (тарифная сетка), где, в зависимости от CPO и числа транзакций, указано вознаграждение.

При правильно подобранной прогнозной функции, вознаграждение не зависит от CPO_i. Вознаграждение исполнителя не зависит от спущенного сверху CPO, а рекламодатель застрахован от повышения/понижения исполнителем ставки, только ради увеличения вознаграждения.

Прогнозные функции

Простой прогноз

Для простоты выберем пропорциональную прогнозную функцию:

Forecast(CPO) = (Count_0)/(CPO_0 )* CPO

Пусть до оптимизации рекламная кампания приносила 1000 транзакций и CPO было равным 10$, а после, в первый месяц после оптимизации, — 900 транзакций с CPO = 7$. Во второй месяц — 1350 транзакций по 12$.

Forecast(7$) = (Count_0)/(CPO_0 )* 7 = 1000/10* 7=100 *7 = 700 транзакций

U_1 = (Count_2)/(Forecast(7$)) = 900/700 = 1.29

Profit_1 = (1.29 -1) *1000 * 10$ = 2900$

Исполнитель получает какой-то процент этих денег.

Второй месяц:

Forecast(12$) = 100 *12 = 1200 транзакций

U_2 = 1350/1200 = 1.13

Profit_1 = (1.13 -1) *1000 * 10$ = 1300$

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

Корень из CPO

Пропорциональный прогноз говорит о том, что если мы поднимем CPO вдвое, то число транзакций возрастет тоже вдвое. Однако, это не так. Например, если у вас доля в спецразмещении равна 80%, то никакая ставка не сможет повысить число кликов вдвое.

Вот самый простой прогноз который учитывает этот эффект:

Forecast(CPO) = (Count_0)/√(CPO_0 )* √CPO

Первый месяц:

Forecast(7$) = (Count_0)/√(CPO_0 )* √7 = 1000/√10* √7=316 *√7 = 836 транзакций

U_1 = (Count_1)/(Forecast(7$)) = 900/836 = 1.08

Profit_1 = (1.08 -1) *1000 * 10$ = 800$

Второй месяц:

Forecast(12$) = 316 *√12 = 1095 транзакций

U_2 = 1350/1095 = 1.23

Profit_2 = (1.23 -1) *1000 * 10$ = 2300$

В коде К50 мы часто пользуемся этим методом. Правда в случаях, когда точность не важна. На практике он показывает довольно высокую точность для колебаний CPO не более чем на 15%-25%.

Вот формулы для коэффициента Уварова в зависимости от цели(Y) и ограничения(X). Например, если задача «максимум конверсий при фиксированном CPA», то Y= число конверсий, а X=CPA.

Прогноз по распределению Релея

Проблема в том, что корневой метод не учитывает причину по которой пропорциональная модель неверна. В том, что есть некоторая доля показов в спецразмещении и она не может быть выше 100%.

Допустим, мы вычислили зависимость: Доля в СР = P(CPO). Тогда доля показов в гарантии равна 1 — P(CPO).

Тогда число показов в СР:

Shows_SR = Shows_All * P(CPO)

Число кликов в СР:

Cliсks_sr = Shows_SR* CTR_SR = Shows_All * P(CPO) *CTR_Sr

Число конверсий в СР:

Count_SR = Cliсks_sr *ConvRat〖e_ 〗_sr = Shows_All * P(CPO) * CTR_SR *ConvRate

Аналогичным образом посчитаем число конверсий в гарантии и получим:

Count_All = Count_SR+Count_Gar = Shows_All*ConvRate * (P(CPO) * CTR_SR + (1-P(CPO)) * CTR_Gar)

Теперь посчитаем P(CPO). Для разных ключевых слов стоимость входа в СР разная. В терминах теории вероятности это значит, что стоимость входа в спецразмещение — некоторая случайная величина.

У случайных чисел есть некоторое распределение. Одни числа встречаются чаще, чем другие. Например, людей ростом 1.70. больше чем людей ростом 2.10.

Мы попадаем в спецразмещение, только если наша ставка выше стоимости входа в спецразмещение. В терминах тервера (теории вероятностей) это значит, что доля показов в спецразмещении равна некоторой функции F(ставка), называемой функцией распределения.

F(Ставка) = Доле показов в спецразмещении

CPO, можно считать, пропорциональна ставке. То есть, Bid=C* CPO, где C некоторая константа. и мы получаем:

F(С * CPO) = Доля показов в СР = P(CPO)

Подставим вместо F функцию распределения Релея и, решив уравнение P(CPO_0)=Доля_СР_0 , получим:

P(CPO) = 1- e^([(CPO^ )/(CPO_0 ) ]^2 * log_e (1-Доля_СР_0))

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

Релей+

Прошлая модель не учитывает то, что мы можем вылететь из гарантии в динамику, или на 2, 3 или 101 страницу выдачи. Поэтому, правильнее моделировать CTR в гарантии некоторой функцией от CPO, а не константой. Проще всего использовать корень:

CTR_Gar (CPO) = CTR_(Gar,0) * √( CPO/(CPO_0 ))

Учет сезонности

Отклонения от прогноза могут быть не только следствием работы специалиста, но и сезонности.

Самый простой способ посчитать сезонность — WordStat. Наберите самое частотное ключевое слово в WordStat, перейдите на историю запросов, и вы увидите данные по числу показов за месяц.

Например, контрольный месяц (который мы обозначаем 0) для нас Август 2015 года (08.2015). Высчитываем месячные сдвиги трафика: на сколько в каком-то месяце будет больше трафика, чем в августе. Для этого нужно использовать данные за прошлый год.

Например, для сентября нужно поделить число показов в сентябре 2014 на число показов в Августе 2014. Будет 4818/5378= 0.9. Для октября будет 4927/5378 = 0.92. Обозначим это число как М. Чтобы учесть М в формуле коэффициента Уварова.

U_i = (Count_i)/(M_(i )* Forecast(CPO_i))

Пример:

Forecast(CPO) = (Count_0)/√(CPO_0 )* √CPO = 1000/√10 √CPO =316 *√CPO

Сентябрь

Forecast(7$) = 316 *√7 = 836 транзакций

U_1 = (Count_1)/(M_(1 )* Forecast(CPO_1)) = 900/(0.9* 839) = 900/752 = 1.2

Profit_1 = (1.2 -1) *1000 * 10$ = 2000$

Октябрь

Forecast(12$) = 316 *√12 = 1095 транзакций

U_2 = 1350/(1095 * 0.92) = 1.34

Profit_2 = (1.34 -1) *1000 * 10$ = 3400$

Использование других KPI

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

Forecast(CPO) = (Оборот_0)/√(CPO_0 )* √CPO

U_i = (Оборот_1)/(M_(i )* Forecast(CPO_i))



Бонус = Процент * (U_i -1) *Оборот_0

Cети

Тематические площадки

В РСЯ и КМС нельзя использовать Релеевский прогноз, но вполне можно использовать корневой.

Можно выдавать отдельный бонус за РСЯ, рассчитанный по Релею, и отдельный по КМС, рассчитанный по корневому прогнозу. Или, если пренебречь точностью ради скорости, можно просто все считать корневым.

Google AdWords

Разница между AdWords и Директом только в названии блоков, но их положение примерно одинаковое. Поэтому этот метод можно использовать и в AdWords.

Однако следует считать бонусы AdWords и Директ раздельно. Ведь в этих системах разная конкуренция.

Итого

Есть два метода:

  • Быстрый. Просумировать данные и считать корневой прогноз.
  • Точный. Считать 3 бонуса:
  1. Поиск Директа: Релеем+
  2. Поиск AdWords: Релеем+
  3. РСЯ + КМС: Корнем

Первая прибыль специалисту

Это некоторая модернизация представленной схемы для расчета бонусов штатным специалистам. Специалист однократно получает бонус, равный увеличению месячной прибыли в этом месяце.

Например, была прибыль равная 600 тысяч, стала 700. Специалист один раз получает 100. Если в следующем месяце прибыль возросла до 750, то специалист получает бонусом 50 тысяч.

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

Мы эту схему реализовали эту схему в Google Docs. Она учитывает сезонность и много других факторов. Пользоваться это таблицей довольно просто:

  1. Скопируйте таблицу себе на Google Drive. Для удобства, рекомендуем вписать названия месяцев. Нулевой месяц, это контрольный месяц до внедрения системы.
  2. Пробейте по Вордстат одно из ваших ключевых слов (лучше с наибольшей частотой показов) и перейдите на вкладку история запросов. Укажите в таблице число показов ключевого слова в соответствующем месяце прошлого года.
  3. В этой таблице есть несколько листов, привязанных к конкретной цели. Выберите наиболее подходящий.
  4. Введите данные контрольного месяца.
  5. Время от времени вводите данные контрольного месяца, и таблица для этого месяца посчитает коэффициент Уварова и размер бонуса

Дополнение

Необходимо объяснить, почему мы использовали то или иное допущение.

Коэффициент Уварова

В начале статьи мы сделали допущение, что есть следующая зависимость: F_после (X) = U*F_до (X)

На практике это упрощение дает ощутимую погрешность только при больших колебаниях CPO — больше чем вдвое.

Для линейного и корневого прогноза отказ от этого допущения ничего не меняет — размеры вознаграждения останутся прежними.

Для прогноза Релея отказ от U придет к тому, что вознаграждение будет зависеть не от двух параметров (CPO и числа конверсий), а как минимум, от 3: CPO, число конверсий и доли входа в СР.

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

Более того, отказ от U усилит влияние на бонус ставок конкурентов.

Альтернатива

Мы могли бы использовать другой коэффициент. Назовем его маленьким коэффициентом Уварова: F_после (X) = F_до (u * X)

Однако, учесть сезонность в этом случае сложнее. Во-вторых, при прогнозе Релея вознаграждение, если его считать в зависимости от u, будет сильно зависеть от CPO, чтобы этого избежать, нужно использовать сложную функцию расчета бонуса.

Распределение Релея

Распределение Релея мы выбрали по трем критериям: Область определения от 0 до бесконечности. Стоимость входа в блок не может быть отрицательной. Наличие одного параметра Простая функция распределения

Осталось только два распределения — Релея и экспоненциальное. У распределения Релея график плотности вероятности более правдоподобен.

Двухпараметрические распределения

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

F(Bid_0) = Доля_СР_0

∫_0^(Bid_0) (x f(x))/(Доля_СР_0 ) dx = Средний CPC в СР

F(x) функция распределения

f(x) плотность вероятности стоимости входа в СР

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

Эту систему уравнений можно решить только численно, и после решения этой системы выражение Count = Forecast(CPO) будет крайне сложным.

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

При доле в СР близкой к 50%, у этого метода резко возрастает погрешность. Также метод чувствителен к погрешностям определения средней ставки, особенно, при доле в СР больше 80-90%.

Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета.
Языки: румынский, испанский.
Кредо: Арфы нет, возьмите бубен.