前言
前段時間內部一個應用對接了極光推送,開發人當然是我咯,根據多年對極光的認可這塊對接還是很有信心的。畢竟是內部系統,送達率要求還是很高的,業務實時性需要,所以產品這塊非常看重送達率,我對他說極光的實時送達率很客觀的,有實驗室數據,但是他還是希望我幫他提供一個可靠的數據,下邊是我對實時送達率的一個分析。
當然,針對推送作爲開發的我更關注整體送達率(準確送達率),文中也有提到,最簡單可靠的方式就是提高app的存活率。
先了解三個概念
-
目標數:一個月內與極光服務器有過連接的用戶(設備)。
這部分數據包含:app卸載的,app在線的,app離線的(未啓動或者未開啓推送的)
所以數據量非常龐大,我們的業務受節假日影響,有相關波動,所以這個維度比較虛。 -
在線數:消息推送時目標用戶在線。
這部分數據指得是實時與極光服務器保持常連接的用戶或設備數。 -
送達數:消息發送到達客戶端的數量。
這部分數據包含:在線消息數和離線消息數,其中離線消息是默認保存一天的,也就是說一天只內只要啓動應用開啓推送都可以接收到的。
準確的測算方式
最準確的測算極光送達率方法應該按照在“某個時間段”並且“單一發送消息”和“大量用戶”支撐,遵循以下公式:
rate = (在線接收數+離線接收數)/ 有效目標數
有效目標數指的是一天之內啓動應用的用戶數,目前極光推送官方沒有離線接收數和有效目標數這兩維度,並且我們的消息是零零散散發送的,這就給我們測算造成了一定困難。
之前也是因爲沒有離線接收這個數據,當時用的是送達數/目標數,測算出主項目那邊大概是30%,內部項目我測算了一下佔到55%,內部項目雖然客觀,但這個數據不是我們想要的。
根據目前極光給出的數據維度,只能按照某個短時間內測算實時送達率,即:送達數/在線數,忽略掉離線的那部分。
實例
前段時間內部項目有新版本需要上線,推送了一條消息給全國門店:
第一部分是瞬間全國的推送(包含干擾部分),第二部分是相鄰時間段其他零星消息的干擾情況,大概一分鐘是接收30條。
針對全國的推送具體情況如下:
因此根據全國推送並去除干擾消息,得出實時極光送達率:
rate = (510+479+357-30-零星離線接收的)/ (483+466+334) 約= 100%
目前是測算實時在線到達率結果是可觀的,離線的部分後邊可以看看能否通過其他渠道去了解。
這裏也有人有相關的提問:https://community.jiguang.cn/question/35820