SupplyChain 对象让买方和中间方能够了解正在销售/转售广告资源的各方。该对象可与 ads.txt
/app-ads.txt
和 sellers.json
结合使用,以提高广告生态系统的透明度。
- 发布商发送出价请求。
- 买方通过 SupplyChain 对象收到出价请求和相关数据。
- 买方查找转销广告资源的所有中间方的身份信息。
- 买方抓取并验证获授权销售广告资源的供应商。
在适用的情境下,Google 会自动在 OpenRTB 请求或 Google RTB 协议中创建这类对象。
SupplyChain 对象的工作原理
SupplyChain 对象(也称为
)是 OpenRTB 出价请求的一部分,由多个“节点”构成。schain
schain
对象中的每个节点都代表一个参与出价请求的特定实体,出价请求则包含了广告资源的直接付款流程中涉及到的所有实体。
sid
)。
// 示例对象
"schain": {
"complete": 1,
"nodes": [{
"asi":"google.com",
"sid":"pub-1234567891234567", // 与 sellers.json 中发布商的 seller_id 相同
"hp":1
}],
"ver":"1.0"
}
如需了解更多详情,请阅读 OpenRTB 的开发者文档和 IAB 的文档。
SupplyChain 对象的外观会有所不同,具体取决于您与买方的合作方式。
直接通过 Google 销售广告资源的发布商
对于直接通过 Ad Manager、AdMob 或 AdSense 销售广告资源的发布商,schain
对象仅包含 1 个代表“google.com”的节点,相应的 seller_id
可在 sellers.json 中找到。
使用公开出价的发布商
对于使用公开出价与第三方广告交易平台合作的发布商,schain
对象中有两个节点:一个节点代表 google.com(该节点的 seller_id
可在 sellers.json 中找到),另一个节点代表广告交易平台收益合作伙伴。
就像 Google 会在发送出价请求之前创建代表 google.com 的节点一样,第三方广告交易平台负责在传递该请求之前添加自己的节点。
所有非付款中间方
不处理付款的中间方不会包含在 SupplyChain 对象中。这包括客户端标头出价、非支付标头出价、广告资源共享和其他中介。
在发出请求之前使用支付中间方的发布商 (测试版)
Beta 版阶段的功能可能并未在您的广告资源网中提供。敬请关注版本说明,了解此功能何时会推出正式版。
在向 Google Ad Manager 发出请求之前利用支付中间方的发布商必须根据 IAB 指南传递 SupplyChain
对象。SupplyChain
对象应仅包含直接参与广告资源支付流程的中间方。此类中间方可能包括发布商使用的第三方广告服务器技术。您可以使用 SupplyChain
参数在广告请求中发送 SupplyChain
对象。
说明
“供应链”(schain
) 参数接受一个变量值,该值应为序列化的 SupplyChain 对象。包含此参数时,Google 会在将任何收到的 schain
对象发送给买方之前,向其附加一个节点。
如需了解如何通过代码(而非 OpenRTB)传达 SupplyChain 信息,请参阅完整的 IAB 文档。
查看正确解析schain
需遵循的要求
下面根据 IAB 文档定义了 SupplyChain
对象的序列化:
{SupplyChainObject}!{SupplyChainNode array}。SupplyChainObject
和SupplyChainNode
属性都以英文逗号分隔,因此可选字段可以省略,并且可以选择性地排除相应的英文逗号分隔符。- 各个
SupplyChainNode
元素间用“!
”分隔。 - 如果任何属性的值包含需要进行网址编码的字符(例如“
,
”或“!
”),则应先对该值进行网址编码,然后再进行序列化。
序列化顺序
SupplyChainObject
属性按以下顺序进行序列化:
ver,complete
SupplyChainNode
属性按以下顺序进行序列化:
asi,sid,hp,rid,name,domain,ext
ext
的内容因广告交易平台而异。Google Ad Manager 不会解析此属性。有关如何序列化 SupplyChain 对象的示例
下面是序列化上述 SupplyChain
对象的两种方法示例:
1.0,1!exchange1,12345,1,bid-request-1,publisher1,publisher1.com!google.com,pub-12345678910,1,,,,
1.0,1!exchange1,12345,1,bid-request-1,publisher1,publisher1.com!google.com,pub-12345678910,1
用法示例
schain=1.0,1!exchange1,12345,1,bid-request-1,publisher1,publisher1.com!google.com,pub-12345678910,1,,,,
如果 asi
的值为 exchange,1
,则使用转义字符进行序列化后的结果如下所示:
1.0,1!exchange%2C1,12345,1,bid-request-1,publisher1,publisher1.com!google.com,pub-12345678910,1
要求和建议
虽然对于任何特定实现或交易类型而言,无需此参数即可投放广告,但对于在向 Google Ad Manager 发出请求之前利用支付中间方的发布商,此参数为必需参数。其中包括使用第三方广告服务器技术的发布商。
SupplyChain
对象的任何其他节点也应在发布商的 ads.txt/app-ads.txt 文件中体现出来,否则买方可能会认为流量未经授权。使用“多客户管理”工具的发布商
借助多客户管理 (MCM) 工具,发布商在管理客户 AdMob 帐号时能够获得与发布商本人相同的数据查看权限和控制权限。
对于使用 AdMob MCM 的父级发布商和子发布商,schain
对象会有 1 个包含子发布商的卖方 ID 的节点,以及 1 个用于父级发布商的节点,并且相应链会被标记为完成。对于 AdMob MCM,创收是在子发布商的帐号中进行的。子发布商会被视为最终发布商。