如何读这张表
这是当前接入边界,不是完整 OpenRTB schema。表中的类型是伙伴应发送的类型;「透传」项未做完整本地类型或语义校验,不能据此认为错误类型合法或媒体 / 隐私约束已经执行。
| 标记 | 含义 |
|---|---|
| 校验 | ADX 检查该项类型、边界或关联关系 |
| 匹配 | 提取用于路由、定向、底价或素材 / 席位筛选,可同时校验与透传 |
| 透传 | 请求字段按 JSON 值保留给 DSP,或 bid 字段保留给 SSP;不代表逐字节保留 |
| 改写 | 生成下游请求 / SSP 胜出响应时改写该字段 |
| 拒绝 | 该字段只要出现即拒绝,包含显式 null,除非表中另有说明 |
所有 JSON 层级拒绝重复键(包含转义后同名键)、非法 JSON 与保留的内部解析器键。未知字段一般保留,但明确拒绝项不会因为值为空而放行。对经过校验的可选字段,「省略」不等于 null;错误类型或显式 null 通常拒绝。
校验用文本规则:UTF-8 字节长度有限、不能全为空白、无控制字符;不会对合法文本自动 trim。受限字符串列表最多 64 项,每项最多 512 字节;列表中的坏项不丢弃。属性列表最多 64 项,每项为 1..4294967295 的整数。金额见 DSP 价格约定。
Request 顶层
| 字段 | 类型 / 必选 | 处理 | 限制或作用 |
|---|---|---|---|
request |
object / 是 | 校验 | SSP 原始及补写后的请求均最多 256 KiB |
id |
string / 是 | 校验、透传 | 1–128 字节;用于响应关联 |
at |
integer / 是 | 校验、改写 | 只能为 1,显式一价 |
tmax |
integer / 否 | 校验、改写 | 1–60000 毫秒;下游写入剩余预算 |
cur |
string[] / 否 | 校验、改写 | 省略按 USD;显式只能 ["USD"],下游补写 |
imp |
object[] / 是 | 校验、匹配 | 恰好一个对象 |
app / site |
object / 二选一 | 校验、匹配、透传 | 恰好一个,选择流量来源 |
device |
object / 否 | 校验、匹配、透传 | 存在时必须对象,见下表 |
bcat |
string[] / 否 | 校验、匹配、透传 | 受限列表;与 bid.cat 精确比较 |
badv |
string[] / 否 | 校验、匹配、透传 | 受限列表;与 bid.adomain 忽略 ASCII 大小写比较 |
bapp |
string[] / 否 | 校验、匹配、透传 | 受限列表;与 bid.bundle 精确比较 |
wseat / bseat |
string[] / 否 | 校验、匹配、透传 | 受限列表;不能同时非空;匹配 DSP 原始 seat,不是 DSP ID |
cattax |
integer / 否 | 校验、透传 | 只接受 1 |
wlang / wlangb / acat / durfloors |
任意 / 禁止 | 拒绝 | 尚未实现可兑现的对应约束 |
test / allimps |
integer / 否 | 透传 | 不切换执行模式;不能请求多 imp |
| 其他未列明字段 | 按约定 / 否 | 透传 | 不承诺对应拍卖语义,接入前确认 |
Device、App 与 Site
| 字段 | 类型 / 必选 | 处理 | 限制或作用 |
|---|---|---|---|
device.os |
string / 否 | 校验、匹配、透传 | 最多 512 字节;匹配值转 ASCII 小写 |
device.geo |
object / 否 | 校验、透传 | 存在时必须对象 |
device.geo.country |
string / 否 | 校验、匹配、透传 | 合法 ISO alpha-2 / alpha-3,国家码必须大写;匹配转 alpha-2 |
device.geo.lat / lon |
number / 否 | 透传 | 不用于本地经纬度定向 |
device.geo.region / city / zip |
string / 否 | 透传 | 不做完整地理校验 |
device.ua / ip / ipv6 / ifa / make / model / osv / language |
string / 否 | 透传 | 非本地匹配维度,遵守合法数据使用范围 |
device.dnt / lmt / devicetype / connectiontype / js |
integer / 否 | 透传 | 不表示本地已执行隐私或设备能力约束 |
device.sua / ext / 其他字段 |
object 或标准约定类型 / 否 | 透传 | 具体语义由双方确认 |
app.bundle |
string / 否 | 校验、匹配、透传 | 最多 512 字节;精确字符串,不转换大小写 |
app.id / name / domain / storeurl / ver |
string / 否 | 透传 | 不替代路径中的 SSP 身份 |
app.cat / sectioncat / pagecat |
string[] / 否 | 透传 | 不同于 request.bcat 的本地屏蔽语义 |
app.publisher / content / ext / 其他字段 |
object 或标准约定类型 / 否 | 透传 | 不保证内部子字段校验 |
site.id / name / domain / page / ref / search |
string / 否 | 透传 | Site 不从这些字段提取 App Bundle |
site.cat / sectioncat / pagecat |
string[] / 否 | 透传 | 不用于本地媒体分类屏蔽 |
site.publisher / content / ext / 其他字段 |
object 或标准约定类型 / 否 | 透传 | 不保证内部子字段校验 |
国家、OS、App Bundle 可缺失;存在但错误的维度不能退化为「缺失」绕过匹配。匹配归一化不改写 DSP 收到的原始 OS / country / bundle。
Imp 与媒体对象
| 字段 | 类型 / 必选 | 处理 | 限制或作用 |
|---|---|---|---|
imp.id |
string / 是 | 校验、透传 | 1–128 字节,用于 bid.impid 关联 |
imp.banner / video / native |
object / 三选一 | 校验、匹配、透传 | 恰好一个对象;决定格式维度;null 无效 |
imp.bidfloor |
number / 否 | 校验、改写 | 非负 USD CPM;省略为 0;向上取整至微单位;下游改为 gross 底价 |
imp.bidfloorcur |
string / 否 | 校验、改写 | 省略为 USD,显式只能 USD,下游补写 USD |
imp.secure / instl / clickbrowser / exp |
integer / 否 | 透传 | 不独立验证素材是否满足 secure 或展示约束 |
imp.tagid / displaymanager / displaymanagerver |
string / 否 | 透传 | 不作为本地规则匹配维度 |
imp.metric |
object[] / 否 | 透传 | 不验证指标真实性 |
imp.ext / 其他字段 |
object 或标准约定类型 / 否 | 透传 | 不承诺扩展拍卖语义 |
imp.pmp / audio / qty / rwdd / durfloors |
任意 / 禁止 | 拒绝 | PMP、音频、数量及这些扩展当前不支持 |
banner.battr / video.battr / native.battr |
integer[] / 否 | 校验、匹配、透传 | 受限正整数列表,与 bid.attr 比较 |
媒体对象中的 btype / podid / podseq / poddur / maxseq / mincpmpersec / rqddurs / durfloors |
任意 / 禁止 | 拒绝 | 三种媒体对象均拒绝这些字段 |
banner.w / h / wmin / wmax / hmin / hmax / pos / topframe |
integer / 否 | 透传 | 不完整校验尺寸与展示位置,双方仍须验证 |
banner.format |
object[] / 否 | 透传 | 不完整校验候选尺寸 |
banner.mimes |
string[] / 否 | 透传 | 媒体类型约束交 DSP 执行 |
banner.api / expdir |
integer[] / 否 | 透传 | 不验证素材 API / 展开能力 |
banner.id / ext / 其他字段 |
标准约定类型 / 否 | 透传 | 未执行完整 Banner schema |
video.mimes |
string[] / 按伙伴媒体约定 | 透传 | 应按 IAB 与播放器能力提供,ADX 不完整校验 |
video.protocols / api / playbackmethod / delivery / companiontype |
integer[] / 否 | 透传 | 不独立验证 VAST 或播放器能力 |
video.minduration / maxduration / w / h / linearity / placement / plcmt / startdelay / skip / skipmin / skipafter / minbitrate / maxbitrate / pos |
integer / 否 | 透传 | 未执行完整媒体限制;不是 POD 支持 |
video.companionad |
object[] / 否 | 透传 | 不递归保证完整 Banner 能力 |
video.ext / 其他字段 |
标准约定类型 / 否 | 透传 | 不独立验证 VAST 内容 |
native.request |
string(序列化 Native JSON)/ 按伙伴媒体约定 | 透传 | 不解析内部资产请求;双方需自行验证 Native 版本与资产 |
native.ver |
string / 否 | 透传 | 示例使用 1.2,不代表完整 Native 1.2 验证 |
native.api / ext / 其他字段 |
标准约定类型 / 否 | 透传 | 未执行完整 Native schema |
User、Regs、Source 与扩展
| 字段 | 类型 / 必选 | 处理 | 限制或作用 |
|---|---|---|---|
user |
object / 否 | 透传 | 不用于本地用户匹配;本地未完整校验对象与子字段 |
user.id / buyeruid / keywords / customdata |
string / 否 | 透传 | 仅在合法授权范围内发送 |
user.geo / ext,user.data |
object / object[] / 否 | 透传 | 包括 consent 等扩展,不等于合规判断 |
regs |
object / 否 | 透传 | 未完整验证法规语义 |
regs.coppa / gdpr,regs.gpp / gpp_sid / ext |
integer / string / integer[] / object,按字段 / 否 | 透传 | 由双方履行约束,不自动证明合法使用 |
source |
object / 否 | 透传 | 不等于认证身份来源 |
source.fd / tid / pchain / schain / ext |
integer / string / object,按字段 / 否 | 透传 | 不对供应链真实性作独立背书 |
ext |
object / 否 | 透传 | 请求顶层及未明确处理的嵌套扩展一般保留,无新增隐含支持 |
完整标准语义参考 IAB OpenRTB 与 Native Ads。透传隐私字段不等于独立的法规合规校验,接入方必须确认数据收集、传递、使用与素材展示的合法范围。
DSP Response 与 Seatbid
| 字段 | 类型 / 必选 | 处理 | 限制或作用 |
|---|---|---|---|
response |
object / 200 有报价时是 | 校验、重建 | 最多 512 KiB;顶层错误拒绝整个 DSP 响应 |
response.id |
string / 是 | 校验、重建 | 1–128 字节;必须匹配 request.id |
response.cur |
string / 否 | 校验、改写 | 省略 USD;显式只能 USD;SSP 输出补写 USD |
response.seatbid |
object[] / 否 | 校验、重建 | 省略或空数组表示无报价;最多 64 个 seat;SSP 仅输出胜者 |
response.bidid / nbr / customdata / ext / 其他字段 |
标准约定类型 / 否 | 不保留 | SSP 响应顶层重建为 id、cur、seatbid |
seatbid.seat |
string / 条件必选 | 校验、匹配、保留 | 最多 512 字节;存在席位白 / 黑名单时需提供可判定身份 |
seatbid.group |
integer / 否 | 校验、筛选 | 无符号整数;非 0 时整 seat 不参与,不支持组合成交 |
seatbid.bid |
object[] / 是 | 校验、重建 | 每 seat 最多 64 条,全部 seat 合计最多 64 条;空数组无报价 |
seatbid.ext / 其他字段 |
标准约定类型 / 否 | 不保留 | 输出 seat 仅保留 seat(如有)及胜出 bid |
非法 seat 对象、seat 类型、group 类型、bid 数组或总数会淘汰整个 DSP 响应;单条 bid 的下表校验失败只淘汰该条,不遮蔽合法同级报价。
Bid 字段
| 字段 | 类型 / 必选 | 处理 | 限制或作用 |
|---|---|---|---|
bid.id |
string / 是 | 校验、保留 | 1–128 字节;也用于稳定同价裁决 |
bid.impid |
string / 是 | 校验、保留 | 1–128 字节;必须匹配唯一 imp.id |
bid.price |
number / 是 | 校验、竞拍、改写 | DSP gross 向下取整后必须大于 0;满足底价;SSP 输出 net |
bid.cur |
string / 否 | 校验、保留 | 只能 USD;不能用 bid 币种覆盖错误的响应币种 |
bid.adm |
string / 是 | 校验、宏替换、保留 | 非全空白,最多 256 KiB,无 NUL;允许换行;不解析完整素材内容 |
bid.nurl / burl / lurl |
string / 否 | 校验、宏替换、保留 | 各最多 8192 字节,通用文本规则;不完整验证 URL,不由 ADX 调用 |
bid.adomain / cat |
string[] / 条件必选 | 校验、匹配、保留 | 受限列表;有 badv / bcat 时必须提供非空对应身份 |
bid.attr |
integer[] / 条件必选 | 校验、匹配、保留 | 受限正整数列表;有 battr 时字段必须存在,可为空数组 |
bid.crid |
string / 否 | 校验、匹配、保留 | 最多 512 字节,交素材屏蔽规则 |
bid.bundle |
string / 条件必选 | 校验、匹配、保留 | 最多 512 字节;有 bapp 时必须提供 |
bid.cattax |
integer / 否 | 校验、保留 | 只能 1 |
bid.dealid / podid / slotinpod |
任意 / 禁止 | 拒绝该 bid | 不支持 Deal 或 POD |
bid.adid / cid / iurl / language |
string / 否 | 保留 | 不代表对应身份或素材已独立验证 |
bid.w / h / api / protocol / qagmediarating / exp |
integer / 否 | 保留 | 不执行完整媒体响应校验 |
bid.ext / 其他字段 |
object 或标准约定类型 / 否 | 保留 | 保留在胜出 bid,不保证未知约束已实现 |
素材 adomain、category、crid、广告 Bundle 还会参与配置的素材屏蔽。胜出响应补写后若超过 512 KiB,该报价淘汰并允许合法低价继续竞争;全部淘汰返回 204。价格和 ${AUCTION_PRICE} 的不同语义见 DSP 接入。
协议与实现校核日期:2026-09-19。