SKAdNetwork 报告和架构映射
应用事件 SDK 支持 Apple 的 SKAdNetwork (SKAN) 框架,用于隐私保护归因。启用 SKAN 后,SDK 会将监测到的事件映射到你的 SKAN 架构,并调用相关的 Apple API 来更新转化价值 (CV)。为让 TikTok 能正确解析 Apple 报告的你的应用转化价值,你必须提供 SKAN 架构。如果你使用应用事件 SDK,可以通过以下两种方式提供该架构: 1. 如果你已在事件管理工具中为应用配置了 MMP,TikTok 会自动从 MMP 集成导入你的 SKAN 架构。 2. 如果你未在事件管理工具中配置 MMP,可以直接在事件管理工具中上传 SKAN 架构。 不论通过何种方式提供架构,你的应用中应只有一个 SDK 负责更新 SKAN 转化价值。多个 SDK 同时写入 CV 可能会造成冲突,导致报告不准确。
决定是否由应用事件 SDK 更新你的应用的转化价值
下表可用于确定如何为你的应用配置 SKAN 度量。
|场景{25%}|由谁更新 SKAN CV{15%}|TikTok SDK 是否支持 SKAdNetwork{15%}|事件管理工具中的 SKAN 架构{15%}|说明{30%}|
|---|---|---|---|---|
|你使用 MMP SDK,并希望使用该 MMP 的 SKAN 架构。|MMP SDK|未启用|请勿配置 SKAN 架构。|MMP 是 CV 更新和架构的唯一可信来源。参见下文的“避免 SKAN 更新冲突”。|
|你没有 MMP,但已使用其他非 MMP SDK 更新 SKAN CV。|其他 SDK(非 MMP)|未启用|上传 SKAN 架构。|TikTok 仅使用你的架构进行报告,不会发送 CV 更新。参见下文的“SKAN3 架构基础知识”和“SKAN4 架构基础知识”。|
|你希望使用 TikTok SDK 更新 SKAN CV。|TikTok 应用事件 SDK|启用|上传 SKAN 架构。|SDK 成为 SKAN CV 更新的唯一可信来源。|
SKAN3 架构基础知识
你可以在事件管理工具中,通过手动添加规则或上传 CSV 文件来配置 SKAN3 架构。SKAN3 CSV 文件包含以下列:
|conversion_value{20%}|event_name{25%}|min_revenue_usd{25%}|max_revenue_usd{30%}|
|---|---|---|---|
|1-63 之间的整数。|要匹配的标准事件或自定义事件名称。|触发此值的最低收入(含)。|触发此值的最高收入(含)。|
备注:
- 当监测的事件与你的架构中的规则匹配时,SDK 会自动调用 updatePostbackConversionValue(iOS 15.4 及以上版本)或 updateConversionValue(iOS 14.0 及以上版本)。
- 架构中传入的收入值始终以 USD 为单位。如果币种信息可用,SDK 会在匹配前自动将事件币种转换为 USD。
SKAN4 架构基础知识
若想配置 SKAN4 架构,可能需要联系 TikTok 销售代表加入白名单。架构通过 CSV 模板定义,包含以下关键列:
|postback_index{16%}|fine_conversion_value{17%}|coarse_conversion_value{19%}|event_name{15%}|min_revenue_usd{17%}|max_revenue_usd{16%}|
|---|---|---|---|---|---|
|转化窗口期(0、1 或 2)。|0-63 之间的整数。仅适用于 `postback_index` 为 0 的情况。|`low`、`medium` 或 `high`。|要匹配的事件名称。|最低收入(含)。|最高收入(含)。|
备注:
- SDK 评估 fine 和 coarse 值的规则。如果某个事件同时符合两者的规则,SDK 会优先更新 fine 值。
- 在 iOS 16.1 及以上版本中,SDK 会调用 updatePostbackConversionValue:coarseValue:lockWindow:completionHandler: 来更新 SKAN4 值。在适当情况下,它可能会传入 lockWindow: true,以锁定转化窗口期,更快地接收回传。
配置位置
你可以在事件管理工具中,通过你的应用的监测设置 → 配置 SKAN 管理你的 SKAN 架构。
避免 SKAN 更新冲突
确保你的应用中只有一个 SDK 负责更新 SKAN 转化价值。如果你使用其他 SDK(例如 MMP)来管理 SKAN,必须禁用 TikTok SDK 的 SKAdNetwork 支持,以免发生冲突。
若想禁用,需在初始化 SDK 之前,对 TikTokConfig 对象调用 disableSKAdNetworkSupport()。
(code curl http)
// Swift
guard let config = TikTokConfig(accessToken: "YOUR_APP_SECRET", appId: "YOUR_APP_ID", tiktokAppId: "YOUR_TIKTOK_APP_ID") else {
return true
}
// Add this line to disable SKAN updates
config.disableSKAdNetworkSupport()
TikTokBusiness.initializeSdk(config)
(/code)
(code curl http)
// Objective-C
TikTokConfig *config = [TikTokConfig configWithAccessToken:@"YOUR_APP_SECRET" appId:@"YOUR_APP_ID" tiktokAppId:@"YOUR_TIKTOK_APP_ID"];
// Add this line to disable SKAN updates
[config disableSKAdNetworkSupport];
[TikTokBusiness initializeSdk:config];
(/code)
部署说明
SDK 会处理将事件与你的 SKAN 架构进行匹配的所有复杂工作,并根据 iOS 版本调用正确的 Apple API。你主要负责准确监测事件,并在事件管理工具中配置所需的架构。