在這個(gè)流量為王的互聯(lián)網(wǎng)背景下,移動(dòng)端的H5頁(yè)面顯然在導(dǎo)流上承擔(dān)著重要作用,在H5頁(yè)面上,我們對(duì)引流的需求有兩種:
一是引導(dǎo)已下載用戶從H5頁(yè)面喚醒App并直達(dá)指定場(chǎng)景
二是引導(dǎo)未下載用戶從H5頁(yè)面下載App,首次打開(kāi)App時(shí)直達(dá)指定場(chǎng)景
從運(yùn)營(yíng)角度來(lái)看,引導(dǎo)已下載用戶打開(kāi)App,能提高用戶粘性和活躍度,而用戶在App內(nèi)的產(chǎn)品體驗(yàn)自然也比H5頁(yè)面要好;引導(dǎo)未下載用戶下載App并進(jìn)入指定頁(yè)面,顯然能給用戶更好的產(chǎn)品初體驗(yàn)。
這里其實(shí)就解釋了我們做H5喚醒App并直達(dá)指定頁(yè)面的必要性。
涉及哪些要素?
喚醒App這件事,在不同平臺(tái)要采用不同的方法,主要是這三個(gè):
URL Scheme
Universal Link
Android App Links
1、URL Scheme
URL Scheme是iOS、Android都兼容的機(jī)制,只需要原生App開(kāi)發(fā)時(shí)注冊(cè)Scheme即可,用戶點(diǎn)擊此類(lèi)鏈接時(shí),會(huì)自動(dòng)喚醒App,并借助URL Router機(jī)制跳轉(zhuǎn)到指定頁(yè)面。
盡管URL Scheme兼容性高,但卻存在許多限制,比如:
國(guó)內(nèi)各個(gè)廠商瀏覽器差異很大,當(dāng)要被喚醒的目標(biāo)App未安裝時(shí),這個(gè)鏈接很容易出錯(cuò)。
當(dāng)注冊(cè)有多個(gè)Scheme相同的時(shí)候,目前是沒(méi)有辦法區(qū)分的。
不支持從其他App中的UIWebView中跳轉(zhuǎn)到目標(biāo)App。
被部分主流平臺(tái)禁止,微信、微博、QQ瀏覽器、手機(jī)百度中都已經(jīng)被禁止使用。
正是由于這些限制的存在,蘋(píng)果和安卓都不約而同發(fā)布了自己的第二套方案:iOS的Universal Link、Android的App Links。
2、Universal Link
Universal Link是iOS9后蘋(píng)果推出的通用鏈接技術(shù),能夠方便的通過(guò)一個(gè)https鏈接來(lái)打開(kāi)App指定頁(yè)面,不需要額外的判斷,如果沒(méi)有安裝App,可以跳轉(zhuǎn)到自定義地址。
相對(duì)Scheme的優(yōu)勢(shì)在于,Universal Link是一個(gè)Web Link,因此少了很多麻煩:
當(dāng)用戶已安裝該App時(shí),不需要加載任何頁(yè)面,能夠立即喚醒App,用戶未安裝App,則跳去對(duì)應(yīng)的web link(自定義頁(yè)面)。
Universal Links支持從其他App中的UIWebView中跳轉(zhuǎn)到目標(biāo)app。
提供Universal Link給別的App進(jìn)行App間的交流,然而對(duì)方并不能夠用這個(gè)方法去檢測(cè)你的App是否被安裝,具有比較好的隱私性。
絕大多數(shù)平臺(tái)都支持Universal Link,微信7.0.5版本也解除了對(duì)Universal Link的限制,同時(shí)也能被搜索引擎索引。
3、App Links
Android M以上版本可以通過(guò)App Links,讓用戶在點(diǎn)擊一個(gè)鏈接時(shí)跳轉(zhuǎn)到App的指定頁(yè)面,前提是這個(gè)App已經(jīng)安裝并經(jīng)過(guò)驗(yàn)證。App Links的最大的作用,就是可以避免從頁(yè)面喚醒App時(shí)出現(xiàn)的選擇瀏覽器選項(xiàng)框,前提是必須注冊(cè)相應(yīng)的Scheme,就可以實(shí)現(xiàn)直接打開(kāi)關(guān)聯(lián)的App。
實(shí)際上App Links和Universal Links差異不大,但相對(duì)來(lái)說(shuō)有不同的限制:
App links在國(guó)內(nèi)的支持還不夠,部分安卓瀏覽器并不支持跳轉(zhuǎn)至App,而是直接在瀏覽器上打開(kāi)對(duì)應(yīng)頁(yè)面。
系統(tǒng)詢問(wèn)是否打開(kāi)對(duì)應(yīng)App時(shí),假如用戶選擇“取消”并且選中了“記住此操作”,那么用戶以后就無(wú)法再跳轉(zhuǎn)App。
幾個(gè)方案的缺陷
這幾種方式無(wú)論哪種都無(wú)法解決這幾個(gè)問(wèn)題:
當(dāng)用戶未安裝目標(biāo)App時(shí),無(wú)法保留用戶停留的上下文,也就是說(shuō),用戶下載完App后,無(wú)法在首次打開(kāi)App時(shí)還原指定頁(yè)面。
Web目前無(wú)法監(jiān)聽(tīng)App是否已安裝,因此這幾個(gè)方案都需要一些其他方法兼容喚醒App,或者跳轉(zhuǎn)下載頁(yè)面。
那么怎樣實(shí)現(xiàn)用戶安裝App后進(jìn)入指定頁(yè)面呢?
眾所周知,蘋(píng)果出于用戶隱私的保護(hù),設(shè)置了名為沙盒的機(jī)制:應(yīng)用只能訪問(wèn)它聲明可以訪問(wèn)的資源,但沙盒也阻礙了應(yīng)用間合理的信息共享。【
H5開(kāi)發(fā)】
但也不是完全沒(méi)辦法,比如使用模糊匹配,盡可能收集設(shè)備的特征,將Web和App上的信息點(diǎn)配合算法做一個(gè)匹配是可以做到的,但準(zhǔn)確率和成功率就取決于算法本身。如果App本身業(yè)務(wù)需求不高,那么低精度的方案也可以滿足,但如果業(yè)務(wù)上需要一個(gè)能做到一對(duì)一精準(zhǔn)匹配的方案,那么精準(zhǔn)度不夠高顯然會(huì)影響業(yè)務(wù)的開(kāi)展。
第三方服務(wù)
如果嫌精準(zhǔn)度不夠高或者實(shí)現(xiàn)難度太大的話,可以交給專(zhuān)業(yè)的第三方去做,畢竟這幾項(xiàng)技術(shù)是基于系統(tǒng)平臺(tái)的,Android 及 iOS 每個(gè)系統(tǒng)版本的迭代后,配置方式都會(huì)有新的變化,且安卓機(jī)型眾多,瀏覽器眾多等也會(huì)導(dǎo)致出現(xiàn)兼容問(wèn)題,開(kāi)發(fā)者自行研發(fā)的話,資源配置以及系統(tǒng)更新后的維護(hù)成本是比較高的,還要考慮各種各樣的跳轉(zhuǎn)場(chǎng)景問(wèn)題。
直接采用第三方SDK的好處就是,資源配置、兼容方面的適配這些事情都可以交給它們?nèi)プ觯吘惯@些供應(yīng)商本身就是專(zhuān)業(yè)做這項(xiàng)服務(wù)的,它們提供的服務(wù)在穩(wěn)定性和精準(zhǔn)度方面也是經(jīng)受過(guò)市場(chǎng)檢驗(yàn)的,至少在精準(zhǔn)匹配方面,有些已經(jīng)能在邀請(qǐng)分享方面做到一對(duì)一匹配,集成SDK也花不了多少時(shí)間,十幾分鐘就可以搞定。
國(guó)內(nèi)外提供這項(xiàng)技術(shù)的第三方服務(wù)商:
國(guó)內(nèi)有:openinstall
國(guó)外有:Branch