RTB (Real-Time Bidding): как устроены торги за каждый показ
RTB (Real-Time Bidding, торги в реальном времени) — способ продажи рекламы, при котором каждый отдельный показ разыгрывается на аукционе в момент загрузки страницы или экрана приложения. Площадка отправляет описание показа, рекламные системы покупателей за доли секунды отвечают ставками, побеждает лучшая, и ее объявление сразу показывается пользователю.
Как проходит один RTB-аукцион
Весь цикл укладывается в пару сотен миллисекунд:
- Пользователь открывает приложение или сайт, SDK или рекламный тег площадки запрашивает рекламу.
- SSP или рекламная биржа формирует bid request — JSON с данными о месте размещения, устройстве, пользователе и минимальной цене.
- Запрос уходит нескольким DSP одновременно. У каждой есть лимит времени tmax.
- DSP подбирает подходящие кампании, оценивает показ и возвращает ставку с креативом — или отказ (no-bid).
- Биржа выбирает победителя, отправляет ему уведомление о выигрыше (win notice) и передает креатив на площадку.
- Креатив отрисовывается, срабатывают трекеры показа, позже — клика.
Сообщения между участниками почти всегда идут по протоколу OpenRTB от IAB Tech Lab.
Как выглядит обмен
Упрощенный запрос и ответ в OpenRTB 2.x:
{
"id": "req-81f2",
"at": 1,
"tmax": 200,
"imp": [{ "id": "1", "tagid": "main_feed_2", "bidfloor": 45.0, "bidfloorcur": "RUB",
"banner": { "w": 320, "h": 50 } }],
"app": { "bundle": "com.example.news" },
"device": { "os": "android", "ifa": "…" }
}
{
"id": "req-81f2",
"seatbid": [{ "bid": [{ "id": "b1", "impid": "1", "price": 52.3,
"adm": "<div>…</div>", "crid": "cr-17" }] }],
"cur": "RUB"
}
Цена price указывается за тысячу показов (CPM), хотя сделка заключается за один показ.
Чем RTB отличается от других способов закупки
| Способ | Цена | Гарантия объема | Кто участвует |
|---|---|---|---|
| Прямая закупка (IO) | фиксирована договором | да | конкретный рекламодатель |
| Programmatic Guaranteed | фиксирована | да | один покупатель, автоматизировано |
| PMP (частный аукцион) | аукцион с порогом сделки | нет | приглашенные покупатели по deal ID |
| Открытый аукцион (open auction) | аукцион | нет | все подключенные DSP |
RTB — это нижние две строки: цена определяется торгами, объем не гарантирован. В частном аукционе условия сделки передаются в объекте imp.pmp.deals, а покупатель указывает их идентификатор в ответе (bid.dealid).
Тип аукциона и почему он важен
Поле at в запросе сообщает правила: 1 — аукцион первой цены, 2 — второй цены (по умолчанию по спецификации). При первой цене победитель платит свою ставку, поэтому DSP применяют bid shading — снижают ставку до уровня, которого, по их оценке, хватит для выигрыша.
Где чаще всего ошибаются
- Путать выигрыш и показ. Выигранный аукцион еще не показ: креатив может не загрузиться, пользователь — уйти. Отсюда расхождения статистики DSP и площадки.
- Игнорировать таймаут. Ответ, пришедший после tmax, отбрасывается, даже если ставка была лучшей.
- Считать, что «больше запросов — больше показов». Решают таргетинг, флоры и доля выигрышей (win rate), а не сырой поток запросов.
- Не обрабатывать no-bid. По спецификации отказ — пустой ответ с HTTP 204; лишний JSON без ставки только тратит трафик.
Пошаговый разбор потерь на каждом этапе — в статье «Воронка RTB».
Частые вопросы
Сколько длится RTB-аукцион?
Обычно 100–300 мс: столько площадка или биржа ждет ответы DSP. Лимит передается в запросе полем tmax в миллисекундах.
Чем RTB отличается от programmatic?
Programmatic — любая автоматизированная закупка рекламы, а RTB — ее аукционная часть, где цена определяется торгами за каждый отдельный показ.
Кто платит в RTB и сколько?
Платит рекламодатель через свою DSP. Цена зависит от типа аукциона: при первой цене победитель платит свою ставку, при второй — ставку ближайшего конкурента плюс шаг.