APP消息推送那些事兒
Part 01 什么是消息推送
消息推送其實每天都在我們的手機上發生,如圖1所示,除非你的手機沒有安裝APP或關閉了系統的通知欄權限。這些推送消息無時不刻地提醒和引導我們打開APP,然后成為他們的活躍用戶,這也是消息推送所要達到的目的。
圖1 手機上的APP消息通知
“推送”這一概念最早在1996年由PointCast網絡公司提出,旨在為用戶提供更準確、更實時的消息通知。伴隨著推送技術的發展,推送技術主要經歷3個階段:
1.1 輪詢方式
由客戶端主動發起請求的推送方式,客戶端以定時任務的方式詢問服務端是否有新的推送消息。
缺點:請求頻率過高,會消耗較多資源(流量、電量、服務器資源);請求頻率過低,消息延遲較高,實時性得不到保證。
1.2 短信推送方式
通過運營商的短信通道將消息發往用戶設備,客戶端植入短信攔截模塊,可以實現對短信進行攔截并提取其中的內容轉發給APP應用處理。
缺點:短信推送需要付費,成本高;客戶端對短信攔截存在安全風險。
1.3 長連接推送方式
長連接推送基于TCP長連接實現,客戶端主動和服務器建立TCP長連接之后, 客戶端定期向服務器發送心跳包用于保持連接, 在需要時候,服務器直接通過這個已經建立好的TCP連接通知客戶端。該方案也是目前主流的消息推送實現方式。
目前主流的消息推送過程,可以用下面圖2來描述。
圖2 主流消息推送過程
Part 02 技術上的事兒
以目前主流的長連接推送方式來說,想要給APP主動推送一條消息,需要在APP客戶端和服務端之間建立一條通道,俗稱長連接。如果手機退到后臺,這種長連接由APP來維護,難度很大,一方面是手機系統不允許這么做,設想如果手機上所有APP為?;铋L連接常駐后臺,手機系統性能會大打折扣;另一方面是開發成本太高,為了開發APP,還需要維護長連接,因此絕大部分公司不會自建推送服務。自建長連接不可行,就得仰仗手機系統的長連接了,下面我們來看看目前主流手機操作系統安卓和iOS的基于系統長連接的推送通道。
1、蘋果手機系統有官方的推送通道APNs(Apple Push Notification service),即蘋果推送通知服務。APNs會在手機系統層面與蘋果服務器建立系統長連接,我們業務只需要把推送通知推給APNs系統,手機系統在收到 APNs服務器消息后會幫我們轉發到相應的APP上。這樣只要你手機正常聯網,即使APP不打開,也能正常收到推送通知。蘋果手機通過APNs進行消息推送的工作機制可以簡單的用下圖3來描述。
圖3 APNs推送流程
2、按理說安卓手機系統應該也會有這樣一套推送系統,確實有,谷歌也開發了一套推送服務叫GCM(Google Cloud Messaging),原理與蘋果的APNs類似。但由于Google在國內訪問的不穩定,導致國內無法正常使用GCM服務(工信部正牽頭成立的“安卓統一推送聯盟”,還在期待中)。為了解決這一問題,眾多手機廠商在其手機系統中內置了系統推送功能,如小米、華為、vivo、oppo、魅族等。由于接入成本的問題,也出現了大量第三方推送服務提供商,比如個推、極光、友盟等等。第三方推送服務商推送流程如下圖4所示。
圖4 第三方服務商推送流程
Part 03、 技術之外的事兒
消息推送對APP來說是一把雙刃劍。推的好,能提升用戶留存率、產品活躍度和用戶對APP的粘度;推的不好,可能會引起用戶的反感和投訴,輕則關閉通知消息,重則卸載APP。所以如何掌握好這把利劍,也非??简灝a品運營能力。一般一條推送消息都會涉及到幾個因素:推送文案、推送頻率、時機和推送人群。
3.1 推送文案
在廣告營銷理論中有條法則叫AIDA法則,如下圖5所示,
?
圖5 AIDA法則
它的具體涵義是指一個成功的推銷員必須把顧客的注意力吸引或轉變到產品上,使顧客對推銷人員所推銷的產品產生興趣,這樣顧客欲望也就隨之產生,而后再促使采取購買行為,達成交易。
3.2 推送頻率和時機
關于推送頻率,一般來說同一個APP一個用戶一天最多不要收到3條以上的推送,消息多了,很容易引起用戶困擾,甚至不能每天都給用戶推送(可能隔天推一次會好一些)。
關于推送時機,如果是資訊類的,推送的時機當然是越準時越好了,不然競品都推送完了,用戶都知道了,你才推送,那誰還點進去。同時作為一些官方推送,還應該保持內容的準確性。
一般推送時間,我們都是希望在大家相對空閑的時間去推送,比如:上班路上及早餐時間(9-10點)、午休時間(12-14點)、下班時間(18-19點)和睡前時間(21-22點)等。當然不同的用戶群體,時間可會有一定的調整。這就需要結合用戶群體和業務屬性尋找相對適宜的時間了。
3.3 推送人群
關于推送人群,現在大的互聯網公司都有一套自己的大數據平臺或用戶畫像系統,正所謂千人千面,不同標簽的人群推送的內容應該是有所區分的,以達到最高的打開率和點擊率。這在電商領域平臺尤其必要,比如,有一批用戶剛注冊平臺,就給這批用戶推送優惠券信息,可能促進他們的購買欲;有一批用戶的地理位置在杭州,就可以結合杭州的天氣,給這批用戶推薦杭州當天應該穿什么樣的衣服最合適;有一批用戶可能身高165+,可以給這批用戶推薦合適身材的穿衣搭配。通過結合人群的實際屬性,這樣的推送會更加精準一些,用戶可能會點擊的概率也會更高一些。
3.4 推送事故
由于推送消息一旦到達APP終端,就很難進行撤回,所以消息推送也很容易制造推送事故。
圖6 推送事故
那在實際運營中我們應該如何避免推送事故的產生呢?
1、在推送之前最好圈定推送人群,這樣在即使出現推送事故之后,影響的只是部分用戶。
2、加強推送消息審核,最好結合工單審批流程,保證在消息推送之前得到管控。
3、推送系統做好黑白名單管理,推送之前進行白名單測試,針對敏感用戶做好黑名單管理。
Part 04 結語
當然消息推送還有許多值得關注的點,比如如何提高到達率,提升用戶點擊率,這些可能都是產品運營比較關注的KPI,正如文章開頭所說的消息推送是把雙刃劍,用的溜不溜,不僅考驗開發人員的技術水平更考研運營人員的能力。