OpenRTB ломается не на аукционе, а на несогласованных полях
OpenRTB — это не один JSON, а контракт между DSP, SSP и bidder-логикой. Ошибки обычно прячутся в мелочах: кто-то отправил floor в неправильной валюте, кто-то не поддержал multi-format, кто-то ждёт bidrequest без обязательных ext-полей и молча отбрасывает трафик.
Проверяйте базу: `imp.id` должен быть уникален внутри запроса, `site/app` — соответствовать типу инвентаря, `device` и `user` не должны дублировать одну и ту же сущность разными значениями. Если есть `schain`, он обязан быть полным и последовательным; если есть `regs` и `source`, их нельзя заполнять «для галочки».
Самые дорогие баги обычно такие:
• неверный `banner`/`video`/`native` внутри одного `imp`
• отсутствие согласованности `at`, `tmax`, `cur`
• игнорирование `w`/`h`, `mimes`, `protocols`, `placement`
• несинхронные `bidfloor` и `bidfloorcur` 
На практике полезно делать валидацию на входе: schema-check, контроль обязательных полей, логирование отклонений по причине, а не по факту «no bid». Тогда интеграция не превращается в угадайку, а поведение DSP и SSP становится воспроизводимым.
AdTech Pulse — SSP / DSP / OpenRTB
@adtech_pulse_aff
OpenRTB ломается не на аукционе, а на несогласованных полях
Этот пост опубликован в Telegram-канале AdTech Pulse — SSP / DSP / OpenRTB. Подписаться можно по ссылке: @adtech_pulse_aff.