SSP 响应状态
200 返回 application/json 的单一胜出报价;其余下表业务响应正文为空,不提供 JSON 错误对象。业务响应带 Cache-Control: no-store。错误不回显原始凭证、DSP 地址或请求正文。
| 状态码 | 含义 | 处理建议 |
|---|---|---|
200 |
合法胜出报价 | 解析单个 seatbid / bid;外层 price 为 net,按真实事件执行通知 |
204 |
正常无有效报价 | 不当作服务故障;可能无匹配路由、DSP 失败 / 无报价、全被屏蔽或预算内无结果 |
400 |
非法 / 不支持的请求,或业务路径带 query | 修正字段、重复 JSON 键、币种、拍卖类型和路径后再发 |
401 |
未授权、伙伴停用或凭证无效 | 核对身份、audience、key、时间与签名;不能切换到旧 Token 绕过 |
404 |
业务路径不合法 | 使用规范 /openrtb/{ssp_id} |
405 |
正确路径上方法不是 POST | 修改为 POST |
408 |
正文未在剩余读体预算内完成 | 排查连接与发送速度;不要复用原 Nonce |
409 |
同进程已登记该 HMAC Nonce | 为新尝试生成新 Nonce 和签名;排查重复发送 |
413 |
入站请求或补写下游字段后超过上限 | 缩小请求,给补写字段保留余量;请求上限 256 KiB |
415 |
非 JSON、重复 Content-Type 或不支持的内容编码 | 发送唯一 JSON 媒体类型与未压缩正文 |
429 |
SSP 单实例 QPS 门禁超限 | 降低发送速率并退避;这不是集群总配额声明 |
503 |
当前无法服务,或认证 / 在途资源不可用 | 短暂退避并联系约定接入渠道排查,避免重试风暴 |
500 |
内部编排或响应不变量错误 | 保留脱敏关联信息排查,勿无限重试 |
HTTP 解析前的连接拒绝、头部超时或断连不保证返回上述业务状态。不要把没有 HTTP 响应自行解释为 G24ad 返回了 504 或 499。
DSP 状态与坏响应
DSP 的 HTTP 200 才会进入 JSON 报价校验;204 为无报价,其他状态及网络 / 超时 / 压缩 / 超限 / 非法 JSON 等会使该 DSP 本次没有可用候选。单个 DSP 失败不应变成 SSP 的 500;其他有效候选仍可参与,最终无候选通常为 204。
总响应结构、币种或 request.id 不合法时淘汰整份 DSP 响应;单条 bid 的关联、价格、素材或屏蔽校验失败只剔除该条。详见 字段矩阵。
重试不是重放
每次新尝试都需要当前时间戳、全新随机 Nonce 和新签名,即使前一次收到 400、408、415 或客户端根本未收到响应。认证发生在正文处理之前,原 Nonce 可能已被登记。更换 key ID 不能绕过同一 SSP 的 Nonce 去重。
网络失败后不能确认原竞价是否已经处理;新 Nonce 只解决认证重放问题,不提供业务幂等性。是否重新发起同一次展示机会、如何避免重复展示与通知,需要由接入双方在业务层约定。结合剩余展示时限做有限次数、带退避的重试,避免对 204 或未修正的 4xx 盲目重试。
排查时提供时间、脱敏 request ID、HTTP 状态、格式和大致正文大小即可。不要提供 secret、完整签名头、用户标识或完整用户正文。完整准备步骤见 上线清单。
协议与实现校核日期:2026-09-21。