Ответ на ставку — короткая половина диалога OpenRTB, и почти всё, что в нём ломается, ломается структурно, а не хитро: ставка без impid, которая ни к чему не привязана, цена, отправленная строкой, креатив, так и не назвавший домен рекламодателя, или уведомление о выигрыше, забывшее макрос цены аукциона и потому сообщающее неверную цену закрытия. Валидатор проходит по ответу так, как это сделала бы биржа, отделяя поля, требуемые спецификацией, от тех, что на практике отвергают покупатели и площадки.
Возможности
Проверяет обязательные поля на уровне ответа, seatbid и ставки
Ошибки, предупреждения и заметки разделены, у каждой свой путь JSON
Проверка типов у цены, размеров, adomain и полей идентификаторов
Учёт версии для mtype, появившегося в OpenRTB 2.6
Отмечает уведомления о выигрыше без макроса цены и небезопасные URL
Проверяет ответы без ставки и их коды nbr
Находит повторяющиеся идентификаторы ставок и несколько ставок на один показ
Справочные таблицы причин отказа и типов носителя
Как использовать Проверка ответа на ставку OpenRTB
Вставьте JSON, который вернул ваш биддер
Выберите версию протокола, на которой работает биржа
Сначала устраните ошибки, затем предупреждения
По пути JSON у каждой находки отыщите нужную ставку
error seatbid[0].bid[0].price — price has to be a number, not a string
Цена в кавычках — самая частая причина, по которой ставку молча отбрасывают.
Частые ошибки и устранение неполадок
Здесь ставка корректна, а биржа всё равно её отбрасывает. — Биржи добавляют собственные требования: знакомый идентификатор seat, категории из конкретной таксономии или уже одобренный креатив.
Предупреждение об adomain для собственной рекламы. — Заполните его всё равно. Площадки блокируют по домену рекламодателя, и без него ставку часто отбрасывают раньше всего остального.
mtype отмечается на интеграции 2.5. — Он появился в OpenRTB 2.6, и биржа на 2.5 его игнорирует. Переключите версию на ту, что реально используется.
Пустой массив seatbid даёт лишь предупреждение. — Потому что это допустимо, но бесполезно. Чисто отказаться можно кодом HTTP 204 или ответом с кодом nbr.
Часто задаваемые вопросы
Какие поля обязательны в ответе на ставку OpenRTB?
В ответе нужен id, повторяющий идентификатор запроса. В каждой ставке нужны id, impid, соответствующий показу, цена и креатив в виде adm или nurl.
Что означает поле nbr?
Причина отказа от ставки. Это целочисленный код, поясняющий, почему ставки не было: 2 — некорректный запрос, 8 — неизвестный пользователь.
Зачем в nurl нужен макрос AUCTION_PRICE?
Потому что при выигрыше биржа подставляет туда цену закрытия. Без макроса уведомление уходит без цены, и в логах остаётся ставка, а не фактическая оплата.
Чем adm отличается от nurl?
adm несёт креатив прямо в ответе, а nurl — это адрес, по которому биржа заберёт его при выигрыше. Сегодня чаще используют встроенный вариант.
Заменяет ли mtype что-то из 2.5?
Он делает явным то, что раньше выводилось. В 2.5 тип носителя определялся объектом показа, что ломалось на мультиформатных показах.
Связанные инструменты
Валидатор OpenRTB — Проверьте bid request OpenRTB 2.5 и 2.6 по правилам IAB в браузере.
Генератор OpenRTB — Соберите корректный bid request OpenRTB 2.5 или 2.6 из простой формы.
Enum OpenRTB — Ищите перечислимые списки OpenRTB 2.x — каждый код с его значением.
Валидатор VAST — Проверьте VAST XML по правилам IAB прямо в браузере.
Генератор Prebid — Соберите конфиг ad unit Prebid.js и сниппет pbjs.addAdUnits().
Сборщик schain — Соберите и проверьте объект IAB SupplyChain для OpenRTB.
Другие инструменты: Программатическая реклама
Валидатор VAST — Проверьте VAST XML по правилам IAB прямо в браузере.
Инспектор VAST — Разберите VAST-тег на InLine/Wrapper, медиафайлы и трекинг-URL.
Коды ошибок VAST — Найдите любой код ошибки IAB VAST или VPAID с его значением и причиной.
Макросы VAST — Раскройте макросы VAST 4.x в трекинг-URL и посмотрите итоговый запрос.
Валидатор VMAP — Проверьте паузы VMAP AdBreak и покажите pre-, mid- и post-roll на таймлайне.
Валидатор OpenRTB — Проверьте bid request OpenRTB 2.5 и 2.6 по правилам IAB в браузере.
Генератор OpenRTB — Соберите корректный bid request OpenRTB 2.5 или 2.6 из простой формы.
Enum OpenRTB — Ищите перечислимые списки OpenRTB 2.x — каждый код с его значением.
Декодер TCF — Декодируйте строку согласия IAB TCF v2.2 в CMP, цели и вендоров.