即時(shí)通訊開(kāi)發(fā):閑魚(yú)IM消息系統(tǒng)離線推送到達(dá)率優(yōu)化之旅
一、IM即時(shí)通訊開(kāi)發(fā)的重要性與挑戰(zhàn)
閑魚(yú)作為一個(gè)買(mǎi)家與賣(mài)家的互動(dòng)平臺(tái),其IM消息系統(tǒng)對(duì)于增進(jìn)理解、促進(jìn)信任起到了至關(guān)重要的作用。隨著業(yè)務(wù)的高速增長(zhǎng),現(xiàn)有的IM消息系統(tǒng)面臨諸多挑戰(zhàn),其中離線推送到達(dá)率問(wèn)題尤為關(guān)鍵,對(duì)用戶(hù)體驗(yàn)有著顯著影響。

二、通信鏈路類(lèi)型的劃分
從數(shù)據(jù)通信鏈接的技術(shù)角度,我們根據(jù)閑魚(yú)客戶(hù)端的在線狀態(tài),將整體消息鏈路分為強(qiáng)感知鏈路和弱感知鏈路。
強(qiáng)感知鏈路
強(qiáng)感知鏈路涉及發(fā)送方客戶(hù)端、idleapi-message(閑魚(yú)的消息網(wǎng)關(guān))、heracles(閑魚(yú)的消息底層服務(wù))、accs(阿里自研的長(zhǎng)連接通道)以及接收方客戶(hù)端。這條鏈路的核心指標(biāo)是端到端延遲和消息到達(dá)率。由于雙方在線,消息能夠?qū)崟r(shí)到達(dá)客戶(hù)端,因此主要痛點(diǎn)在于消息的傳輸延遲。
弱感知鏈路

弱感知鏈路與強(qiáng)感知鏈路的主要區(qū)別在于接收方離線,需要依賴(lài)離線推送送達(dá)。用戶(hù)感知度不強(qiáng),其核心指標(biāo)在于消息的到達(dá)率。當(dāng)前階段的優(yōu)化重點(diǎn)便是提升離線消息的到達(dá)率,也就是優(yōu)化弱感知鏈路本身。
三、離線推送到達(dá)率優(yōu)化的必要性
離線推送是IM消息系統(tǒng)中的重要功能,對(duì)于保證用戶(hù)在不同狀態(tài)下都能接收到消息至關(guān)重要。由于各種原因,離線推送的到達(dá)率并不總能達(dá)到預(yù)期,這不僅影響了用戶(hù)體驗(yàn),也制約了IM系統(tǒng)的進(jìn)一步發(fā)展。優(yōu)化離線推送到達(dá)率成為了我們的重要任務(wù)。
四、優(yōu)化策略與技術(shù)手段
針對(duì)離線推送到達(dá)率問(wèn)題,我們可以從以下幾個(gè)方面進(jìn)行優(yōu)化:

1. 深入分析當(dāng)前離線推送機(jī)制,找出存在的問(wèn)題和瓶頸;
2. 研究并引入更高效的推送技術(shù),如富文本消息的推送優(yōu)化、消息壓縮等;
3. 加強(qiáng)服務(wù)端與客戶(hù)端的協(xié)同,確保推送的準(zhǔn)確性和及時(shí)性;
4. 對(duì)不同網(wǎng)絡(luò)環(huán)境和設(shè)備類(lèi)型的用戶(hù)進(jìn)行差異化處理,提高推送的適應(yīng)性;
5. 建立完善的監(jiān)控和反饋機(jī)制,及時(shí)發(fā)現(xiàn)并解決問(wèn)題。

五、展望與未來(lái)方向
隨著技術(shù)的不斷進(jìn)步和用戶(hù)需求的變化,閑魚(yú)的IM消息系統(tǒng)將面臨更多挑戰(zhàn)和機(jī)遇。我們將繼續(xù)深入研究離線推送技術(shù),不斷提升用戶(hù)體驗(yàn),同時(shí)也將關(guān)注其他方面的優(yōu)化,如在線消息體驗(yàn)、消息玩法與底層系統(tǒng)的耦合等。相信在不久的將來(lái),我們能夠?yàn)橛脩?hù)提供更加高效、穩(wěn)定、便捷的通訊體驗(yàn)。即時(shí)通訊聊天軟件app開(kāi)發(fā)可以咨詢(xún)蔚可云,共同探索更多可能性。
阿里技術(shù)架構(gòu)中的核心組件與子系統(tǒng)
一、主要組件及子系統(tǒng)概述
在阿里的技術(shù)架構(gòu)中,存在著多個(gè)關(guān)鍵的組件和子系統(tǒng),它們各司其職,共同支撐著阿里巴巴的龐大業(yè)務(wù)體系。1. HSF遠(yuǎn)程服務(wù)框架
HSF作為dubbo的內(nèi)部版本,是一個(gè)強(qiáng)大的遠(yuǎn)程服務(wù)框架,為阿里巴巴集團(tuán)提供了高效的服務(wù)間通信能力。2. tair分布式緩存框架

3. agoo離線推送中臺(tái)
agoo負(fù)責(zé)整合不同廠商的離線推送通道,為集團(tuán)用戶(hù)提供一個(gè)統(tǒng)一的離線推送服務(wù),從而確保消息的及時(shí)送達(dá)。4. accs長(zhǎng)連接通道
accs是阿里自研的長(zhǎng)連接通道,它極大地便利了客戶(hù)端與服務(wù)器之間的實(shí)時(shí)雙向交互。5. lindorm與HBase齊頭并進(jìn)

6. 域環(huán):閑魚(yú)消息優(yōu)化核心
域環(huán)是閑魚(yú)消息優(yōu)化性能的關(guān)鍵結(jié)構(gòu),用于存儲(chǔ)用戶(hù)最新的若干條消息,確保消息的實(shí)時(shí)性和高效性。二、感知鏈路的差異
在通道選擇上,強(qiáng)感知鏈路和弱感知鏈路有所不同。1. 強(qiáng)感知鏈路
強(qiáng)感知鏈路主要使用accs在線通道,確保信息的實(shí)時(shí)傳遞和用戶(hù)的及時(shí)響應(yīng)。2. 弱感知鏈路

三、弱感知鏈路的深度解析
弱感知鏈路,通俗地說(shuō),就是離線消息推送系統(tǒng)。相較于在線消息和端內(nèi)推送,離線推送難以確保用戶(hù)能夠感知到。在實(shí)際應(yīng)用中,可能出現(xiàn)以下幾種情況:
1. 推送未送達(dá)用戶(hù)設(shè)備
這種情況需要從通道的返回進(jìn)行分析,找出問(wèn)題所在。2. 送達(dá)用戶(hù)設(shè)備但未展示到系統(tǒng)通知欄
閑魚(yú)曾遇到過(guò)通道返回成功,但用戶(hù)并未看到推送內(nèi)容的情況,這需要進(jìn)一步研究和優(yōu)化。
3. 展示到通知欄但被系統(tǒng)折疊
不同安卓廠商對(duì)推送的折疊策略不同,可能導(dǎo)致用戶(hù)需要主動(dòng)展開(kāi)才能看到內(nèi)容,從而影響觸達(dá)效果。一、離線消息無(wú)法成功發(fā)送到用戶(hù)設(shè)備的原因分析
在數(shù)字化時(shí)代,消息無(wú)法成功發(fā)送至用戶(hù)設(shè)備的情況屢見(jiàn)不鮮。其背后的原因多樣,包括但不限于以下幾點(diǎn):
1. 離線通道的token失效:這是技術(shù)層面的問(wèn)題,需要定期維護(hù)和更新token,確保消息能夠準(zhǔn)確傳達(dá)。

2. 參數(shù)錯(cuò)誤:發(fā)送消息時(shí),參數(shù)的細(xì)微錯(cuò)誤可能導(dǎo)致消息無(wú)法成功傳達(dá)。
3. 用戶(hù)關(guān)閉應(yīng)用通知:用戶(hù)的個(gè)人設(shè)置可能導(dǎo)致其錯(cuò)過(guò)重要消息。
4. 用戶(hù)已卸載應(yīng)用:若用戶(hù)長(zhǎng)時(shí)間不使用或不再需要某應(yīng)用,可能會(huì)選擇卸載,從而導(dǎo)致消息無(wú)法送達(dá)。
二、關(guān)于通知欄展示與折疊的問(wèn)題解析
在通知欄展示的消息,有時(shí)會(huì)被系統(tǒng)折疊或忽略。這一現(xiàn)象背后的原因如下:

1. 通知的點(diǎn)擊率:點(diǎn)擊率低的通知容易被系統(tǒng)視為低優(yōu)先級(jí)信息,從而被折疊。
2. 應(yīng)用在廠商處的權(quán)重:不同應(yīng)用在不同廠商的設(shè)備上權(quán)重不同,可能影響通知的展示。
3. 推送的數(shù)量:大量推送可能導(dǎo)致系統(tǒng)資源緊張,部分通知會(huì)被折疊或忽略。
三、用戶(hù)忽略通知欄消息的原因探討
有時(shí),盡管消息成功發(fā)送到通知欄,卻被用戶(hù)忽略。這一現(xiàn)象的原因主要有以下幾點(diǎn):

1. 用戶(hù)意愿問(wèn)題:用戶(hù)可能主觀上不愿意查看推送內(nèi)容。
2. 內(nèi)容吸引力不足:推送內(nèi)容對(duì)用戶(hù)無(wú)實(shí)際價(jià)值或吸引力時(shí),容易被忽略。
3. 用戶(hù)忙碌狀態(tài):當(dāng)用戶(hù)在忙碌時(shí),無(wú)暇處理通知欄的消息。
四、弱感知鏈路的定義與構(gòu)成
上述離線消息推送場(chǎng)景中存在一種現(xiàn)象,即用戶(hù)對(duì)于推送的感知度不高,我們稱(chēng)之為弱感知鏈路。弱感知鏈路主要由三部分構(gòu)成:系統(tǒng)、通道和用戶(hù)。

具體涉及Hermes、agoo、廠商、設(shè)備等環(huán)節(jié)。從推送的產(chǎn)生到用戶(hù)最終進(jìn)入APP,整個(gè)過(guò)程分為以下幾個(gè)步驟:
1. Hermes作為閑魚(yú)的用戶(hù)觸達(dá)系統(tǒng),負(fù)責(zé)人群管理、內(nèi)容管理、時(shí)機(jī)把控,是整個(gè)弱感知鏈路的起點(diǎn)。推送的產(chǎn)生首先由Hermes系統(tǒng)進(jìn)行調(diào)度。
2. 接著,消息通過(guò)通道傳遞至用戶(hù)的設(shè)備。這里的通道可能因各種原因出現(xiàn)token失效、參數(shù)錯(cuò)誤等問(wèn)題,導(dǎo)致消息無(wú)法成功送達(dá)。
3. 用戶(hù)收到通知,但可能因?yàn)橥ㄖ狞c(diǎn)擊率、內(nèi)容吸引力、個(gè)人狀態(tài)等因素,選擇忽略或折疊通知。
通過(guò)對(duì)弱感知鏈路的深入理解和持續(xù)優(yōu)化,我們可以提高消息的送達(dá)率和用戶(hù)點(diǎn)擊率,進(jìn)而提升用戶(hù)體驗(yàn)和應(yīng)用的商業(yè)價(jià)值。一、閑魚(yú)離線推送的中臺(tái)與弱感知鏈路

步驟概覽
在閑魚(yú)的運(yùn)營(yíng)策略中,離線推送扮演著至關(guān)重要的角色。這一功能的實(shí)現(xiàn),離不開(kāi)agoo這一阿里內(nèi)部的中臺(tái)力量。agoo作為閑魚(yú)離線推送能力的基礎(chǔ),承載著將信息傳遞給用戶(hù)的使命。
弱感知鏈路的運(yùn)作流程
1. agoo的角色定位:agoo作為阿里內(nèi)部的中臺(tái),負(fù)責(zé)承接離線推送的任務(wù)。它是閑魚(yú)與用戶(hù)之間溝通的橋梁。
2. 通過(guò)廠商通道實(shí)現(xiàn)離線推送:agoo依賴(lài)各大廠商的推送通道,如蘋(píng)果的apns通道、Google的fcm通道以及國(guó)內(nèi)各大手機(jī)廠商的自建通道,將推送信息送達(dá)用戶(hù)設(shè)備。

3. 用戶(hù)設(shè)備端的展現(xiàn):通過(guò)廠商的推送通道,信息最終出現(xiàn)在用戶(hù)的設(shè)備上。這是用戶(hù)能夠感知到推送信息的前提條件。
4. 用戶(hù)的互動(dòng)環(huán)節(jié):如果用戶(hù)恰好看到了這條推送,且推送的內(nèi)容具有吸引力,那么用戶(hù)可能會(huì)主動(dòng)點(diǎn)擊,從而喚醒APP,并查看相關(guān)的商品。
經(jīng)過(guò)上述步驟,一個(gè)弱感知鏈路的任務(wù)完成。在這個(gè)過(guò)程中,用戶(hù)從無(wú)知到感知,再到產(chǎn)生互動(dòng),每一步都至關(guān)重要。
弱感知鏈路的核心問(wèn)題
弱感知鏈路面臨的核心問(wèn)題是:推送的消息是否成功傳遞給用戶(hù),以及用戶(hù)是否感知到了這條消息。這涉及到推送的兩個(gè)階段:消息是否到達(dá)用戶(hù)設(shè)備,以及用戶(hù)是否查看并點(diǎn)擊。其中,確保消息到達(dá)設(shè)備是最基礎(chǔ)的環(huán)節(jié),也是優(yōu)化的重點(diǎn)。

為了更好地理解這一過(guò)程,我們可以將每一步的處理量展示為漏斗圖,直觀地看出鏈路的瓶頸所在。
通過(guò)分析漏斗圖,我們發(fā)現(xiàn)優(yōu)化弱感知鏈路主要集中在三個(gè)方面:agoo的受理率、廠商的受理率以及Push的點(diǎn)擊率。
二、如何進(jìn)行App消息推送(Push)
消息推送的基本原理
App消息推送(Push)是服務(wù)器主動(dòng)向客戶(hù)端發(fā)送內(nèi)容的過(guò)程。運(yùn)營(yíng)人員可以通過(guò)自己的產(chǎn)品平臺(tái)或第三方工具,對(duì)用戶(hù)的移動(dòng)設(shè)備主動(dòng)進(jìn)行消息推送。這一過(guò)程涉及到多個(gè)環(huán)節(jié),包括消息的生成、傳輸、接收和展示。

推送的最佳實(shí)踐
1. 內(nèi)容吸引力:推送的內(nèi)容需要有吸引力,能夠引起用戶(hù)的興趣,促使他們主動(dòng)點(diǎn)擊。
2. 時(shí)機(jī)選擇:選擇合適的推送時(shí)機(jī)至關(guān)重要。避免在用戶(hù)不活躍的時(shí)間段推送,以免影響用戶(hù)體驗(yàn)。
3. 個(gè)性化推送:根據(jù)用戶(hù)的興趣和行為數(shù)據(jù),推送相關(guān)的內(nèi)容,提高推送的精準(zhǔn)度。
4. 優(yōu)化推送頻率:推送過(guò)于頻繁可能導(dǎo)致用戶(hù)反感,而推送不足則可能使用戶(hù)忘記你的App。需要找到最佳的推送頻率。

5. 反饋機(jī)制:建立有效的反饋機(jī)制,了解用戶(hù)對(duì)推送的反應(yīng),根據(jù)反饋持續(xù)優(yōu)化推送策略。
通過(guò)遵循這些最佳實(shí)踐,我們可以提高Push的點(diǎn)擊率,優(yōu)化弱感知鏈路,更有效地將信息傳遞給用戶(hù),并引導(dǎo)他們與我們的App產(chǎn)生互動(dòng)。消息通知的展示與推送交互邏輯
一、消息通知的展示
在完成推送后,消息通知會(huì)展示在我們的移動(dòng)設(shè)備的鎖定屏幕及通知欄上。用戶(hù)只需輕輕一點(diǎn),即可迅速進(jìn)入相應(yīng)頁(yè)面,了解詳細(xì)信息。這種設(shè)計(jì)旨在為用戶(hù)提供便捷、高效的體驗(yàn),確保他們能及時(shí)獲取到重要信息。
二、消息推送的實(shí)現(xiàn)方式

現(xiàn)在,消息推送主要采用長(zhǎng)鏈接方式實(shí)現(xiàn)。其原理是客戶(hù)端與服務(wù)器建立穩(wěn)定的TCP長(zhǎng)鏈接。一旦鏈接建立,客戶(hù)端會(huì)定期發(fā)送心跳包以保持連接活躍。當(dāng)有新的消息需要傳達(dá)時(shí),服務(wù)器會(huì)利用這個(gè)已經(jīng)建立好的鏈接,直接將消息發(fā)送到客戶(hù)端。個(gè)推作為國(guó)內(nèi)移動(dòng)推送領(lǐng)域的領(lǐng)先者,自2010年以來(lái),一直為移動(dòng)開(kāi)發(fā)者提供穩(wěn)定、高效、智能的消息推送服務(wù)。他們采用的長(zhǎng)鏈接方式,具有穩(wěn)定性高、存活期長(zhǎng)、消息送達(dá)率高等優(yōu)點(diǎn)。
三、如何用消息推送做好APP運(yùn)營(yíng)
1. 消息推送的目標(biāo)
我們的目標(biāo)是使消息推送成為用戶(hù)的貼身助手,為用戶(hù)提供及時(shí)、有價(jià)值的信息。
2. 消息推送的原則

關(guān)鍵在于在正確的時(shí)間推送正確的內(nèi)容。這需要我們深入理解用戶(hù)的需求和行為,制定精準(zhǔn)的推送策略。
3. 細(xì)分推送對(duì)象
建立用戶(hù)數(shù)據(jù)庫(kù),細(xì)化用戶(hù)特征、地域和偏好。例如,針對(duì)北京的福利活動(dòng),只推送給北京地區(qū)的用戶(hù),避免無(wú)效推送造成用戶(hù)反感。
4. 尊重用戶(hù),主動(dòng)權(quán)歸還于用戶(hù)
推送消息的前提是用戶(hù)充分信任APP并授權(quán)接收消息。我們應(yīng)尊重用戶(hù)的權(quán)利,提供取消訂閱或屏蔽的功能。遇到用戶(hù)反感的消息時(shí),要尊重他們的選擇,避免導(dǎo)致用戶(hù)流失。

5. 推送時(shí)間的策略
從用戶(hù)接受信息的場(chǎng)景出發(fā),選擇合適的推送時(shí)間。避免在用戶(hù)休息或不方便接收消息的時(shí)候進(jìn)行推送。例如,天氣類(lèi)APP可以在早上推送當(dāng)天的天氣情況,而瀏覽器類(lèi)的APP在搶票日歷推送時(shí),應(yīng)考慮用戶(hù)的實(shí)際使用場(chǎng)景和搶票時(shí)間。
6. 推送內(nèi)容的精選
只推送用戶(hù)感興趣的內(nèi)容,并確保內(nèi)容與產(chǎn)品定位相符??梢越梃b微信訂閱模式的成功經(jīng)驗(yàn),用戶(hù)訂閱的內(nèi)容代表他們的興趣所在。避免推送與產(chǎn)品無(wú)關(guān)的消息,以免破壞產(chǎn)品在用戶(hù)心中的定位。
通過(guò)以上策略,我們可以更有效地利用消息推送,提高產(chǎn)品的活躍度和用戶(hù)留存率,為APP運(yùn)營(yíng)帶來(lái)更大的成功。如果您對(duì)個(gè)推消息推送感興趣,歡迎前往個(gè)推開(kāi)發(fā)者中心免費(fèi)注冊(cè)體驗(yàn)。
APP消息推送策略:如何把握頻率與內(nèi)容,實(shí)現(xiàn)用戶(hù)依賴(lài)與互動(dòng)

一、理解用戶(hù)行為:使用頻次與產(chǎn)品類(lèi)型
在數(shù)字時(shí)代,APP與用戶(hù)的互動(dòng)變得至關(guān)重要。工具型、社交型以及內(nèi)容型APP,它們的使用頻次因產(chǎn)品類(lèi)型而異。例如,工具型APP用戶(hù)可能更注重實(shí)用性和效率,每天只打開(kāi)一次;而社交型APP,如微信、微博等,用戶(hù)每天可能會(huì)打開(kāi)數(shù)十次,因?yàn)樗麄兿M麑?shí)時(shí)接收好友消息和動(dòng)態(tài)。
二、定制消息推送策略:頻率與內(nèi)容需恰到好處
對(duì)于社交型APP,用戶(hù)可以容忍更頻繁的消息推送,因?yàn)樗麄兤诖谝粫r(shí)間了解好友的最新動(dòng)態(tài)。但對(duì)于工具型APP,頻繁推送可能會(huì)引發(fā)用戶(hù)的反感。推送策略應(yīng)結(jié)合使用場(chǎng)景和使用頻次。比如,工具類(lèi)APP的推送可以在用戶(hù)使用該工具時(shí)適時(shí)出現(xiàn),避免過(guò)度打擾;而對(duì)于內(nèi)容型APP,當(dāng)訂閱的內(nèi)容有更新時(shí),應(yīng)及時(shí)通知用戶(hù)。
一切策略的核心都應(yīng)圍繞用戶(hù)的感受和需求展開(kāi)。恰到好處的消息推送不僅能增加用戶(hù)的黏性,還能提高APP的活躍度和用戶(hù)滿(mǎn)意度。

三、重視用戶(hù)體驗(yàn):推送內(nèi)容與進(jìn)入界面的和諧統(tǒng)一
從APP廠商的角度看,每一次消息推送都是為了用戶(hù)能打開(kāi)APP。但推送的內(nèi)容與用戶(hù)點(diǎn)擊后進(jìn)入的界面是否一致,直接影響著用戶(hù)體驗(yàn)。若用戶(hù)接收到的是關(guān)于某項(xiàng)活動(dòng)的信息,點(diǎn)開(kāi)卻跳轉(zhuǎn)到APP首頁(yè),需再次尋找活動(dòng)入口,這種體驗(yàn)顯然不友好。推送內(nèi)容與進(jìn)入的界面應(yīng)無(wú)縫銜接,確保用戶(hù)能迅速找到所需信息。
四、引導(dǎo)用戶(hù)行為:激勵(lì)與策略并行
為了增加用戶(hù)打開(kāi)APP的頻率和時(shí)長(zhǎng),廠商可以采取一些激勵(lì)措施。比如,通過(guò)積分、優(yōu)惠券等方式獎(jiǎng)勵(lì)活躍用戶(hù)。結(jié)合用戶(hù)的行為數(shù)據(jù)和反饋,不斷優(yōu)化推送策略和內(nèi)容,實(shí)現(xiàn)個(gè)性化推送,提高用戶(hù)的興趣和參與度。
五、持續(xù)優(yōu)化與迭代:與時(shí)俱進(jìn)的消息推送策略

市場(chǎng)環(huán)境和用戶(hù)習(xí)慣在不斷變化,APP的消息推送策略也需要與時(shí)俱進(jìn)。通過(guò)數(shù)據(jù)分析、用戶(hù)調(diào)研等手段,了解用戶(hù)的最新需求和反饋,及時(shí)調(diào)整策略。例如,在節(jié)假日或特殊活動(dòng)期間,可以適當(dāng)增加推送頻率和內(nèi)容;而在用戶(hù)忙碌或休息時(shí)段,則應(yīng)減少打擾,確保用戶(hù)保持良好的使用感受。
通過(guò)上述五個(gè)方面的實(shí)踐和優(yōu)化,APP消息推送不僅可以實(shí)現(xiàn)與用戶(hù)的良好互動(dòng),還能有效增加用戶(hù)黏性,提高APP的活躍度和用戶(hù)滿(mǎn)意度。