OpenRTB竞价响应校验工具
检查竞价响应里缺失的字段、类型不对的价格和漏掉的宏。
OpenRTB竞价响应校验工具完全在浏览器中运行,含有真实成交id和价格的响应也只在你的设备上被检查。
校验竞价请求
关于 OpenRTB竞价响应校验
竞价响应是OpenRTB对话中较短的那一半,而它出的问题几乎都很结构化,而不是多么精巧:没有impid把竞价挂到某次展示上、价格用字符串发送、创意始终不声明广告主域名,或者胜出通知漏掉了成交价宏,于是回报的成交价是错的。这个校验工具像交易平台那样逐层走查响应,把规范要求的字段和买方与媒体在实践中会拒绝的字段分开列出,每一条结论都带JSON路径。
功能特性
- 在响应、seatbid和竞价三层检查必填字段
- 错误、警告与提示分开,并各自附带JSON路径
- 对价格、尺寸、adomain和各类id做类型检查
- 按协议版本处理OpenRTB 2.6引入的mtype
- 指出没有价格宏的胜出通知和不安全的通知URL
- 校验无竞价响应及其nbr代码
- 发现重复的竞价id以及针对同一展示的多条竞价
- 内置无竞价原因和媒体类型的参考表
如何使用 OpenRTB竞价响应校验
- 粘贴你的竞价服务返回的JSON
- 选择交易平台运行的协议版本
- 先处理错误,再看警告
- 沿着每条结论的JSON路径定位对应的竞价
示例
输入
{ "id": "1", "seatbid": [{ "bid": [{ "id": "b1", "impid": "1", "price": "2.15" }] }] }
输出
error seatbid[0].bid[0].price — price has to be a number, not a string
价格被引号括起来,是竞价被悄悄丢弃的最常见原因。
常见错误与故障排除
- 这里判定有效,交易平台还是丢弃了竞价。 — 交易平台会叠加自己的要求:能识别的seat id、来自特定分类体系的类目,或者已经审核过的创意。请一并查阅它们的接入文档。
- 自家广告也提示缺adomain。 — 还是填上。媒体按广告主域名做屏蔽,没有它的竞价往往在其他条件还没被看之前就被丢掉了。
- 2.5的对接上却提示了mtype。 — mtype是OpenRTB 2.6才加入的,2.5的交易平台会忽略它。请把版本选择切到对方实际运行的协议,发送它本身没有害处。
- 空的seatbid数组只给了警告。 — 因为它合规但没什么用。要拒绝,更干净的做法是返回HTTP 204,或者在响应里带上nbr代码,好让交易平台记录原因。
常见问题
- OpenRTB竞价响应里哪些字段是必填的?
- 响应需要回传请求id的id字段。每条竞价需要id、能对上某次展示的impid、价格,以及以adm或nurl形式提供的创意。
- nbr字段是什么意思?
- 无竞价原因。这是一个整数代码,说明为什么没有出价——2表示请求无效,8表示用户无法识别,便于交易平台统计。
- nurl为什么需要AUCTION_PRICE宏?
- 因为胜出时交易平台会把成交价代入其中。没有这个宏,胜出通知就不带价格,你的日志记录的会是出价而不是实际支付。
- adm和nurl有什么区别?
- adm把创意直接放进响应,nurl是胜出后交易平台去抓取创意的URL。如今内联更常见,因为它省掉了渲染路径上的一次往返。
- mtype取代了2.5里的什么?
- 它把过去靠推断的信息写明了。2.5里媒体类型来自展示携带的对象,多格式展示时就失灵了;2.6让竞价直接声明。
相关工具
- OpenRTB 竞价请求校验器 — 对照 IAB 规则校验 OpenRTB 2.5 与 2.6 竞价请求的必需字段与枚举码。
- OpenRTB 竞价请求生成器 — 从表单构建符合规范的 OpenRTB 2.5 与 2.6 竞价请求并复制 JSON。
- OpenRTB 枚举参考 — 查询每个 OpenRTB 2.x 枚举列表,含整数码、含义与属性路径,可搜索。
- VAST 校验器 — 在浏览器中对照 IAB 规则校验 VAST XML 标签、识别版本并检查必需节点。
- Prebid 广告单元生成器 — 构建含 banner、video 与 native 媒体类型和 bidder params 的 Prebid.js 广告单元配置。
- schain 生成器 — 为 OpenRTB 构建并校验 IAB SupplyChain 对象,导出 JSON 与序列化字符串。
全部 ArrayKit 工具