大家好,一節(jié)課我們大概講了ASA歸因的整體流程,接下來我們會(huì)按照步驟講解具體的流程。
AdServices framework是Apple專門為ASA提供的歸因框架。尤其在ATT政策推出以后,app獲取用戶IDFA的比例大幅降低,傳統(tǒng)的依靠IDFA的方法也無法準(zhǔn)確歸因。
但是Apple為ASA開了一個(gè)后門,其他廣告渠道無法獲取用戶的IDFA作為身份標(biāo)識(shí)符進(jìn)行歸因,而ASA可以獲取一個(gè)甚至比IDFA更好的用戶token進(jìn)行歸因——因?yàn)榧幢鉇TT之前,用戶在iPhone的設(shè)置也會(huì)導(dǎo)致無法完全獲取IDFA,但是ASA的用戶token,只要接入AdServices framework,就可以獲取到。
另外要注意的是,除了AdServices framework,ASA還有一個(gè)iAd framework。但是后者僅適用于iOS 14.3之前版本,且此框架已經(jīng)停用,iOS 14.3之前的用戶占比也很小,所以不接入對歸因也沒有太大影響,所以這節(jié)課不會(huì)涉及iAd framework。
官方文檔
https://ads.apple.com/cn/help/reporting/0028-apple-ads-attribution-api
AdServices接入目的
通過AdServices framework,可以讓我們對每一個(gè)激活用戶獲取一個(gè)Token標(biāo)識(shí)符,用此Token可以得知該用戶是否點(diǎn)擊過ASA廣告、點(diǎn)擊過那個(gè)廣告系列/廣告組/關(guān)鍵詞/素材等廣告信息。
AdServices接入步驟
1.選擇項(xiàng)目主文件-TARGETS-General
2.引入AdServices framework
3.進(jìn)入link binary with Libraries將AdServices改為optional
4.導(dǎo)入AdServices framework
5.添加獲取用戶Token的代碼
6.更新App并發(fā)布至App Store
AdServices接入流程
AdServices調(diào)用步驟
1.判斷設(shè)備信息
用戶是否首次激活
網(wǎng)絡(luò)請求成功
系統(tǒng)版本≥14.3
2.獲取用戶的Token
獲得Token成功
注意:Token的有效期為24小時(shí),請?jiān)谟行趦?nèi)完成后續(xù)操作。
獲得Token不成功
錯(cuò)誤代碼與原因(詳見下表)
重試:建議重試時(shí)間間隔≥5秒,初步設(shè)定的重試上限為3次,實(shí)際在時(shí)效性內(nèi)重試次數(shù)無上限。
3.以此Token請求Apple的歸因數(shù)據(jù)
策略:此請求過程既可以在App客戶端完成,也可以先將Token發(fā)送至服務(wù)端,然后在服務(wù)端進(jìn)行請求,Apple更推薦后一種策略。
注意:Token的有效期為24小時(shí),請?jiān)讷@取Token的24小時(shí)內(nèi)完成請求。
4.接收Apple返回的歸因數(shù)據(jù)
響應(yīng)代碼(詳見下表)
接收到的歸因數(shù)據(jù)與釋義(詳見下表)
ATT政策對獲取歸因數(shù)據(jù)的影響
1.受到ATT政策以及用戶對追蹤的設(shè)置,從Apple接收到的數(shù)據(jù)會(huì)分成兩類
Detailed payload,即詳細(xì)數(shù)據(jù),包含上表「接受到的歸因數(shù)據(jù)與釋義」中的所有數(shù)據(jù)
Standard payload,即標(biāo)準(zhǔn)數(shù)據(jù),與詳細(xì)數(shù)據(jù)相比,只缺少clickDate這一數(shù)據(jù),其他數(shù)據(jù)都可以正常收到
影響:可以認(rèn)為即便受ATT影響,收到了Standar payload,ASA的歸因也基本不受影響,如果缺失了clickDate,大部分產(chǎn)品可以直接以用戶的激活日期進(jìn)行替代(預(yù)約期除外)
2.用戶對追蹤的設(shè)置包含2部分:iOS系統(tǒng)級(jí)的追蹤限制、每個(gè)App的追蹤限制
只要用戶對App的追蹤狀態(tài)為未知(not determined)、被拒絕(denied)或者限制(restriced),無論iOS系統(tǒng)級(jí)的追蹤設(shè)置有無打開,都會(huì)拿到Standard payload
只要用戶對App的追蹤狀態(tài)為授權(quán)(authorized),無論iOS系統(tǒng)級(jí)的追蹤設(shè)置有無打開,都會(huì)拿到Detailed payload
3.ATT框架與彈窗對獲取歸因數(shù)據(jù)的影響
以下情況都會(huì)獲得Standard Payload
App不接ATT框架(但是會(huì)導(dǎo)致其他廣告無法歸因或者無法過審)
App不進(jìn)行ATT彈窗
App先以Token請求歸因數(shù)據(jù),再進(jìn)行ATT彈窗
App先進(jìn)行ATT彈窗,但是彈窗被用戶拒絕或者限制
以下情況會(huì)獲得Detailed Payload
App先進(jìn)行ATT彈窗,被授權(quán)追蹤,然后再以Token請求歸因數(shù)據(jù)
Apple Ads團(tuán)隊(duì)對AdServices的推薦配置
1.應(yīng)在App首次激活時(shí)獲取Token
2.建議獲取網(wǎng)絡(luò)權(quán)限后,等待500ms-1000ms再做Token請求
當(dāng)獲取Token發(fā)生network error時(shí),也可以等待500ms-1000ms再做Token請求
3.如Token請求不成功,且App依然處于前臺(tái)狀態(tài),進(jìn)行retry,在時(shí)效性允許的前提下重試次數(shù)無上限,重試時(shí)間間隔>=5秒,初步設(shè)定可以重試上限3次(24小時(shí)內(nèi)retry多次獲取的Token都是同一個(gè),不會(huì)發(fā)生變化)
4.獲取到Token,和請求Attribution Response中間設(shè)置500-1000ms等待時(shí)長
5.請求歸因api到獲取結(jié)果之間建議等待時(shí)長設(shè)置為>=2000ms
AdServices調(diào)用流程圖
代碼示例
1/調(diào)用AdServices獲取用戶Token
2/使用Token請求歸因數(shù)據(jù)-在App請求
3/使用Token請求歸因數(shù)據(jù)-在服務(wù)器請求(推薦)