Как за один день уронить доход сайта на 45% и причём здесь минимальная цена за показ рекламы

Машинное обучение в AdTech с каждым годом используется всё чаще, им пользуемся в том числе и мы в Roxot. Однако системы с машинным обучением — это только инструмент: без постоянного управления человеком даже самая «умная» система не будет эффективно работать. А где есть человек, там есть и ошибки.

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

Что произошло

Чуть больше месяца назад, 23 июня, в нашей системе загорелись тревожные сигналы: на одном из сайтов eCPM упал на 32%. Название сайта здесь не важно.

Как за один день уронить доход сайта на 45% и причём здесь минимальная цена за показ рекламы

Падение eCPM на 32% довольно ощутимо, но ещё не настолько, чтобы мы сразу перешли к стадии «срочно надо что-то делать», да и цифры часто могут сильно скакать в течение дня. В тот же день наша команда провела быстрый анализ ситуации, который не выявил каких-то очевидных проблем: тогда решили дать рынку немного времени, чтобы восстановиться.

Как мы искали источник проблемы

В четверг, 24 июня, показатели к прежним не вернулись, поэтому мы начали детально искать ошибку, чтобы понять, в чём дело. Увидели, что на сайте упал только eCPM — остальные метрики оставались на привычном уровне. Подобное бывает редко, поскольку обычно eCPM коррелирует с показателями качества инвентаря: видимостью, кликабельностью и другими.

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

Похожая схема работает и в обратную сторону: если поменять дизайн страницы и увеличить видимость рекламного объявления, цена за показ вырастет. Так, например: на другом нашем сайте 27 апреля мы изменили логику отправки запроса рекламы — стали это делать, когда пользователь начинает скролить страницу, а не сразу при загрузке контента. Видимость сразу выросла на 10%, а eCPM — на 15-25%.

<i>Как увеличились показатели рекламы после новых настроек</i>
Как увеличились показатели рекламы после новых настроек

Стало ясно, что если показатели видимости и CTR остались на прежнем уровне, а цена показа упала на треть, значит, что-то сильно поменялось: либо на рынке (могли завершиться крупные рекламные кампании), либо в наших настройках.

<i>Графики демонстрируют, что показатели видимости и CTR на сайте сильно не поменялись</i>
Графики демонстрируют, что показатели видимости и CTR на сайте сильно не поменялись

Рынок, конечно, находится в постоянной динамике, но такие падения eCPM, да ещё и в конце месяца — аномалия, поэтому от версии с отключением крупных рекламных кампаний мы отказались.

Решили проверить логи наших изменений: здесь мы обратили внимание, что во вторник вечером, 22 июня, перенастраивали систему выставления минимальных цен за показы. Когда это поняли, проверили несколько раз конфигурации: с ними мы работаем через код, поэтому падение eCPM могло быть связано с ошибкой в синтаксисе. Но и с ним всё было в порядке.

В чём в итоге была проблема

Нашли причину падения eCPM мы только в пятницу, 25 июня, — после 17 часов напряжённого анализа показателей и отчётов. Оказалось, что отправляемые системой значения минимальных цен за показы не совпадали с заданными значениями на нашем сервере, и поэтому изначально настроенная минимальная цена не применялась. То есть никакие price floor не работали.

Другими словами, без наших ограничений рекламодатели могли покупать показы по любой цене. В конкретно этом случае — на 30% дешевле.

Ниже график eCPM и Request CPM до и после нашей ошибки в настройке минимальной цены показа.

Request CPM — доход с 1 000 запросов рекламы.

Как за один день уронить доход сайта на 45% и причём здесь минимальная цена за показ рекламы

До 23 июня пороговые минимальные значения динамически выставлялись в диапазоне 15-45 рублей. Со следующего дня ограничений не было, поэтому Request CPM упал на 45% (если сравнивать показатели 21 и 23 июня). То есть, несмотря на то, что количество посетителей сайта и запросов рекламы не менялось, доход площадки за несколько суток упал практически в два раза.

Как за один день уронить доход сайта на 45% и причём здесь минимальная цена за показ рекламы

Как только мы обнаружили источник проблем, сразу вернули настройки флоров: буквально за сутки eCPM вырос на 47%, а Request CPM на 66%.

Выводы

Если вы не управляете ценовой стратегией, то отдаёте доход площадки в руки рекламных сетей, которые, в свою очередь, настроены на уменьшение цены конверсии для рекламодателей.

Чтобы этого не допустить, не забывайте про следующие шаги:

  • Формируйте индивидуальные минимальные цены за показы для разных форматов рекламы, поскольку единая настройка не будет эффективна ни для одного формата.
  • Увеличивайте или уменьшайте минимальное значение eCPM в зависимости от видимости и кликабельности блоков.
  • Ежедневно анализируйте основные показатели — Request CPM, Fill Rate, CPM — за предыдущий день и адаптируйте стратегию минимальных цен за показ рекламы под изменения рынка.
  • Тестируйте разные стратегии одновременно, разделяя трафик на равные части.
  • Сегментируйте пользователей и по-разному их оценивайте: например, пользователь с куками будет стоить дороже, а пользователю с медленным интернетом потребуется большая скорость загрузки рекламы.

Ошибками делиться не стыдно, главное — на них учиться.

2020
9 комментариев

Глупые вопросы:
1. А разве это не аукцион? кто больше заплатит, тот и выкупант рекламу в данном месте для данного пользователя
2. А если идти не от минимальной цены, а от заполняемости, отсекая самые дешевые запросы рекламодателей. впрочем это связано с процессом динамического формирования минимальной цены

1
Автор

Ну вопросы не глупые)

1. Аукцион, но не обычный. На нем торгуются не уникальные товары, а один и тот же похожий друг на друга товар (показ рекламы) много раз. Поэтому алгоритмы рассматривают закупку не в рамках одного аукциона, а в совокупности. Соответственно, могут применять данные из одного аукциона в другом и таким образом обучаться. Так вот, правильные прайс флоры позволяют влиять на их поведение и увеличивать стоимость выкупа показов.
2. Работа с флорами это всегда поиск баланса между процентом выкупа и минимальной ценой (CPM). Обе метрики относительные и анализ их по отдельности не имеет смысла.

1

ваш сайт https://roxot.com перебрасывает на https://roxot.com/en и нет выбора русского. Но это мелочи, Request Demo ( https://roxot.com/#demo ) так же не дает возможности зарегистрироваться или попросить demo. Временно?

Автор

Денис, спасибо за инфу, поправили. Сайт редиректит пользователей не из России на EN версию.

Подскажите, а что это за реклама, в которой eCPM 30₽ +/-? Вроде же в РСЯ в среднем 200₽+ для Рунета, или ошибаюсь?

Автор

Это effective CPM, то есть общий доход разделить на кол-во отрисовок рекламы *1000. РСЯ же в основном делает упор на CPM видимых показов (vCPM), который конечно выше чем eCPM, так как видимых показов меньше, чем отрисовок. И чем ниже видимость рек блока, тем выше vCPM. Но даже при таком условии средний vCPM 200р в РСЯ выглядит нереалистичным.

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

смотря как подключать. если через header bidding, то время загрузки блока не увеличивается, так как биддеры опрашиваются параллельно