Win rate в RTB: формула доли выигрышей и коды проигрыша
Поставили 100 ставок, выиграли 15 — win rate 15%. Так считается доля выигранных аукционов DSP: выигрыши делятся на число аукционов, где она сделала ставку. Метрика показывает, насколько ставки конкурентны на бирже, площадке или слоте. Знаменатель — именно ставки, а не все входящие запросы: иначе в метрику примешивается работа таргетинга, который отсекает неподходящие показы еще до ставки.
Формула и пример
Win rate = выигрыши / ставки × 100%
Пример за сутки на одной бирже:
| Этап | Количество |
|---|---|
| Запросы (bid request) | 1 000 000 |
| Ставки | 300 000 |
Выигрыши (nurl) |
45 000 |
| Показы | 42 000 |
- Win rate = 45 000 / 300 000 = 15%.
- Bid rate (доля запросов со ставкой) = 300 000 / 1 000 000 = 30%.
- Доля показов от выигрышей = 42 000 / 45 000 ≈ 93%.
Если посчитать «выигрыши / запросы», получится 4,5%. Это тоже бывает полезно, но смешивает две разные причины: «не захотели ставить» и «поставили и проиграли». В отчетах всегда указывайте знаменатель.
Почему DSP проигрывает
Если биржа поддерживает уведомления о проигрыше (lurl), она сообщает причину через макрос ${AUCTION_LOSS}. Коды берутся из перечня Loss Reason Codes, который с версии 2.6 ведется в спецификации OpenRTB 3.0 / AdCOM. Самые частые:
| Код | Причина |
|---|---|
| 2 | возможность показа истекла |
| 3 | некорректный ответ на запрос |
| 100 | ставка ниже флора аукциона |
| 101 | ставка ниже флора сделки |
| 102 | проиграла более высокой ставке |
| 103 | проиграла ставке по PMP-сделке |
| 104 | seat покупателя заблокирован |
| 200–215 | креатив отфильтрован: размер, формат, категория, домен рекламодателя, атрибуты и т. п. |
| 500+ | собственные коды биржи, их значения она сообщает заранее |
Проигрыш конкуренту по цене — это 102 (и 103, если победила ставка по сделке). Коды 100 и 101 значат, что ставка не дотянула до порога продавца, а остальные — технические и политические причины, которые лечатся без повышения ставки. Пошаговый разбор — в статье «Почему DSP проигрывает аукцион». Ответы, не уложившиеся в tmax, в эту статистику часто вообще не попадают — их видно только по метрикам самой DSP.
Win rate и цена: почему высокий процент — не цель
На аукционе первой цены DSP с win rate 90% почти наверняка переплачивает: она ставит заметно выше, чем требуется для выигрыша. Поэтому win rate смотрят в паре со средней ценой выигрыша и с итоговой метрикой — стоимостью клика или действия.
Обратная ситуация: win rate упал, но eCPM и конверсии в норме. Возможно, bid shading правильно перестал «выкупать» дорогие показы.
Win rate в отчетах Ibiza
В DSP Ibiza уведомления о проигрыше используются при снижении ставки: bid shading берет проигрыши по цене (код 102) с макросом ${AUCTION_MIN_TO_WIN} и ставит на квантиль минимальной выигрышной цены по паре «объявление + слот» — с небольшим запасом и не ниже флора. Подробнее — в документации про bid shading.
Ошибки в чтении win rate
- Смешивать знаменатели. Win rate по ставкам и по запросам отличаются в разы.
- Сравнивать биржи с разными правилами. На первой цене конкуренты снижают ставки, на второй ставят полную ценность показа, поэтому одна и та же ставка выигрывает с разной частотой.
- Считать выигрыш показом. Между
nurlи подтвержденным показом есть потери; оплата обычно идет по показу. - Поднимать ставку при массовых кодах 200–215. Это фильтры креативов, а не конкуренция.
- Отправлять ставки ниже флора (код 100). Их отклоняют еще до аукциона: если показ не стоит флора, экономнее сразу ответить no-bid.
Частые вопросы
Какой win rate считается нормальным?
Универсальной нормы нет: он зависит от биржи, формата, флоров и стратегии. Важнее динамика и стоимость: рост win rate за счет переплаты — плохой результат.
Чем win rate отличается от fill rate?
Win rate — метрика покупателя: доля его ставок, которые выиграли. Fill rate — метрика продавца: доля запросов на рекламу, которые закончились показом.
Как поднять win rate, не переплачивая?
Сократить таймауты, не ставить ниже флора, разобрать коды причин проигрыша и перераспределить бюджет на слоты, где ставка конкурентна.