Как за один день уронить доход сайта на 45% и причём здесь минимальная цена за показ рекламы
Машинное обучение в AdTech с каждым годом используется всё чаще, им пользуемся в том числе и мы в Roxot. Однако системы с машинным обучением — это только инструмент: без постоянного управления человеком даже самая «умная» система не будет эффективно работать. А где есть человек, там есть и ошибки.
Время от времени в нашей работе, как и у всех, случаются косяки: не ошибается только тот, кто ничего не делает. Об одной из недавних ошибок я хочу рассказать здесь: во-первых, она глупая; во-вторых, эта ошибка красноречиво демонстрирует, как алгоритмы рекламных сетей могут адаптироваться под ваши настройки и к каким последствиям это может привести.
Что произошло
Чуть больше месяца назад, 23 июня, в нашей системе загорелись тревожные сигналы: на одном из сайтов eCPM упал на 32%. Название сайта здесь не важно.
Падение eCPM на 32% довольно ощутимо, но ещё не настолько, чтобы мы сразу перешли к стадии «срочно надо что-то делать», да и цифры часто могут сильно скакать в течение дня. В тот же день наша команда провела быстрый анализ ситуации, который не выявил каких-то очевидных проблем: тогда решили дать рынку немного времени, чтобы восстановиться.
Как мы искали источник проблемы
В четверг, 24 июня, показатели к прежним не вернулись, поэтому мы начали детально искать ошибку, чтобы понять, в чём дело. Увидели, что на сайте упал только eCPM — остальные метрики оставались на привычном уровне. Подобное бывает редко, поскольку обычно eCPM коррелирует с показателями качества инвентаря: видимостью, кликабельностью и другими.
Например, если вы подключите к рекламному месту в самом верху страницы сайта слишком много рекламных сетей, то время загрузки блока увеличится. Это значит, что пользователи будут пролистывать страницу вниз до того, как наверху появится реклама: показатели видимости упадут, а алгоритмы рекламодателей могут отключить дорогие кампании. В итоге конкуренция за показы и их цена покатятся вниз. Всё логично.
Похожая схема работает и в обратную сторону: если поменять дизайн страницы и увеличить видимость рекламного объявления, цена за показ вырастет. Так, например: на другом нашем сайте 27 апреля мы изменили логику отправки запроса рекламы — стали это делать, когда пользователь начинает скролить страницу, а не сразу при загрузке контента. Видимость сразу выросла на 10%, а eCPM — на 15-25%.
Стало ясно, что если показатели видимости и CTR остались на прежнем уровне, а цена показа упала на треть, значит, что-то сильно поменялось: либо на рынке (могли завершиться крупные рекламные кампании), либо в наших настройках.
Рынок, конечно, находится в постоянной динамике, но такие падения eCPM, да ещё и в конце месяца — аномалия, поэтому от версии с отключением крупных рекламных кампаний мы отказались.
Решили проверить логи наших изменений: здесь мы обратили внимание, что во вторник вечером, 22 июня, перенастраивали систему выставления минимальных цен за показы. Когда это поняли, проверили несколько раз конфигурации: с ними мы работаем через код, поэтому падение eCPM могло быть связано с ошибкой в синтаксисе. Но и с ним всё было в порядке.
В чём в итоге была проблема
Нашли причину падения eCPM мы только в пятницу, 25 июня, — после 17 часов напряжённого анализа показателей и отчётов. Оказалось, что отправляемые системой значения минимальных цен за показы не совпадали с заданными значениями на нашем сервере, и поэтому изначально настроенная минимальная цена не применялась. То есть никакие price floor не работали.
Другими словами, без наших ограничений рекламодатели могли покупать показы по любой цене. В конкретно этом случае — на 30% дешевле.
Ниже график eCPM и Request CPM до и после нашей ошибки в настройке минимальной цены показа.
Request CPM — доход с 1 000 запросов рекламы.
До 23 июня пороговые минимальные значения динамически выставлялись в диапазоне 15-45 рублей. Со следующего дня ограничений не было, поэтому Request CPM упал на 45% (если сравнивать показатели 21 и 23 июня). То есть, несмотря на то, что количество посетителей сайта и запросов рекламы не менялось, доход площадки за несколько суток упал практически в два раза.
Как только мы обнаружили источник проблем, сразу вернули настройки флоров: буквально за сутки eCPM вырос на 47%, а Request CPM на 66%.
Выводы
Если вы не управляете ценовой стратегией, то отдаёте доход площадки в руки рекламных сетей, которые, в свою очередь, настроены на уменьшение цены конверсии для рекламодателей.
Чтобы этого не допустить, не забывайте про следующие шаги:
- Формируйте индивидуальные минимальные цены за показы для разных форматов рекламы, поскольку единая настройка не будет эффективна ни для одного формата.
- Увеличивайте или уменьшайте минимальное значение eCPM в зависимости от видимости и кликабельности блоков.
- Ежедневно анализируйте основные показатели — Request CPM, Fill Rate, CPM — за предыдущий день и адаптируйте стратегию минимальных цен за показ рекламы под изменения рынка.
- Тестируйте разные стратегии одновременно, разделяя трафик на равные части.
- Сегментируйте пользователей и по-разному их оценивайте: например, пользователь с куками будет стоить дороже, а пользователю с медленным интернетом потребуется большая скорость загрузки рекламы.
Ошибками делиться не стыдно, главное — на них учиться.