相比海外Google Play的一統(tǒng)天下,國(guó)內(nèi)的安卓市場(chǎng)顯得非常碎片化。不同的應(yīng)用商店各霸一方,都希望能夠提高自己的下載量,導(dǎo)致“劫持”的情況非常流行。那么,應(yīng)用商店“劫持”會(huì)對(duì)廣告投放與歸因造成什么影響呢?要回答這個(gè)問(wèn)題,我們需要一些背景知識(shí)鋪墊。
首先,我們需要理解廣告主會(huì)進(jìn)行“分包”。通常來(lái)講,廣告主如果在應(yīng)用市場(chǎng)A,應(yīng)用市場(chǎng)B同時(shí)上架自己的App,就會(huì)打成兩個(gè)渠道(應(yīng)用商店)包:APK-A與APK-B,這樣可以追蹤不同渠道的下載量。另外可能的原因則是應(yīng)用市場(chǎng)A與B都擁有自己的效果類廣告平臺(tái),在這些廣告平臺(tái)進(jìn)行投放時(shí),下載必須指向?qū)?yīng)的自有商店。
其次,我們來(lái)簡(jiǎn)要地回顧一下歸因邏輯。以AppsFlyer為例,歸因的起點(diǎn)是用戶激活了嵌有AppsFlyer SDK的App。此時(shí)SDK將向服務(wù)器發(fā)送一條請(qǐng)求,詢問(wèn)有沒(méi)有見(jiàn)過(guò)對(duì)應(yīng)App,對(duì)應(yīng)設(shè)備的廣告點(diǎn)擊數(shù)據(jù)。另外一方面,AppsFlyer之前已經(jīng)接收到廣告渠道回傳的點(diǎn)擊數(shù)據(jù),從而可以完成歸因動(dòng)作(將激活歸因給某個(gè)點(diǎn)擊)。
現(xiàn)在回到文章開(kāi)始的問(wèn)題,應(yīng)用商店劫持是如何影響歸因的呢?有了對(duì)“分包”和歸因邏輯的理解,我們就可以從整個(gè)流程中發(fā)現(xiàn)問(wèn)題了:
用戶點(diǎn)擊廣告,目標(biāo)效果是下載APK-A(點(diǎn)擊鏈接中包含APK-A的包名信息)。
用戶準(zhǔn)備下載時(shí),本地應(yīng)用商店發(fā)生“劫持”,用戶其實(shí)下載了APK-B。
用戶激活A(yù)pp,AppsFlyer SDK詢問(wèn)服務(wù)器:有見(jiàn)過(guò)包名是APK-B的,在這個(gè)用戶設(shè)備上發(fā)生的點(diǎn)擊嗎?
服務(wù)器回答沒(méi)有(因?yàn)辄c(diǎn)擊信息是指向包名APK-A的)。
這個(gè)下載激活被歸因成自然量(沒(méi)有廣告互動(dòng)),廣告平臺(tái)錯(cuò)誤地被認(rèn)為沒(méi)有任何貢獻(xiàn)。
細(xì)心的讀者可能已經(jīng)發(fā)現(xiàn)問(wèn)題的關(guān)鍵了:有沒(méi)有辦法使APK-A和APK-B的包名一致?這樣App激活和點(diǎn)擊就可以打通了。但是,APK-A和APK-B的下載量還能同時(shí)區(qū)分出來(lái)嗎?
AppsFlyer給出的答案是有辦法,能區(qū)分!我們提供獨(dú)特的字段“AF_STORE”可以保證不同渠道包APK-A與APK-B的包名一致,但是同時(shí)可以區(qū)分他們的下載。
具體的實(shí)現(xiàn)方法可以分為兩種,選擇一種操作即可:
技術(shù)人員在Manifest里面寫入不同的“AF_STORE”值:
APK-A:<meta-data android:name=”AF_STORE” android:value=”A” />;
APK-B:<meta-data android:name=”AF_STORE” android:value=”B” />;
技術(shù)人員在代碼層級(jí)利用API寫入“AF_STORE”值:
APK-A:AppsFlyerLib.getInstance().setOutOfStore(“A”);
APK-B:AppsFlyerLib.getInstance().setOutOfStore(“B”);
現(xiàn)在我們帶著解決方案再回顧一下整個(gè)流程:
首先,APK-A與B包名一致,但是AF_STORE的值分別是A和B。
用戶點(diǎn)擊廣告,目標(biāo)是下載APK-A(點(diǎn)擊鏈接中包含APK-A的包名信息)。
用戶準(zhǔn)備下載時(shí),本地應(yīng)用商店發(fā)生劫持,用戶其實(shí)下載了APK-B。
用戶激活A(yù)pp,AppsFlyer SDK詢問(wèn)服務(wù)器:有見(jiàn)過(guò)包名是APK-B的,在這個(gè)用戶設(shè)備上發(fā)生的點(diǎn)擊嗎?
服務(wù)器回答有(點(diǎn)擊信息是指向包名APK-A的,但此時(shí)APK-A=APK-B)。
這個(gè)下載激活被歸因成非自然量,廣告平臺(tái)被正確歸因。同時(shí),AF_STORE=B。目前,這個(gè)字段會(huì)展示在原始數(shù)據(jù)報(bào)告里。
流程中“劫持”的展現(xiàn)(用戶本來(lái)是要在應(yīng)用商店A下載,卻被劫持到B)可以參考點(diǎn)擊鏈接信息與廣告平臺(tái)的設(shè)置:用戶下載的應(yīng)用商店是B,但是在廣告平臺(tái)上廣告主設(shè)置的卻是A。
通過(guò)AppsFlyer提供的“防劫持”方案,廣告主可以準(zhǔn)確地了解用戶獲取的真實(shí)渠道,同時(shí)廣告平臺(tái)的價(jià)值也能被正確地體現(xiàn)。