大家好,一节课我们大概讲了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接入步骤
1.选择项目主文件-TARGETS-General
2.引入AdServices framework
3.进入link binary with Libraries将AdServices改为optional
4.导入AdServices framework
5.添加获取用户Token的代码
6.更新App并发布至App Store
AdServices接入流程
AdServices调用步骤
1.判断设备信息
用户是否首次激活
网络请求成功
系统版本≥14.3
2.获取用户的Token
获得Token成功
注意:Token的有效期为24小时,请在有效期内完成后续操作。
获得Token不成功
错误代码与原因(详见下表)
重试:建议重试时间间隔≥5秒,初步设定的重试上限为3次,实际在时效性内重试次数无上限。
3.以此Token请求Apple的归因数据
策略:此请求过程既可以在App客户端完成,也可以先将Token发送至服务端,然后在服务端进行请求,Apple更推荐后一种策略。
注意:Token的有效期为24小时,请在获取Token的24小时内完成请求。
4.接收Apple返回的归因数据
响应代码(详见下表)
接收到的归因数据与释义(详见下表)
ATT政策对获取归因数据的影响
1.受到ATT政策以及用户对追踪的设置,从Apple接收到的数据会分成两类
Detailed payload,即详细数据,包含上表「接受到的归因数据与释义」中的所有数据
Standard payload,即标准数据,与详细数据相比,只缺少clickDate这一数据,其他数据都可以正常收到
影响:可以认为即便受ATT影响,收到了Standar payload,ASA的归因也基本不受影响,如果缺失了clickDate,大部分产品可以直接以用户的激活日期进行替代(预约期除外)
2.用户对追踪的设置包含2部分:iOS系统级的追踪限制、每个App的追踪限制
只要用户对App的追踪状态为未知(not determined)、被拒绝(denied)或者限制(restriced),无论iOS系统级的追踪设置有无打开,都会拿到Standard payload
只要用户对App的追踪状态为授权(authorized),无论iOS系统级的追踪设置有无打开,都会拿到Detailed payload
3.ATT框架与弹窗对获取归因数据的影响
以下情况都会获得Standard Payload
App不接ATT框架(但是会导致其他广告无法归因或者无法过审)
App不进行ATT弹窗
App先以Token请求归因数据,再进行ATT弹窗
App先进行ATT弹窗,但是弹窗被用户拒绝或者限制
以下情况会获得Detailed Payload
App先进行ATT弹窗,被授权追踪,然后再以Token请求归因数据
Apple Ads团队对AdServices的推荐配置
1.应在App首次激活时获取Token
2.建议获取网络权限后,等待500ms-1000ms再做Token请求
当获取Token发生network error时,也可以等待500ms-1000ms再做Token请求
3.如Token请求不成功,且App依然处于前台状态,进行retry,在时效性允许的前提下重试次数无上限,重试时间间隔>=5秒,初步设定可以重试上限3次(24小时内retry多次获取的Token都是同一个,不会发生变化)
4.获取到Token,和请求Attribution Response中间设置500-1000ms等待时长
5.请求归因api到获取结果之间建议等待时长设置为>=2000ms
AdServices调用流程图
代码示例
1/调用AdServices获取用户Token
2/使用Token请求归因数据-在App请求
3/使用Token请求归因数据-在服务器请求(推荐)