編輯導(dǎo)語:如今,push已經(jīng)成為了我們手機(jī)信息流的一種推廣方式,那么push消息推送是如何實現(xiàn)的呢?作者總結(jié)了幾種消息推送的類型以及實現(xiàn)原理,一起來看看。
一、消息推送的類型
1. 短信推送
指通過運營商將文本或數(shù)字消息傳遞至用戶手機(jī)或其他電信終端。它憑借著優(yōu)秀的發(fā)送率和到達(dá)率,一度成為最受歡迎的營銷工具之一。
一般企業(yè)不太會直接對接移動、聯(lián)通、電信來實現(xiàn)短信發(fā)送,而是通過中間的服務(wù)商將各地區(qū)的運營商資源整合后提供統(tǒng)一、便捷的短信服務(wù),這類服務(wù)商叫短信服務(wù)商,也可叫短信SP。
目前,支持個人短信服務(wù)的廠商有阿里云、騰訊云,其他廠商都是需要認(rèn)證為企業(yè)用戶才能使用短信服務(wù)平臺。短信供應(yīng)商根據(jù)發(fā)送量進(jìn)行收費,發(fā)送越多單價越便宜。
2. 郵件推送
EDM(Email Direct Marketing),即電子郵件營銷。企業(yè)可以通過EDM建立同目標(biāo)顧客的溝通渠道,向其直接傳達(dá)相關(guān)信息,用來促進(jìn)銷售。郵件推送具有精準(zhǔn)送達(dá)、個性化定制、內(nèi)容格式豐富的特點。亞馬遜就曾憑借優(yōu)秀的電子郵件營銷出圈。
3. 微信消息推送
截至2022年3月31日,微信及WeChat的合并月活躍賬戶數(shù)為12.883億。隨著微信的影響力的增強(qiáng),越來越多的企業(yè)也逐漸重視微信生態(tài)的布局,微信消息推送就是其一,它的到達(dá)率高、支持精準(zhǔn)推送。不足的是,其內(nèi)容受限于模板,且微信提供的模板數(shù)量有限,一個公眾號最多選用25種模板。
4. 通知欄推送
通知欄推送,也被稱為PUSH推送,即在手機(jī)終端鎖屏狀態(tài)下通知欄展示或在操作前臺頂端彈出的消息通知。用戶可以在移動設(shè)備鎖定屏幕和通知欄看到push消息通知,通知欄點擊可喚起APP并去往相應(yīng)頁面。
5. 應(yīng)用內(nèi)推送
應(yīng)用內(nèi)推送常見的形式有彈窗、頂部懸浮通知、收件箱等,可由應(yīng)用自行控制樣式和內(nèi)容格式。不足的是只能在用戶在線時查看,觸達(dá)有限。
二、移動推送的三種實現(xiàn)方式
在本篇文章中主要介紹通知欄推送的實現(xiàn)方法。在了解具體的推送原理之前,我們先來了解下移動推送的三種實現(xiàn)方式。
1. 輪詢方式(PULL)
客戶端和服務(wù)器定期地建立連接,通過消息隊列等方式來查詢是否有新的消息,需要控制連接和查詢的頻率,頻率不能過慢或過快,過慢會導(dǎo)致部分消息更新不及時,過快會消耗更多的資源(流量、電量等),對用戶體驗有較大傷害。
2. 短信推送方式(SMS PUSH)
通過短信發(fā)送推送消息,并在客戶端植入短信攔截模塊(主要針對 Android 平臺),可以實現(xiàn)對短信進(jìn)行攔截并提取其中的內(nèi)容轉(zhuǎn)發(fā)給 App 應(yīng)用處理,這個方案借助于運營商的短消息,能夠保證最好的實時性和到達(dá)率,但此方案對于成本要求較高,開發(fā)者需要為每一條 SMS 支付費用。
3. 長連接方式(PUSH)
客戶端主動和服務(wù)器建立 TCP 長連接之后, 客戶端定期向服務(wù)器發(fā)送心跳包用于保持連接, 有消息的時候, 服務(wù)器直接通過這個已經(jīng)建立好的 TCP 連接通知客戶端。
盡管長連接也會造成一定的開銷,對于輪詢和 SMS 方案的硬傷來說,目前已經(jīng)是最優(yōu)的方式,而且通過良好的設(shè)計,可以將損耗降至最低。不過,隨著客戶端數(shù)量和消息并發(fā)量的上升,對于消息服務(wù)器的性能和穩(wěn)定性要求提出了非常大的考驗。因此,就難度而言,此方式代價最高。
基于上面的介紹,我們可以知道長連接方式是移動推送中目前最優(yōu)的方案,它也是當(dāng)前主流的推送方式,基于該推送方式逐步發(fā)展出系統(tǒng)級、應(yīng)用級一系列的推送解決方案。
三、系統(tǒng)級推送解決方案
1. iOS 平臺(APNs)
iOS 在系統(tǒng)層面與蘋果 APNs(Apple Push Notification service)服務(wù)器建立連接,不論App是在線狀態(tài)還是離線狀態(tài),消息推送至iOS的APNS服務(wù)器,APNS再根據(jù)設(shè)備標(biāo)識推送至指定設(shè)備,用戶即可接收到消息。
大致鏈路為:業(yè)務(wù)系統(tǒng)(發(fā)起推送)——第三方消息推送服務(wù)商或自建消息推送系統(tǒng)的服務(wù)器(推送邏輯控制、推送下發(fā))——蘋果APNS服務(wù)器——指定用戶設(shè)備。
整個過程很清晰,并且所有 APP 都共用同一個系統(tǒng)級的連接,減少了系統(tǒng)開銷,雖然 APNs 能無障礙的訪問,但實際使用過程中,也會存在延時和丟消息的情況。
2. Android 平臺
Android 的 C2DM(Android Cloud to Device Messaging)采取與 iOS 類似的機(jī)制,都是由系統(tǒng)層面來支持消息推送,但是由于 Google 的服務(wù)在國內(nèi)不能穩(wěn)定的訪問,此方案對于中國用戶來說基本是無法使用的。
除了 Google 官方提供的方案,中國眾多的手機(jī)廠商在其定制的系統(tǒng)中也內(nèi)置了推送功能,如小米、華為等。不過在建立推送服務(wù)之前,需要申請開發(fā)者賬號并綁定App,在開放平臺開通廠商通道推送的權(quán)限。這類廠商機(jī)型支持在線離線狀態(tài)的消息推送。
消息推送大致鏈路為:業(yè)務(wù)系統(tǒng)(發(fā)起推送)——第三方消息推送服務(wù)商或自建消息推送系統(tǒng)的服務(wù)器(推送邏輯控制、推送下發(fā))——廠商服務(wù)器——指定用戶設(shè)備。
四、應(yīng)用級推送解決方案
1. 第三方推送服務(wù)
鑒于 Android 平臺 C2DM 推送的不可用性,國內(nèi)涌現(xiàn)出大量的第三方推送服務(wù)提供商。目前應(yīng)用最為廣泛的第三方推送服務(wù)提供商包括個推、極光、友盟、小米、華為、BAT 等,絕大部分 APP 都會優(yōu)先考慮采用第三方推送服務(wù)。
2. 自建推送服務(wù)
第三方服務(wù)在開發(fā)成本和消息到達(dá)率上表現(xiàn)都不錯,但所有信息會經(jīng)過第三方服務(wù)器,對于信息敏感類 APP 而言,有必要考慮自建一套消息推送服務(wù),能最大化保證安全,但自建推送服務(wù)需要對 App 客戶端海量長連接的維護(hù)管理且面臨保證 Push Service 常駐的難題等。
五、PUSH推送實現(xiàn)方法總結(jié)
綜合以上分析,推送實現(xiàn)方式可以簡單概括為:
PUSH消息在消息系統(tǒng)創(chuàng)建好后進(jìn)入發(fā)送階段,服務(wù)端根據(jù)用戶終端信息進(jìn)行路由,調(diào)用蘋果自身的推送通知服務(wù)(APNs)或根據(jù)根據(jù)不同的安卓廠商去調(diào)用對應(yīng)的SDK,最后下達(dá)到用戶設(shè)備。
當(dāng)然,如果是通過之前說過的個推、極光等推送服務(wù)商,那么內(nèi)部的服務(wù)端就無需做這些繁瑣的開發(fā)工作。他們不僅集成了APNS、小米、華為等大部分廠商通道,還可覆蓋微信公眾號、微信小程序、短信、郵件、支付寶生活號、釘釘 、企業(yè)微信、5G消息、飛書等,同時在補(bǔ)發(fā)策略、數(shù)據(jù)監(jiān)控等層面也有較為成熟的方案。
話又說回來,對于產(chǎn)品經(jīng)理來說,上述內(nèi)容只需要了解就可以了,我們更關(guān)注的還是如何利用推送提升業(yè)務(wù)轉(zhuǎn)化和用戶體驗。至于你問我那為什么還要寫,當(dāng)你從0搭建一個app時,就能感同身受了。
作者:阿宅的產(chǎn)品筆記;公眾號:阿宅的產(chǎn)品筆記(PMZZnote)
本文由 @公眾號阿宅的產(chǎn)品筆記 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。