什么是deeplink
deeplink又名移動(dòng)端深度鏈接,是基于link協(xié)議將用戶從網(wǎng)頁(分享頁)指向到應(yīng)用內(nèi)指定頁面的方式,并且會(huì)添加是否安裝驗(yàn)證,如未安裝則引導(dǎo)到下載頁,是比較好的引導(dǎo)用戶自增方式。一般國內(nèi)較完善的應(yīng)用均會(huì)添加,且大多是自己搭建,且與小程序做聯(lián)動(dòng)。
什么是appsflyer
appsflyer是一家源于以色列,提供數(shù)據(jù)歸因統(tǒng)計(jì)的服務(wù)商,因?yàn)榕c多家平臺(tái)(包括facebook)有合作關(guān)系,所以做境外投放尤其是facebook投放時(shí)需要監(jiān)控下載活躍時(shí)會(huì)用到他家的服務(wù)。這里說的deeplink就是他們加封裝后的onelink。
接入原因
其實(shí)一開始接入deeplink我的計(jì)劃是自家搭建一套,但是運(yùn)營表示他們計(jì)劃使用appsflyer進(jìn)行數(shù)據(jù)監(jiān)控,而且appsfler提供比較完善的解決方案,接入成本較低故決定使用
接入準(zhǔn)備
1、注冊(cè)賬號(hào),創(chuàng)建應(yīng)用,這時(shí)ios需要用到P12證書
2、埋入appsflyer的sdk,他們有提供測(cè)試方法驗(yàn)證是否埋入成功
3、創(chuàng)建onelink,appsflyer的deeplink服務(wù)是基于在他們后臺(tái)配置的onelink進(jìn)行統(tǒng)計(jì)的,這時(shí)ios需要App ID前綴
4、安卓及ios按照說明文檔添加過濾代碼(特別注意ios需要在Xcode添規(guī)定的協(xié)議)
5、根據(jù)appsflyer的參數(shù)規(guī)定在【自定義鏈接】中配置鏈接,并按照鏈接格式給你的分享頁添加該鏈接
注意事情
1、最后形成的鏈接都要經(jīng)過url encode處理
2、把你想到具體定位到的頁面參數(shù)放到【af_dp】這個(gè)參數(shù)里即可,通過appsflyer的sdk,會(huì)自動(dòng)解碼,客戶端就可以使用解碼后的鏈接定位到具體頁面了
3、af_dp這個(gè)參數(shù)里的鏈接是要帶有協(xié)議的如:【你的協(xié)議開頭(例如域名)://article?url=/CNT/15664895/news939964.html&newstype=1】
4、記得添加統(tǒng)計(jì)參數(shù)如【pid】和【c】,方便統(tǒng)計(jì)通過該deeplink點(diǎn)擊及安裝用戶數(shù)
5、如果你計(jì)劃直接將deeplink鏈接分享到facebook或ins內(nèi)記得添加【af_web_dp】,此參數(shù)是給平臺(tái)方調(diào)起頁面預(yù)覽使用的
6、特別說明,appsflyer提供的URI Scheme方法、Universal Links方法、App Links方法最后體現(xiàn)在連接上是一種link的url,只是通過鏈接調(diào)起后應(yīng)用的處理方法不一致,是可以兼容的,千萬不要當(dāng)成不同的鏈接
不足之處
1、ios系統(tǒng)-facebook-未安裝應(yīng)用情況下,用戶點(diǎn)擊或通過window.location.hre自動(dòng)調(diào)起deeplink鏈接會(huì)出現(xiàn)兩次【此頁面試圖打開facebook以外的應(yīng)用,是否打開?】彈窗
關(guān)于這個(gè)問題郵件appsflyer官方,得到的回復(fù)是
因?yàn)镕acebook檢測(cè)到此鏈接為Universal Link并試圖使系統(tǒng)打開對(duì)映的app,但因?yàn)橛脩羯形窗惭bapp導(dǎo)致deeplink失敗,AppsFlyer服務(wù)器發(fā)出二次請(qǐng)求打開App Store商店。這個(gè)問題也是因?yàn)樵赨niversal Link調(diào)起app前必須先經(jīng)過Facebook的in-app瀏覽器的篩檢所導(dǎo)致。Facebook及相似的渠道Instagram或Snapchat等,對(duì)于用戶自行發(fā)布的deeplink其限制及審核較為嚴(yán)格,若希望有更好的用戶體驗(yàn)?zāi)梢钥紤]直接投放Facebook AD campaign。
2、appsflyer提供特定頁面配置后生成deeplink的短鏈接服務(wù),但是將短鏈接分享到whatsapp內(nèi)后會(huì)存在問題
安卓系統(tǒng)-已安裝應(yīng)用,在whatsapp內(nèi)打開短鏈接,如果選擇應(yīng)用打開會(huì)無法調(diào)起到應(yīng)用打開,且應(yīng)用會(huì)卡死
ios系統(tǒng)-已安裝應(yīng)用,在whatsapp內(nèi)打開短鏈接,無法調(diào)起鏈接內(nèi)包含的指定頁面
通過其他如line、facebook中打開短鏈接均無該問題,推測(cè)是whatsapp處理deeplink的短鏈接時(shí),直接根據(jù)鏈接域名喚起app,而不是通過短鏈接調(diào)起長連接后再調(diào)起應(yīng)用
因?yàn)楹罄m(xù)決定不使用短鏈接服務(wù),沒有深究
3、ios系統(tǒng)-未安裝應(yīng)用-faceook內(nèi)調(diào)起deeplink鏈接,會(huì)出現(xiàn)默認(rèn)的引導(dǎo)下載頁,但是該頁面的樣式無法定制
4、如果給分享頁添加通過window.location.hre自動(dòng)調(diào)起的appsflyer的deeplink,如用戶未安裝應(yīng)用則直接到下載頁。無法做到用戶訪問頁面后已安裝應(yīng)用默認(rèn)調(diào)起應(yīng)用,如果未安裝應(yīng)用給到點(diǎn)擊去下載應(yīng)用的流程
5、appsflyer的官方說明文檔可讀性非常差,而且沒有示例的demo,只能通過文檔不斷閱讀并推測(cè)正確使用方法,溝通方式也只能通過右下角的對(duì)話框或者郵件溝通,且回復(fù)較慢
總結(jié)
如果不是為了統(tǒng)計(jì)其實(shí)個(gè)人覺得還是使用自己構(gòu)建的deeplink比較合適,另外建議將appsflyer的deeplink和自己構(gòu)建的link一起使用比較合適。
用戶訪問分享頁的html時(shí)默認(rèn)通過window.location.hre自動(dòng)調(diào)起一次自己定義的協(xié)議,然后給到【點(diǎn)擊下載應(yīng)用】的提示。
在facebook中通過自定義的協(xié)議調(diào)起應(yīng)用,如果調(diào)起不到會(huì)給到【無法調(diào)起專頁】提示,不會(huì)給用戶過多打擾。