Win notice (nurl, burl, lurl): уведомления о выигрыше в OpenRTB
Когда ставка DSP выигрывает аукцион, биржа сообщает об этом HTTP-запросом на URL из поля bid.nurl — это и есть win notice, уведомление о выигрыше. Перед вызовом в URL подставляются макросы, прежде всего цена списания ${AUCTION_PRICE}. Рядом спецификация OpenRTB описывает еще два уведомления: burl — об оплачиваемом показе и lurl — о проигрыше.
Три уведомления в OpenRTB
| Поле | Когда вызывается | Что означает |
|---|---|---|
nurl |
ставка выиграла аукцион | выигрыш, но не обязательно показ |
burl |
выигрыш стал оплачиваемым по правилам биржи | обычно показ подтвержден — основание для списания |
lurl |
биржа знает, что ставка проиграла | проигрыш и его причина |
burl и lurl появились в OpenRTB 2.5. До этого DSP приходилось считать оплату по nurl или по собственным пикселям показа.
Пример ответа DSP с уведомлениями
{
"id": "req-81f2",
"seatbid": [{
"bid": [{
"id": "b1",
"impid": "1",
"price": 64.0,
"adm": "<div>…</div>",
"nurl": "https://dsp.example/win?a=${AUCTION_ID}&i=${AUCTION_IMP_ID}&p=${AUCTION_PRICE}",
"burl": "https://dsp.example/bill?a=${AUCTION_ID}&p=${AUCTION_PRICE}&c=${AUCTION_CURRENCY}",
"lurl": "https://dsp.example/loss?a=${AUCTION_ID}&r=${AUCTION_LOSS}&m=${AUCTION_MIN_TO_WIN}"
}]
}],
"cur": "RUB"
}
Биржа заменяет макросы значениями и вызывает URL. Например, при выигрыше по второй цене за 51,20 ₽ DSP получит:
GET /win?a=req-81f2&i=1&p=51.20 HTTP/1.1
Host: dsp.example
Цена в макросе — в CPM, как и ставка: за этот показ спишется 0,0512 ₽. Биржи часто шифруют цену; алгоритм стороны согласуют между собой, спецификация его не задает.
nurl как способ доставки креатива
Исторически nurl мог возвращать разметку креатива: DSP не передает adm в ответе, а отдает рекламу в ответ на уведомление о выигрыше. Если разметка есть и в adm, и в ответе на nurl, по спецификации приоритет у adm. Сегодня чаще передают adm сразу, а nurl используют только для учета.
Выигрыш, показ и списание — разные события
Между nurl и реальным показом много шагов: биржа отдает креатив выше по цепочке, SDK его загружает, пользователь должен увидеть экран. Часть выигрышей не превращается в показы. Поэтому:
- деньги правильно считать по
burlили подтвержденному показу, а не поnurl; - доля выигрышей и доля показов — разные метрики;
- отчеты DSP, биржи и площадки расходятся, если стороны считают по разным событиям. Подробнее — в статье «Расхождения показов и биллинга».
Уведомления о выигрыше в Ibiza
Биржа Ibiza различает выигрыш и показ: для каждого источника трафика настраивается, учитывать выручку по выигрышу или только после пикселя, подтверждающего отрисовку креатива. Во втором режиме выигрыш без показа не превращается в списание. На стороне покупателя DSP Ibiza считает показ и списывает бюджет по собственному пикселю показа, а nurl и burl записывает отдельными событиями — почему эти цифры могут расходиться, разобрано в статье о расхождении показов с SSP. Какие макросы и трекеры поддерживаются в креативах — в документации о макросах и трекерах.
Ошибки при обработке уведомлений
- Списывать бюджет по
nurl. Расходы и биллинг расходятся с данными биржи на долю невыданных показов. - Не обрабатывать повторы. Уведомление может прийти дважды; учет должен быть идемпотентным по
${AUCTION_ID}и${AUCTION_IMP_ID}. - Терять макросы при кодировании URL. Если
${AUCTION_PRICE}закодирован как%24%7BAUCTION_PRICE%7D, биржа его не заменит. - Путать единицы. Подставленная цена — в CPM, а не за один показ.
Полное описание объектов ответа — в статье про OpenRTB.
Частые вопросы
Чем nurl отличается от burl?
nurl вызывается, когда ставка выиграла аукцион, и не означает, что реклама показана. burl вызывается, когда выигрыш стал оплачиваемым по правилам биржи, обычно после подтвержденного показа.
Что подставляется в ${AUCTION_PRICE}?
Цена списания в той же валюте и единицах, что и ставка, то есть в CPM. На первой цене она обычно равна ставке, на второй — меньше. Биржа может передавать ее в зашифрованном виде.
Обязательно ли биржа вызывает lurl?
Нет. Уведомление о проигрыше — опциональная возможность; многие биржи его не поддерживают или поддерживают выборочно.