PUSH消息推送的實(shí)現(xiàn)方法

0 評(píng)論 1524 瀏覽 7 收藏 11 分鐘

本文將深入探討各類消息推送的實(shí)現(xiàn)原理及優(yōu)缺點(diǎn),幫助產(chǎn)品經(jīng)理更好地利用這一工具提升業(yè)務(wù)轉(zhuǎn)化與用戶體驗(yàn)。

01 消息推送的類型

1. 短信推送

指通過(guò)運(yùn)營(yíng)商將文本或數(shù)字消息傳遞至用戶手機(jī)或其他電信終端。

它憑借著優(yōu)秀的發(fā)送率和到達(dá)率,一度成為最受歡迎的營(yíng)銷工具之一。

一般企業(yè)不太會(huì)直接對(duì)接移動(dòng)、聯(lián)通、電信來(lái)實(shí)現(xiàn)短信發(fā)送,而是通過(guò)中間的服務(wù)商將各地區(qū)的運(yùn)營(yíng)商資源整合后提供統(tǒng)一、便捷的短信服務(wù),這類服務(wù)商叫短信服務(wù)商,也可叫短信SP。

目前,支持個(gè)人短信服務(wù)的廠商有阿里云、騰訊云,其他廠商都是需要認(rèn)證為企業(yè)用戶才能使用短信服務(wù)平臺(tái)。短信供應(yīng)商根據(jù)發(fā)送量進(jìn)行收費(fèi),發(fā)送越多單價(jià)越便宜。

PUSH消息推送的實(shí)現(xiàn)方法

2. 郵件推送

EDM(Email Direct Marketing),即電子郵件營(yíng)銷。企業(yè)可以通過(guò)EDM建立同目標(biāo)顧客的溝通渠道,向其直接傳達(dá)相關(guān)信息,用來(lái)促進(jìn)銷售。

郵件推送具有精準(zhǔn)送達(dá)、個(gè)性化定制、內(nèi)容格式豐富的特點(diǎn)。亞馬遜就曾憑借優(yōu)秀的電子郵件營(yíng)銷出圈。

3. 微信消息推送

截至2022年3月31日,微信及WeChat的合并月活躍賬戶數(shù)為12.883億。

隨著微信的影響力的增強(qiáng),越來(lái)越多的企業(yè)也逐漸重視微信生態(tài)的布局,微信消息推送就是其一,它的到達(dá)率高、支持精準(zhǔn)推送。

不足的是,其內(nèi)容受限于模板,且微信提供的模板數(shù)量有限,一個(gè)公眾號(hào)最多選用25種模板。

PUSH消息推送的實(shí)現(xiàn)方法

4. 通知欄推送

通知欄推送,也被稱為PUSH推送,即在手機(jī)終端鎖屏狀態(tài)下通知欄展示或在操作前臺(tái)頂端彈出的消息通知。

用戶可以在移動(dòng)設(shè)備鎖定屏幕和通知欄看到push消息通知,通知欄點(diǎn)擊可喚起APP并去往相應(yīng)頁(yè)面。

PUSH消息推送的實(shí)現(xiàn)方法

5. 應(yīng)用內(nèi)推送

應(yīng)用內(nèi)推送常見的形式有彈窗、頂部懸浮通知、收件箱等,可由應(yīng)用自行控制樣式和內(nèi)容格式。不足的是只能在用戶在線時(shí)查看,觸達(dá)有限。

02 移動(dòng)推送的三種實(shí)現(xiàn)方式

在本篇文章中主要介紹通知欄推送的實(shí)現(xiàn)方法。在了解具體的推送原理之前,我們先來(lái)了解下移動(dòng)推送的三種實(shí)現(xiàn)方式。

1. 輪詢方式(PULL)

客戶端和服務(wù)器定期地建立連接,通過(guò)消息隊(duì)列等方式來(lái)查詢是否有新的消息,需要控制連接和查詢的頻率,頻率不能過(guò)慢或過(guò)快,過(guò)慢會(huì)導(dǎo)致部分消息更新不及時(shí),過(guò)快會(huì)消耗更多的資源(流量、電量等),對(duì)用戶體驗(yàn)有較大傷害。

2. 短信推送方式(SMS PUSH)

通過(guò)短信發(fā)送推送消息,并在客戶端植入短信攔截模塊(主要針對(duì) Android 平臺(tái)),可以實(shí)現(xiàn)對(duì)短信進(jìn)行攔截并提取其中的內(nèi)容轉(zhuǎn)發(fā)給 App 應(yīng)用處理,這個(gè)方案借助于運(yùn)營(yíng)商的短消息,能夠保證最好的實(shí)時(shí)性和到達(dá)率,但此方案對(duì)于成本要求較高,開發(fā)者需要為每一條 SMS 支付費(fèi)用。

3. 長(zhǎng)連接方式(PUSH)

客戶端主動(dòng)和服務(wù)器建立 TCP 長(zhǎng)連接之后, 客戶端定期向服務(wù)器發(fā)送心跳包用于保持連接, 有消息的時(shí)候, 服務(wù)器直接通過(guò)這個(gè)已經(jīng)建立好的 TCP 連接通知客戶端。盡管長(zhǎng)連接也會(huì)造成一定的開銷,對(duì)于輪詢和 SMS 方案的硬傷來(lái)說(shuō),目前已經(jīng)是最優(yōu)的方式,而且通過(guò)良好的設(shè)計(jì),可以將損耗降至最低。不過(guò),隨著客戶端數(shù)量和消息并發(fā)量的上升,對(duì)于消息服務(wù)器的性能和穩(wěn)定性要求提出了非常大的考驗(yàn)。因此,就難度而言,此方式代價(jià)最高。

基于上面的介紹,我們可以知道長(zhǎng)連接方式是移動(dòng)推送中目前最優(yōu)的方案,它也是當(dāng)前主流的推送方式,基于該推送方式逐步發(fā)展出系統(tǒng)級(jí)、應(yīng)用級(jí)一系列的推送解決方案。

03 系統(tǒng)級(jí)推送解決方案

1. iOS 平臺(tái)(APNs)

iOS 在系統(tǒng)層面與蘋果 APNs(Apple Push Notification service)服務(wù)器建立連接,不論App是在線狀態(tài)還是離線狀態(tài),消息推送至iOS的APNS服務(wù)器,APNS再根據(jù)設(shè)備標(biāo)識(shí)推送至指定設(shè)備,用戶即可接收到消息。

大致鏈路為:業(yè)務(wù)系統(tǒng)(發(fā)起推送)——第三方消息推送服務(wù)商或自建消息推送系統(tǒng)的服務(wù)器(推送邏輯控制、推送下發(fā))——蘋果APNS服務(wù)器——指定用戶設(shè)備。

整個(gè)過(guò)程很清晰,并且所有 APP 都共用同一個(gè)系統(tǒng)級(jí)的連接,減少了系統(tǒng)開銷,雖然 APNs 能無(wú)障礙的訪問(wèn),但實(shí)際使用過(guò)程中,也會(huì)存在延時(shí)和丟消息的情況。

PUSH消息推送的實(shí)現(xiàn)方法

2. Android 平臺(tái)

Android 的 C2DM(Android Cloud to Device Messaging)采取與 iOS 類似的機(jī)制,都是由系統(tǒng)層面來(lái)支持消息推送,但是由于 Google 的服務(wù)在國(guó)內(nèi)不能穩(wěn)定的訪問(wèn),此方案對(duì)于中國(guó)用戶來(lái)說(shuō)基本是無(wú)法使用的。

PUSH消息推送的實(shí)現(xiàn)方法

除了 Google 官方提供的方案,中國(guó)眾多的手機(jī)廠商在其定制的系統(tǒng)中也內(nèi)置了推送功能,如小米、華為等。不過(guò)在建立推送服務(wù)之前,需要申請(qǐng)開發(fā)者賬號(hào)并綁定App,在開放平臺(tái)開通廠商通道推送的權(quán)限。這類廠商機(jī)型支持在線離線狀態(tài)的消息推送。

消息推送大致鏈路為:業(yè)務(wù)系統(tǒng)(發(fā)起推送)——第三方消息推送服務(wù)商或自建消息推送系統(tǒng)的服務(wù)器(推送邏輯控制、推送下發(fā))——廠商服務(wù)器——指定用戶設(shè)備。

04 應(yīng)用級(jí)推送解決方案

1. 第三方推送服務(wù)

鑒于 Android 平臺(tái) C2DM 推送的不可用性,國(guó)內(nèi)涌現(xiàn)出大量的第三方推送服務(wù)提供商。目前應(yīng)用最為廣泛的第三方推送服務(wù)提供商包括個(gè)推、極光、友盟、小米、華為、BAT 等,絕大部分 APP 都會(huì)優(yōu)先考慮采用第三方推送服務(wù)。

2. 自建推送服務(wù)

第三方服務(wù)在開發(fā)成本和消息到達(dá)率上表現(xiàn)都不錯(cuò),但所有信息會(huì)經(jīng)過(guò)第三方服務(wù)器,對(duì)于信息敏感類 APP 而言,有必要考慮自建一套消息推送服務(wù),能最大化保證安全,但自建推送服務(wù)需要對(duì) App 客戶端海量長(zhǎng)連接的維護(hù)管理且面臨保證 Push Service 常駐的難題等。

05 PUSH推送實(shí)現(xiàn)方法總結(jié)

綜合以上分析,推送實(shí)現(xiàn)方式可以簡(jiǎn)單概括為:

PUSH消息在消息系統(tǒng)創(chuàng)建好后進(jìn)入發(fā)送階段,服務(wù)端根據(jù)用戶終端信息進(jìn)行路由,調(diào)用蘋果自身的推送通知服務(wù)(APNs)或根據(jù)根據(jù)不同的安卓廠商去調(diào)用對(duì)應(yīng)的SDK,最后下達(dá)到用戶設(shè)備。

當(dāng)然,如果是通過(guò)之前說(shuō)過(guò)的個(gè)推、極光等推送服務(wù)商,那么內(nèi)部的服務(wù)端就無(wú)需做這些繁瑣的開發(fā)工作。他們不僅集成了APNS、小米、華為等大部分廠商通道,還可覆蓋微信公眾號(hào)、微信小程序、短信、郵件、支付寶生活號(hào)、釘釘 、企業(yè)微信、5G消息、飛書等,同時(shí)在補(bǔ)發(fā)策略、數(shù)據(jù)監(jiān)控等層面也有較為成熟的方案。

PUSH消息推送的實(shí)現(xiàn)方法

話又說(shuō)回來(lái),對(duì)于產(chǎn)品經(jīng)理來(lái)說(shuō),上述內(nèi)容只需要了解就可以了,我們更關(guān)注的還是如何利用推送提升業(yè)務(wù)轉(zhuǎn)化和用戶體驗(yàn)。至于你問(wèn)我那為什么還要寫,當(dāng)你從0搭建一個(gè)app時(shí),就能感同身受了。

作者:阿宅的產(chǎn)品筆記;公眾號(hào):阿宅的產(chǎn)品筆記

本文由 @阿宅的產(chǎn)品筆記 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!