SKAdNetwork
SKAdNetwork 归因如何经由 CloudX 面向需求合作伙伴流转
SKAdNetwork 是 Apple 保护隐私的框架,用于将应用安装归因于广告。对于配置为接收该扩展的买方端点,CloudX 支持以下 IAB SKAdNetwork OpenRTB 流程:
- 竞价请求告知您来源应用的 SKAdNetwork 能力。
- 您的竞价响应携带被推广应用的已签名展示数据。
- 当用户点击广告时,CloudX SDK 会在呈现被推广应用的产品页时将您的签名数据传给 StoreKit。有效数据使该交互具备归因资格;最终是否归因由 Apple 决定。
竞价请求:应用能力
当该字段送达符合条件的 iOS 展示请求时,imp.ext.skadn 描述来源应用支持的能力:
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 应用支持的 SKAdNetwork 版本(例如 "4.0")。 |
versions | string 数组 | 应用支持的全部 SKAdNetwork 版本。 |
sourceapp | string | 展示广告的应用 ID,通常为数字 App Store ID。回退情况下可能为 bundle ID;此时该请求不符合 SKAdNetwork 归因条件。 |
skadnetids | string 数组 | 发布商 Info.plist 中 SKAdNetworkItems 列出的广告网络 ID。您的网络 ID 必须出现在其中,归因才能生效。 |
仅当 skadnetids 包含您的广告网络 ID,且 sourceapp 只包含数字时,才发送带 SKAdNetwork 签名的竞价。如果 sourceapp 是 bundle ID,请正常出价但不要返回 bid.ext.skadn;请勿原样返回该 bundle ID,也不要使用其他标识符生成签名。
竞价响应:已签名展示数据
要投放支持 SKAdNetwork 归因的广告,请在您的竞价上返回 bid.ext.skadn 对象:
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 生成展示数据所用的 SKAdNetwork 版本。必须是请求中所宣传的版本之一。 |
network | string | 您的广告网络 ID,与生成签名时使用的 ID 一致。 |
campaign | string | 广告系列 ID,遵循 Apple 规范。SKAdNetwork 4.0 及更高版本请改用 sourceidentifier。 |
sourceidentifier | string | 四位数字的广告展示标识符,适用于 SKAdNetwork 4.0 及更高版本。 |
itunesitem | string | 被推广应用的数字 App Store ID。 |
sourceapp | string | 展示广告应用的数字 App Store ID。请原样返回请求中的数字 imp.ext.skadn.sourceapp;iOS 14 及更高版本会将其用于 StoreKit 签名参数。 |
productpageid | string | 可选的 iOS 15 及以上自定义产品页 ID。它可以随 SKAdNetwork 数据返回,但本身并不属于 SKAdNetwork 2.2 签名。 |
nonce | string | 每次广告展示唯一的 UUID。 |
timestamp | string | 生成签名时的 Unix 时间(毫秒)。 |
signature | string | 该展示的 Apple SKAdNetwork 签名。 |
fidelities | object 数组 | 适用于 SKAdNetwork 2.2 及更高版本。请提供完整的点击归因条目,包含 fidelity: 1、nonce、timestamp 和 signature。 |
iOS SDK 会优先使用 fidelity: 1 条目,并分别解析 nonce、timestamp 和 signature。为保持兼容性,如果该条目不存在或缺少某个字段,该字段会回退到顶层同名字段。请勿混用这两种格式:对于 SKAdNetwork 2.2 及更高版本,请发送一个完整的 fidelity: 1 条目;对于更早版本,请在顶层发送一组完整的 nonce、timestamp 和 signature。SDK 不会注册浏览归因(fidelity: 0)签名。
CloudX 不会修改 bid.ext.skadn——获胜出价上的该对象将按原样送达设备。
这些字段属于买方契约。CloudX 在调用 StoreKit 前会检查 UUID 格式和核心参数集等结构要求,但不会验证 Apple 的加密签名;无效或不匹配的数据可能导致归因失败。
示例
{
"id": "request-123",
"seatbid": [
{
"bid": [
{
"id": "1",
"impid": "imp-1",
"price": 2.5,
"adm": "<html>...</html>",
"crid": "creative-123",
"adomain": ["advertiser.example"],
"ext": {
"skadn": {
"version": "4.0",
"network": "abc123def4.skadnetwork",
"sourceidentifier": "5239",
"itunesitem": "987654321",
"sourceapp": "123456789",
"fidelities": [
{
"fidelity": 1,
"nonce": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "1697044800000",
"signature": "MEQCIEqm..."
}
]
}
}
}
]
}
],
"cur": "USD"
}设备端行为
- 当用户点击广告时,SDK 会呈现被推广应用的 App Store 产品页,并使用
fidelity: 1条目中的签名数据,使交互具备点击归因资格;最终结果由 Apple 决定。 - 支持自定义产品页(
productpageid),要求 iOS 15 及更高版本。 - 这适用于为您的端点启用的每种 CloudX 渲染素材类型——参见素材规范。
延伸阅读
- Apple SKAdNetwork 文档——签名生成与回传行为。
- IAB SKAdNetwork 扩展——
imp.ext.skadn与bid.ext.skadn的权威字段定义。 - 素材规范——面向 CloudX 渲染需求的素材类型与渲染行为。