一文帶你徹底了解APP PUSH推送機(jī)制
本文主要講解關(guān)于APP PUSH的流程、機(jī)制及相關(guān)經(jīng)驗(yàn),一是為了方便大家可以針對APP迅速制定PUSH消息推送方案,實(shí)現(xiàn)0到1的推送功能搭建;二是可以了解下PUSH流程,對各個環(huán)節(jié)針對性地提高觸達(dá)率。
一、APP PUSH定義與價值
APP PUSH的定義為在手機(jī)終端鎖屏狀態(tài)下通知欄展示或在操作前臺頂端彈出的消息通知,點(diǎn)擊后可喚起對應(yīng)的APP,并在APP內(nèi)跳轉(zhuǎn)到指定頁面。
push消息是通知用戶,引導(dǎo)用戶進(jìn)行參與活動、購買產(chǎn)品的重要手段,而且PUSH消息也可以引導(dǎo)用戶查看消息,喚起APP提高日活,是一塊重要的流量。
二、APP推送分類
從應(yīng)用的功能來劃分,主要分為三類應(yīng)用,第一類是IM類APP,如微信、QQ等;第二類是新聞資訊類,如華爾街見聞等;其余暫歸為為工具類,比如支付寶、美團(tuán)等。
每種類型APP對PUSH的需求也不同,IM類APP追求實(shí)時、穩(wěn)定的觸達(dá),此類APP一般通過自己的長連接進(jìn)行消息推送,保證用戶在收到消息的時候能夠?qū)崟r地接收消息消息。另外,一些安卓廠商也會給予頭部APP的進(jìn)程一定保護(hù),對相關(guān)的進(jìn)程納入白名單,在清理進(jìn)程的時候予以忽略。
新聞資訊類的APP與工具類APP的PUSH推送機(jī)制基本一致,僅在頻率控制上有差異,新聞資訊類由于新聞資訊較多,需要將突發(fā)新聞及時推送給用戶。
由于目前工具類的APP占大多數(shù),本文將主要講解工具類APP的常見推送機(jī)制。
三、PUSH流程
PUSH消息在消息系統(tǒng)創(chuàng)建好后進(jìn)入發(fā)送階段,服務(wù)端需要根據(jù)用戶終端信息進(jìn)行路由,如果是IOS系統(tǒng),那么會調(diào)用蘋果自身的推送通知服務(wù)(APNs),如果用戶的手機(jī)是安卓系統(tǒng),那么根據(jù)不同的廠商去調(diào)用不同的廠商SDK。
對于不同的系統(tǒng)版本,支持的消息展示形式也是不同,比如IOS10之后,當(dāng)APP在前臺時,是否通知欄展示;此樣式可以根據(jù)產(chǎn)品需求來選擇,有服務(wù)端傳輸相應(yīng)通知方式的值即可。如果用戶的手機(jī)非五大廠商內(nèi)的手機(jī),可以通過自己搭建的長連接或者使用第三方服務(wù)進(jìn)行推送。
如果不是自己直接對接廠商通道,那么內(nèi)部的服務(wù)端可能無需做過多較為復(fù)雜繁瑣的開發(fā)工作,通過接入第三方消息推送平臺來實(shí)現(xiàn)消息的推送,比如信鴿、個推等。多數(shù)的通道會將消息是否成功推送到客戶端SDK的回執(zhí)數(shù)據(jù)反饋給發(fā)送方,需要提供回調(diào)地址。
四、底層通道說明
4.1 推送通道
通道類型一般分為三類:廠商通道、第三方推送服務(wù)平臺、長連接。
廠商通道是手機(jī)終端廠商推出的推送服務(wù),通過接入廠商SDK,內(nèi)部服務(wù)端可以將消息推送到手機(jī)系統(tǒng)的服務(wù)端,再下發(fā)至客戶端內(nèi)部的廠商SDK,由操作系統(tǒng)進(jìn)行相應(yīng)展示,點(diǎn)擊后喚起相應(yīng)APP,這樣可以避免APP進(jìn)程被殺死后消息無法觸達(dá)用戶,因此觸達(dá)率較高。
第三方推送平臺是推送服務(wù)公司自己搭建相關(guān)的消息服務(wù)。并且各個APP使用了同一個平臺的推送服務(wù)時,客戶端都是集成同一個第三方推送平臺的SDK,因此形成了一個推送聯(lián)盟,當(dāng)聯(lián)盟中的其中一個APP的消息進(jìn)程沒有被殺死的時候,其他的APP也可以利用進(jìn)行通知用戶,形成了相互喚起,提高觸達(dá)率。
經(jīng)過一些場景的測試,相互喚起的成功率并不是很高,需謹(jǐn)慎結(jié)合自身場景評估。為了提高觸達(dá)率,第三方推送平臺也會集成各大廠商的SDK進(jìn)行推送。
長連接就是建立手機(jī)與服務(wù)端的一條鏈路進(jìn)行消息數(shù)據(jù)推送,通過長連接也可以進(jìn)行APP狀態(tài)監(jiān)控,但完全由長連接推送且保證觸達(dá)的穩(wěn)定,需要投入的研發(fā)資源較多,且需盡量避免自己的長連接進(jìn)程不要被操作系統(tǒng)殺死。
4.2 優(yōu)劣勢對比
APP push功能的搭建需要依據(jù)產(chǎn)品自身的情況和公司可投入的資源成本為主,在不同的階段應(yīng)該追逐不同的目標(biāo)。
五、下發(fā)推送
5.1 推送賬號
推送時客戶端的PUSH SDK均會根據(jù)用戶的設(shè)備號生成一個對應(yīng)關(guān)系的TOKEN。
在SDK內(nèi)部,如果使用的是第三方推送服務(wù),則去第三方的SDK注冊;如果是廠商,則去商城SDK注冊;如果使用自己長連接,則去自己的SDK進(jìn)行注冊,作為后續(xù)推送的標(biāo)識用戶的唯一ID。
5.2 消息路由
消息路主要見上述推送流程的講解,此處主要講解根據(jù)不同的業(yè)務(wù)場景,可能會定向推送給不同版本APP的用戶。因此服務(wù)端在通道能力路由的時候,不僅需要能夠區(qū)分通道,還要進(jìn)一步能夠針對用戶的手機(jī)終端進(jìn)行更加精細(xì)化的差異推送。
此外,消息通道并一定是100%穩(wěn)定,如果下游通道出現(xiàn)問題,服務(wù)端需能夠?qū)⒂捎谕ǖ绬栴}導(dǎo)致的消息路由到備用通道去發(fā)送,以保證業(yè)務(wù)穩(wěn)定觸達(dá)。
5.3 全量推送
一般來說,對于公司內(nèi)部運(yùn)營或公司的相關(guān)數(shù)據(jù)均是以產(chǎn)品的customer id為準(zhǔn),用戶數(shù)據(jù)系統(tǒng)對接消息系統(tǒng)時也多為customer id,因此需建立customer id與推送TOKEN的關(guān)系,便于運(yùn)營針對用戶進(jìn)行推送。但對于一些場景會需要針對未登錄的用戶也進(jìn)行推送,即全量推送;比如突發(fā)重大新聞資訊、大促等活動,所以運(yùn)營系統(tǒng)需要提供全量推送功能,針對所有TOKEN進(jìn)行推送。
六、數(shù)據(jù)上報
上報數(shù)據(jù)包括觸達(dá) 點(diǎn)擊 關(guān)閉 退出 注冊等數(shù)據(jù)。
對于所有方式的觸達(dá)消息,都離不開觸達(dá)與點(diǎn)擊,觸達(dá)的數(shù)據(jù)通過廠商的需要廠商回調(diào)上報,點(diǎn)擊數(shù)據(jù)可以由SDK上報服務(wù)端。
對于push的關(guān)閉,也是需要進(jìn)行考量的,來評估push是否過度發(fā)送,打擾到了用戶。關(guān)閉數(shù)據(jù)有兩部分,一部分為app內(nèi)部的關(guān)閉,sdk直接上報給服務(wù)端即可;另一部分為用戶在手機(jī)操作系統(tǒng)上關(guān)閉了對應(yīng)app的push,需要APP在前臺時,sdk調(diào)用手機(jī)終端相關(guān)方法獲取該用戶是否關(guān)閉了系統(tǒng)通知,然后上報至服務(wù)端。
注冊數(shù)據(jù)即用戶首次啟動APP時,去相關(guān)sdk注冊token。
用戶退出賬號時,sdk需要上報服務(wù)端,解除token與customer id的綁定關(guān)系。
七、PUSH特點(diǎn)
7.1 強(qiáng)提醒 不留痕
push由于是app自己的通知渠道,是運(yùn)營的一個重要工具。
如果用戶未關(guān)閉PUSH通知的話,push可以從通知欄彈出進(jìn)行消息顯示,具有一定的強(qiáng)提醒性,但PUSH點(diǎn)擊跳轉(zhuǎn)后便消失,沒有痕跡,因此針對于重點(diǎn)的通知消息,需要在APP內(nèi)設(shè)置消息中心,在PUSH的同時留下通知記錄。
7.2 消息樣式
對于各家PUSH來說,一些營銷消息會加入EMOJI表情來吸引用戶點(diǎn)擊,這也是一個吸引用戶點(diǎn)擊的一個小方法,只要服務(wù)支持傳輸約定好的EMOJI碼就可以了。
目前安卓系統(tǒng)也支持富媒體推送,推送包含圖片、語音等形式,對于資訊類的APP可以增加縮略圖,吸引用戶點(diǎn)擊。目前來看,語音場景還有點(diǎn)挖掘。
7.3 IOS和安卓
由于APP是基于手機(jī)操作系統(tǒng),因此對于IOS和安卓的推送的流程及功能基本相同,只不過細(xì)節(jié)和方法上略有不同,且國內(nèi)安卓產(chǎn)商都在安卓系統(tǒng)上進(jìn)行了一定改造,導(dǎo)致國內(nèi)安卓廠商標(biāo)準(zhǔn)各不相同,需要開發(fā)同學(xué)仔細(xì)對接各個廠商。
八、觸達(dá)率的提升
觸達(dá)率的提升需要從消息創(chuàng)建到實(shí)際通知到用戶的建立完整流程,細(xì)化每一個交互環(huán)節(jié),發(fā)現(xiàn)影響觸達(dá)率的主要瓶頸,并針對性地進(jìn)行解決或優(yōu)化方案。
除此之外,未采用廠商通道的消息也可以采用自己的長連接和其他推送平臺服務(wù)同時多條推送,在客戶端的SDK內(nèi)增加針對同一罅隙流水號的去重,這樣可以也可以提高一部分消息的觸達(dá)率。
以上內(nèi)容為個人經(jīng)驗(yàn)總結(jié),歡迎討論指正。
相關(guān)閱讀
本文由 @卓別木 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
挺好的
深入淺出
河犸車商寶
應(yīng)用推送的消息需要與賬號關(guān)聯(lián),如果該用戶在登錄狀態(tài)下,卸載了應(yīng)用,又重新安裝了應(yīng)用,但沒有登錄應(yīng)用,那么此時該用戶能否收到與之關(guān)聯(lián)的推送消息?
請問,token是什么意思呢
終端的令牌