初接觸極光推送的使用者,爲了衡量消息推送的質量。常常會糾結到消息的"送達率"這個概念.那麼究竟什麼是消息送達率呢?或者如何正確理解消息的送達狀況呢?緩存
先來看與消息送達相關的幾個基本概念:服務器
iOS 目標用戶數:匹配推送條件的 iOS 用戶的數量。網絡
iOS消息推送成功數:推送到 APNS 並被 APNS 成功接收的數量。若是 device token 變動,過時或者與推送環境不匹配則不會成功。spa
Android 目標用戶數:匹配推送的條件的Android 用戶數(1個月內與服務器有過鏈接的用戶。若是超過1個月都沒有與 JPush server 產生任何鏈接,那麼將不向此用戶推送)。orm
Android 在線推送數:消息推送時,目標用戶在線,經過在線下發的消息數。Android 用戶長鏈接在線會經過在線下發,其他用戶通恢復網絡後觸發緩存的離線消息。移動應用開發
Android消息送達數:消息送達到客戶端,而且服務端確認收到了客戶端的應答的數量。server
點擊數:本次推送被用戶點擊的次數。token
如圖所示,最外圈的 Total 表明所有的註冊用戶,即應用建立依賴全部的註冊用戶數。接下來是目標用戶(target)全部的消息推送都會有一個目標用戶,這個目標用戶是指符合條件的用戶,系統會根據推送條件匹配出推送的目標用戶。即便做爲目標用戶也可能包括已經卸載了,或者之後根本不聯網的用戶,由於JPush 系統是沒法獲取這些狀態的。開發
每一次消息推送都會有一個送達數,當一次消息推送產生的時候,目標用戶中會有一些當時在線和一些不在線的。系統會根據用戶的狀態當即向在線的用戶進行推送, 當時不在線的用戶系統會爲其保存離線消息,消息有效期以內用戶恢復網絡後,系統會將離線消息發送到用戶客戶端。get
針對用戶的在線和離線狀況,瞭解了一個消息的推送可能後,再來看「送達率」:
在線送達率=在線用戶中成功接收的數量/在線用戶數
離線送達率 = 離線消息送達數/離線消息下下發數。
只有這個送達率纔是真正的送達率,至於有一部分用戶雖然是目標用戶,可是推送後一直離線或者已經卸載了應用,系統是不可能把消息發送給他們的。因此若是計算送達率的時候把這部分用戶計算上顯然沒法說明什麼,並且這部分用戶隨着一個應用的時間愈來愈長,數值可能會愈來愈大。
若是是廣播推送,目標用戶數比較多,這個真正的送達比率基本上是固定在98%左右。爲何這麼說,由於能夠影響真是送達率的緣由主要是用戶網絡聯通的穩定性,可能發送的時候用戶狀態仍是在線,當消息發送的時候用戶已經處於離線狀態了,這部分用戶就須要恢復鏈接的時候接收離線消息了。
做爲一個極光推送的使用者,經過什麼數值衡量消息的推送狀況呢? 在線用戶數,沒錯就是在線用戶數。由於一條消息,從產生的那一個時刻一直到消息有效期超期,在這段期間在線或者登陸過的用戶纔會收到消息。例:通常一條廣播消息的默認有效期爲24小時,那麼這條消息最終的送達數量應該略小於當天的天在線用戶數,爲何小因而由於有一部分在線用戶數是消息推送後才註冊的新用戶,這部分用戶是不會收到以前的消息的。
稍後極光推送會開放每條消息發送時的在線推送數統計。
「在線用戶數」 纔是能夠用來衡量推送成功數的值。 「消息送達 ➗ 目標總數」並非真正的送達率,這個比率沒有太多的參考意義。真正的送達率實際上是一個比較穩定的值。
做者:極光推送產品總監 呂鑫
極光推送(JPush)是獨立的第三方雲推送平臺,核心團隊由原華爲、騰訊、新浪、Oracle等前員工爲班底組建,致力於爲全球移動應用開發者提供專業、高效的移動消息推送服務。
極光推送當前已爲超過30000家企業及我的開發商,60000多款移動應用提供穩定的毫秒級送達移動消息推送方案,服務總用戶數已經超過7億,覆蓋近4億Android和iOS終端,日活躍推送用戶超過7000萬。
免費體驗官網地址:www.jpush.cn 400-612-5955