大家好,一节课我们大概讲了 ASA 归因的整体流程,接下来我们会按照步骤讲解具体的流程。
AdServices framework 是 Apple 专门为 ASA 提供的归因框架 。尤其在 ATT 政策推出以后,app 获取用户 IDFA 的比例大幅降低,传统的依靠 IDFA 的方法也无法准确归因。
但是 Apple 为 ASA 开了一个后门,其他广告渠道无法获取用户的 IDFA 作为身份标识符进行归因,而 ASA 可以获取一个甚至比 IDFA 更好的用户 token 进行归因——因为即便 ATT 之前,用户在 iPhone 的设置也会导致无法完全获取 IDFA,但是 ASA 的用户 token,只要接入 AdServices framework,就可以获取到。
另外要注意的是,除了 AdServices framework,ASA 还有一个 iAd framework。但是后者仅适用于 iOS 14.3 之前版本,且此框架已经停用,iOS 14.3 之前的用户占比也很小,所以不接入对归因也没有太大影响,所以这节课不会涉及 iAd framework。
官方文档
https://ads.apple.com/cn/help/reporting/0028-apple-ads-attribution-api
AdServices 接入目的
通过 AdServices framework,可以让我们对每一个激活用户获取一个 Token 标识符,用此 Token 可以得知该用户是否点击过 ASA 广告、点击过那个广告系列/广告组/关键词/素材等广告信息。
AdServices 接入步骤
选择项目主文件-TARGETS-General
引入 AdServices framework
进入 link binary with Libraries 将 AdServices 改为 optional
导入 AdServices framework
添加获取用户 Token 的代码
更新 App 并发布至 App Store
AdServices 接入流程
AdServices 调用步骤
判断设备信息
用户是否首次激活
网络请求成功
系统版本 ≥ 14.3
获取用户的 Token
获得 Token 成功
注意:Token 的有效期为 24 小时,请在有效期内完成后续操作。
获得 Token 不成功
错误代码与原因(详见下表)
重试:建议重试时间间隔 ≥ 5 秒,初步设定的重试上限为 3 次,实际在时效性内重试次数无上限。
以此 Token 请求 Apple 的归因数据
策略:此请求过程既可以在 App 客户端完成,也可以先将 Token 发送至服务端,然后在服务端进行请求,Apple 更推荐后一种策略。
注意:Token 的有效期为 24 小时,请在获取 Token 的 24 小时内完成请求。
接收 Apple 返回的归因数据
响应代码 ( 详见下表 )
接收到的归因数据与释义(详见下表)
ATT 政策对获取归因数据的影响
受到 ATT 政策以及用户对追踪的设置,从 Apple 接收到的数据会分成两类
Detailed payload,即详细数据,包含上表「接受到的归因数据与释义」中的所有数据
Standard payload,即标准数据,与详细数据相比,只缺少 clickDate 这一数据,其他数据都可以正常收到
影响:可以认为即便受 ATT 影响,收到了 Standar payload,ASA 的归因也基本不受影响,如果缺失了 clickDate,大部分产品可以直接以用户的激活日期进行替代(预约期除外)
用户对追踪的设置包含 2 部分:iOS 系统级的追踪限制、每个 App 的追踪限制
只要用户对 App 的追踪状态为未知(not determined)、被拒绝(denied)或者限制(restriced),无论 iOS 系统级的追踪设置有无打开,都会拿到 Standard payload
只要用户对 App 的追踪状态为授权(authorized),无论 iOS 系统级的追踪设置有无打开,都会拿到 Detailed payload
ATT 框架与弹窗对获取归因数据的影响
以下情况都会获得 Standard Payload
App 不接 ATT 框架(但是会导致其他广告无法归因或者无法过审)
App 不进行 ATT 弹窗
App 先以 Token 请求归因数据,再进行 ATT 弹窗
App 先进行 ATT 弹窗,但是弹窗被用户拒绝或者限制
以下情况会获得 Detailed Payload
App 先进行 ATT 弹窗,被授权追踪,然后再以 Token 请求归因数据
Apple Ads 团队对 AdServices 的推荐配置
应在 App 首次激活时获取 Token
建议获取网络权限后,等待500ms - 1000ms 再做 Token请求
当获取 Token 发生 network error 时,也可以等待500ms - 1000ms 再做 Token请求
如 Token请求不成功,且 App 依然处于前台状态,进行 retry,在时效性允许的前提下重试次数无上限,重试时间间隔>=5秒,初步设定可以重试上限3次(24小时内 retry 多次获取的 Token 都是同一个,不会发生变化)
获取到 Token, 和请求 Attribution Response 中间设置 500 - 1000ms 等待时长
请求归因 api 到获取结果之间建议等待时长设置为>=2000ms
AdServices 调用流程图
代码示例
1/调用 AdServices 获取用户 Token
2/使用 Token 请求归因数据 - 在 App 请求
3/使用 Token 请求归因数据 - 在服务器请求(推荐)
以上就是《ASA 必修课》第 2 章/第 6 课「ASA 自归因:接入/调用 AdServices 以获取归因数据」的所有内容了,如果大家有任何问题,可以随时与我沟通。
感谢大家的关注与阅读!