竞价请求
CloudX 发送给需求合作伙伴端点的 OpenRTB 竞价请求字段(按对象划分)。
CloudX 可能在您的端点符合条件的每个实际执行轮次中发送一个 OpenRTB 竞价请求,通过 HTTPS POST 携带 JSON 请求体。本页介绍对集成最重要的字段。未列出的字段遵循 IAB OpenRTB 2.5 或 2.6 规范,与为您的端点配置的版本一致。
顶层对象
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 竞价请求 ID;同一次展示机会的多个轮次会复用该值。请在 bidresponse.id 中原样返回。 |
at | integer | 始终为 1——第一价格竞价。您按出价全额支付。 |
tmax | integer | 您的响应截止时间(毫秒),按端点设置(默认为 1400)。超时到达的响应会被丢弃。 |
test | integer | 集成测试产生的测试流量上为 1。生产流量中不携带。 |
imp | object array | 恰好一个 impression 对象,见下文。 |
device | object | 用户设备,见设备与地理位置。 |
app | object | 发布商应用,见应用与发布商。 |
user | object | 受众数据,见用户与身份。 |
regs | object | 隐私法规,见法规。 |
source | object | 流量来源(含供应链信息),见来源与供应链。 |
bcat | string array | 发布商 line item 配置的 IAB 类别屏蔽列表(如已配置)。这些类别的出价会被拒绝。 |
badv | string array | 发布商 line item 配置的广告主域名屏蔽列表(如已配置)。这些域名的出价会被拒绝。 |
Imp 对象
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 请求内的展示 ID。请在 bid.impid 中原样返回。 |
tagid | string | 发布商 CloudX 配置中的广告位标识符。 |
banner | object | 展示类(banner)机会时携带。可出价的素材尺寸见 w/h 或 format。 |
video | object | 视频机会时携带,含 mimes、minduration、maxduration 和播放器尺寸。请在 adm 中返回 VAST。 |
instl | integer | CloudX 标准请求中,插屏、App Open 和激励广告均使用 1。端点适配器可能根据买方契约改写该值,请以最终端点样例为准。 |
| 激励广告信号 | integer | OpenRTB 2.6 使用 imp.rwdd: 1。对于 2.5,端点适配器可能发送 imp.ext.prebid.is_rewarded_inventory: 1,也可能恢复 imp.rwdd: 1;请在接入示例中确认具体结构。 |
bidfloor | float | 本轮竞价的最低 CPM(美元)。低于底价的出价会被丢弃。 |
bidfloorcur | string | 始终为 "USD"。 |
displaymanager | string | "cloudx"——获胜素材由 CloudX SDK 渲染。 |
ext.tid | string | 每次展示的交易 ID(IAB 社区扩展);仅在配置的端点适配器保留该字段时携带。 |
ext.skadn | object | 源应用的 SKAdNetwork 能力,遵循 IAB SKAdNetwork 扩展。是否在符合条件的 iOS 流量上送达取决于配置的端点适配器;请在接入期间确认。请参阅 SKAdNetwork。 |
ext.cloudx.format | string | CloudX 广告位格式。该字段存在时,"app_open" 表示 App Open 流量。CloudX 不为其他格式写入该字段,但由于写入过程会继续发送无法安全更新的原请求,缺失仍表示未知。请参阅 App Open 信号。 |
ext.cloudx.settlement | string | 当 CloudX 就该次展示与您结算时为 "cloudx",否则不携带。 |
ext.tid 和 ext.skadn 是否出现可能因端点而异。请在示例请求中确认,不要假定每个端点都会收到。
设备与地理位置
device 可以携带标准 OpenRTB 字段 ua、ip、ifa、os、osv、make、model、devicetype、connectiontype、carrier、language、lmt、dnt,以及包含 country、region、city、zip 的 geo 对象。
发送请求前,如果隐私策略要求,CloudX 可能移除广告和用户标识符、匿名化 IP 地址,并降低地理位置精度。字段也可能因设备或发布商未提供而缺失。
当设备设置 Global Privacy Control 时,CloudX 会转发 Sec-GPC: 1 HTTP 请求头。
隐私信号与数据删减指南
查看版本对应的路径、CloudX 数据删减方式和买方责任。
应用与发布商
| 字段 | 说明 |
|---|---|
app.id | CloudX 配置的应用 ID。在已认证流量中,它与 app.bundle 均为必填字段。 |
app.bundle | 应用的平台包标识符(例如 com.example.game)。在已认证流量中为必填字段;若缺失或与应用配置不匹配,CloudX 会拒绝该请求。 |
app.name | 应用名称。 |
app.publisher.id | 发布商的 CloudX 账户 ID。发布商在其 app-ads.txt 条目中使用该值。 |
用户与身份
当发布商传入扩展标识符时,CloudX 会以 OpenRTB eids 形式转发——支持 UID2、EUID、LiveRamp、ID5 和 Intent IQ。请按您的端点版本读取对应路径:
| OpenRTB 版本 | 路径 |
|---|---|
| 2.6 | user.eids |
| 2.5 | user.ext.eids |
各来源的取值和处理规则请参阅扩展标识符。
法规
| 信号 | 路径 |
|---|---|
| GDPR 是否适用 | 2.6: regs.gdpr2.5: regs.ext.gdpr |
| COPPA | 2.6 和 2.5: regs.coppa由上游提供且值为 1 时,CloudX 会执行防御性隐私删减。CloudX 移动 SDK 不设置该字段。根据 CloudX 策略,请勿出价。 |
| TCF EU v2 同意字符串 | 2.6: user.consent2.5: user.ext.consent |
| GPP | 2.6 和 2.5: regs.gpp、regs.gpp_sid兼容副本也可能出现在 regs.ext 下。 |
| US Privacy | 2.6: regs.us_privacy2.5: regs.ext.us_privacy |
| DSA | 2.6 和 2.5: regs.ext.dsa |
CloudX 策略禁止面向儿童的流量。请勿将 regs.coppa 视为出价许可,也不要将其缺失视为流量并非面向儿童的证明;详情请参阅 OpenRTB 买方隐私指南。
来源与供应链
CloudX 结算的请求(见 imp.ext.cloudx.settlement)携带 IAB Supply Chain 对象,标明 CloudX 和发布商。其位置取决于您的端点版本:
| OpenRTB 版本 | 路径 |
|---|---|
| 2.6 | source.schain |
| 2.5 | source.ext.schain |
请使用供应透明度将 app.publisher.id 与 schain、sellers.json 和 app-ads.txt 相互核对。
请求示例
配置为接收 SKAdNetwork 扩展的 OpenRTB 2.5 端点上的 iOS 全屏视频机会:
视频协议编号因平台而异:当前 Android 请求使用 [2, 3, 4, 5, 6, 7],iOS 请求使用 [2, 3, 5, 6, 7, 8]。Android 协议 4 是 OpenRTB 的 VAST 1.0 Wrapper 信号,但仅作为旧版传输遗留项保留;CloudX Android 渲染器无法渲染 VAST 1.0 Wrapper。针对 Android,请返回 VAST 2.0 或更高版本的标记。请求中的 MIME 列表宽于 Android CloudX 渲染器的实际支持范围;跨平台 CloudX VAST 素材应使用 video/mp4,其他类型需在接入阶段另行确认。
{
"id": "7f3d9a1c2e4b48f0a6d5c8b2e1f40937",
"at": 1,
"tmax": 1400,
"imp": [
{
"id": "1",
"tagid": "home-interstitial",
"instl": 1,
"bidfloor": 4.5,
"bidfloorcur": "USD",
"displaymanager": "cloudx",
"video": {
"w": 1080,
"h": 1920,
"mimes": ["video/mp4", "video/3gpp", "video/3gpp2", "video/x-m4v", "video/quicktime"],
"minduration": 5,
"maxduration": 30,
"protocols": [2, 3, 5, 6, 7, 8],
"api": [3, 5, 6, 7],
"linearity": 1
},
"ext": {
"tid": "9e1c04d2-8f3a-4b7c-a2d5-6e8f0a1b3c4d",
"skadn": {
"version": "4.0",
"sourceapp": "123456789",
"skadnetids": ["abc123def4.skadnetwork"]
}
}
}
],
"app": {
"id": "app_01HF8ZK2M3",
"bundle": "com.example.game",
"name": "Example Game",
"publisher": { "id": "pub_01HF8ZK2M3" }
},
"device": {
"ua": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) ...",
"ip": "203.0.113.24",
"ifa": "9D2E4F1A-6B3C-4A5D-8E7F-1A2B3C4D5E6F",
"os": "iOS",
"osv": "17.5",
"make": "Apple",
"model": "iPhone16,2",
"devicetype": 1,
"connectiontype": 2,
"lmt": 0,
"geo": { "country": "USA", "region": "CA", "city": "San Francisco" }
},
"regs": {
"ext": { "gdpr": 0, "us_privacy": "1---" }
},
"source": {
"ext": {
"schain": {
"complete": 1,
"ver": "1.0",
"nodes": [
{ "asi": "cloudx.io", "sid": "pub_01HF8ZK2M3", "rid": "7f3d9a1c2e4b48f0a6d5c8b2e1f40937", "hp": 1 }
]
}
}
}
}下一步:竞价响应
返回内容:必填字段、广告标记规则,以及获胜/失败通知。