RevenueCat × Apple Ads
开启最容易被遗漏的广告归因配置。
把 RevenueCat 连接到 Lily,只代表已授权读取收入。你的 app 还必须采集 AdServices attribution token 并发送给 RevenueCat,Apple Ads 归因才会真正生效。
OAuth 已连接 ≠ 归因已就绪。RevenueCat 后台的 Apple AdServices integration,以及 App 内的 SDK token 采集,是另外两个必须完成的步骤。
完整归因链路
授权 RevenueCat
允许 Lily 读取 RevenueCat 项目、App 和图表数据。这是 Lily onboarding 中完成的步骤。
添加 Apple AdServices
允许 RevenueCat 向 Apple 请求归因详情,并在图表中生成 Apple Ads 维度。
发送 attribution token
生产版本 App 必须在配置 Purchases SDK 后,开启 AdServices token 采集。
添加 Apple AdServices integration。
打开与该 App Store App 对应的 RevenueCat 项目,然后进入 Integrations → Apple AdServices → Add Apple Search Ads integration。如果你正在新建 Apple Ads 账户,我们推荐选择 Advanced;如果现有账户已经是 Basic,这里仍应选择 Basic,确保两个系统一致。
推荐:注册 Apple Ads 时选择 Advanced。
Advanced 不会增加注册费或更高一档的开户要求;你只是在注册时选择开通不同的产品。同时,它还提供关键词数据、详细报表、广告系列控制和 Campaign Management API。除非你有明确理由接受 Basic 的限制,否则一定选择 Advanced。
为什么我们推荐 Advanced选择 Sign in with Apple,在 Apple Ads 中授权 RevenueCat,然后返回 RevenueCat 确认状态为 connected。
仅当你现有的 Apple Ads 账户就是 Basic 时选择。添加 integration 后继续完成下方 SDK 步骤;广告系列、广告组或关键词名称可能不可用。
推荐权限:Read Only。执行授权的 Apple Ads 用户必须是 Account Admin 或 Campaign Group Manager。Limited Access 只有在包含所有所需广告系列组时才可靠。
对于新账户我们推荐 Advanced,但 RevenueCat 必须始终与 Apple Ads 当前启用的产品一致。在 RevenueCat 中选择 Advanced,并不能把已有 Basic 账户升级为 Advanced。
采集并发送 attribution token。
这是最常被遗漏的一步。在 iOS 14.3 及以上版本中,需要在 Purchases 配置完成后调用 RevenueCat 的 AdServices token 自动采集方法。SDK 会在后台把 token 发送给 RevenueCat。
import RevenueCat
Purchases.configure(
withAPIKey: "public_sdk_key",
appUserID: "your_app_user_id"
)
// Call after Purchases.configure(...)
Purchases.shared.attribution
.enableAdServicesAttributionTokenCollection()iOS 14.3+
AdServices 的最低版本
配置之后
调用顺序很重要
后台同步
无需自行保存 token
明确选择 Standard 或 Detailed。
Standard 归因不需要 App Tracking Transparency 授权,已经可以支持广告系列、广告组、关键词、国家/地区、claim type 和 placement 分析。Detailed 会额外提供点击与展示日期,但需要 ATT 授权。
Swift 中启用 Detailed 归因
应先请求 ATT 授权,再开启自动采集。如果在弹出 ATT 之前就开启采集,该 token 只能用于 Standard 归因。即使用户拒绝跟踪,仍可以采集 Standard 数据。
import AppTrackingTransparency
import RevenueCat
Purchases.configure(
withAPIKey: "public_sdk_key",
appUserID: "your_app_user_id"
)
if ATTrackingManager.trackingAuthorizationStatus != .notDetermined {
Purchases.shared.attribution
.enableAdServicesAttributionTokenCollection()
}
// Later, when it is appropriate to show the ATT prompt:
if ATTrackingManager.trackingAuthorizationStatus == .notDetermined {
ATTrackingManager.requestTrackingAuthorization { _ in
Purchases.shared.attribution
.enableAdServicesAttributionTokenCollection()
}
}确认归因数据已进入,再开始使用 ROAS。
包含 SDK 调用的生产版本上线后,通过 Apple Ads 获取真实用户,并在 RevenueCat Charts 中检查归因维度。RevenueCat 会在 24 小时内使用 token 向 Apple 请求数据;新接入建议最多等待 7 天积累数据。
- 01打开 RevenueCat 中的收入、试用、转化或 LTV 图表。
- 02把 Attribution source 设为 Apple Search Ads,排除 Organic 安装。
- 03按 Apple search ads campaign 分组,并继续检查广告组与关键词维度。
- 04至少核对一个广告系列名称或 ID 与 Apple Ads 后台一致,再开始使用 Lily ROAS。
不要把 TestFlight 当作最终验证。Debug 与 TestFlight 环境可能返回占位或不完整的 Apple Ads 字段,通常会显示为 Unspecified。
上线前检查
这个 App 的归因真的准备好了吗?
0 / 5故障排查
当图表中仍然没有归因数据。
RevenueCat 已连接 Lily,但看不到 Apple Ads 广告系列维度。
检查另外两层:RevenueCat 后台是否添加 Apple AdServices;生产 App 是否在 Purchases.configure(...) 后调用 enableAdServicesAttributionTokenCollection()。只完成 Lily OAuth 不会产生归因数据。
广告系列显示为 Unspecified。
Apple Ads Basic 不会提供所有广告系列字段,Debug 或 TestFlight 归因也可能返回占位数据。请用 App Store 生产版本验证,并确认 RevenueCat 的 Basic / Advanced 与 Apple Ads 一致。
安装显示为 Organic。
Organic 表示 RevenueCat 没有为该交易获得有效的 Apple Search Ads 归因。请确认用户确实来自 Apple Ads、首次启动时已包含 SDK 采集代码,并且已留出足够回传时间。
Advanced 授权被撤销,或只出现部分广告系列。
如果 Apple 访问已撤销,请从 RevenueCat 重新连接。使用 Limited Access 时,需要确保已分配 RevenueCat 所需的全部广告系列组;默认更推荐在目标范围内授予 Read Only。
先完成 SDK 归因配置,再判断广告收入。
当 RevenueCat Charts 中已经出现 Apple Search Ads 广告系列数据后,Lily 才能读取这些收入维度,并与 Apple Ads 花费进行比较。
RevenueCat 与 Apple 可能更新 SDK 或后台配置。当前方法名与兼容性请以链接中的 RevenueCat 官方文档为准。