消息推送一個好功能,90%的開發者都不知道 頂
- 2019 年 10 月 8 日
- 筆記
1.個推報表簡介
推送數據報表主要用於統計某一條消息的具體下發情況。單條推送消息下發用戶總量有多少,其中成功推送到手機的數量有多少,又有多少用戶看到了彈窗通知、點擊了彈窗通知並打開了應用。通過消息推送報表可以很直觀地看到推送消息流轉情況、消息下發到達成功率、用戶對消息的點擊情況等。
當然推送報表不單單只有上述這一種維度,個推的推送統計主要分了三個維度:消息推送維度、APP推送維度、APP用戶維度。
- 消息推送維度:針對單個消息推送,提供單條消息推送的下發成功數,手機到達數,彈窗展示數等
- APP推送維度:針對應用單日所有消息推送,單日所有任務的下發成功數,手機到達數,彈窗展示數等
- APP用戶維度:針對應用單日用戶數據,應用單日新增用戶數、在線用戶數等
上述三個維度的推送數據統計則是通過個推開發者中心和服務端SDK集成介面來進行輸出。個推開發者中心提供詳細的可視化圖表,服務端SDK集成介面則提供服務端的數據記錄和統計。兩者的數據都是一致的,但功能和數據類型上有些許不同,使用者可以根據自己需求選用不同的方式。下面將分別從個推開發者中心和服務端SDK集成介面兩方面對個推報表進行闡述。
2.開發者中心
登錄個推開發者中心,在產品與服務介面選擇個推消息推送消息推送後進入了應用列表頁面,選擇相應的應用,點擊數據報表即可在數據統計欄目中看到各個維度的推送統計數據。
2.1 推送記錄
推送記錄中保存了所有的歷史推送,通過點擊 "推送數據" 可以查詢該推送的任務報表情況。

2.2 推送數據(消息推送維度)
針對單個消息推送,提供報表數據。
- 百日聯網用戶數:最近百日所有打開過APP的用戶,可以理解為預計可以下發的用戶總量。
- 成功下發數:消息下發的實際用戶量。APP在手機後台中存活才會進行下發,否則不會進行消息下發。
- 到達數:成功下發到手機的消息數。到達手機後因為網路等原因,無法回執到服務端,所以成功下發數會略大於到達數。
- 展示數:手機彈窗展示消息的數量。部分用戶可能對應用設置了禁止彈窗,所以到達數會大於展示數。
- 點擊數:手機用戶點擊彈窗通知的數量

上圖中展示的報表數據是個推+其他渠道的累加數據,點擊詳情即可看到各個渠道下發統計。其中的 "-" 表示不支援該欄位報表

2.3 推送統計(APP推送維度)
推送統計從APP推送維度出發,對APP當天所有任務的下發數據進行統計。舉個例子,APP開發者15號下發的消息,可能用戶16號打開手機才會收到,但是此次數據仍會統計到15號的推送統計中。針對這種情況,個推會對APP統計數據在三天內予以持續更新。所以APP推送統計數據會在之後的三天持續更新。日聯網用戶數:當天打開應用的用戶數
- 成功下發數、到達數、展示數、點擊數:和上述一致
點擊展開也能看到各個渠道的App維度統計。

2.5 實時性和準確性
創建一個新的推送任務,能夠實時地看到推送的總體趨勢,趨勢數據會進行實時更新。

已完成推送的任務報表數據,為什麼到了第二天數據會發生變化? 個推內部推送數據報表分成兩種:實時報表和統計報表。第二天統計報表會對前一天的實時報表進行修正。
實時報表以實時性為主,具有實時更新的功能。APP開發者如果想查看當天下發的任務數據,可以選擇實時報表。。相比起實時報表,統計報表更加註重準確性,旨在通過統計分析,對數據進行篩選、去重,得到最終的準確報表。APP開發者一般隔天就能查詢到準確的報表數據。
3.服務端SDK集成介面
在官網提供的SDK Demo中就有示常式序,做了很好的封裝,返回結果也做了預處理。。APP開發者只需要傳入簡單的參數即可完成報表查詢, SDK介面提供了一些開發者平台中沒有的數據統計服務,如用戶數據中的最近24小時在線趨勢統計、根據用戶條件查詢用戶數等。 詳細可參考 文檔中心和Java服務端集成文檔
/** * 推送結果相關demo */ public class PushResultDemo { public static IGtPush gtPush = new IGtPush(APPKEY, MASTERSECRET); /** * 獲取推送結果,可查詢消息有效可下發總數,消息回執總數,用戶點擊數等結果。 * @param taskId */ private static void getPushResultByTaskId(String taskId) { Map<String, Object> ret = gtPush.getPushResult(taskId).getResponse(); System.out.println(JSON.toJSONString(ret)); } /** * 獲取應用單日的推送數據(推送數據包括:發送總數,在線發送數,接收數,展示數,點擊數)(目前只支援查詢1天前的數據) */ private static void queryAppPushDataByDate(String date) { IQueryResult ret = gtPush.queryAppPushDataByDate(APPID, date); Map<String, Object> res = ret.getResponse(); System.out.println(JSON.toJSONString(ret)); for(Map.Entry<String,Object> entry: res.entrySet()){ System.out.println(entry.getKey()+" "+entry.getValue()); } } /** * 通過介面查詢當前時間一天內的在線數(十分鐘一個點,一小時六個點) */ private static void getLast24HoursOnlineUserStatistics () { IQueryResult queryResult = push.getLast24HoursOnlineUserStatistics(APPID); System.out.println(queryResult.getResponse().get("onlineStatics")); } /** * 獲取某個應用單日的用戶數據(用戶數據包括:新增用戶數,累計註冊用戶總數,在線峰值,日聯網用戶數) 註:目前可查詢1天前的數據 */ private static void queryAppUserDataByDate(String date) { IQueryResult ret = push.queryAppUserDataByDate(APPID, date); System.out.println(ret.getResponse().toString()); Map<String, Object> data = (Map<String, Object>) ret.getResponse().get("data"); System.out.println("新用戶註冊總數:"+data.get("newRegistCount")); System.out.println("用戶註冊總數:"+data.get("registTotalCount")); System.out.println("活躍用戶數:"+data.get("activeCount")); System.out.println("在線用戶數:"+data.get("onlineCount")); } }
小結
推送數據報表是個推消息推送服務中的重要組成成分,通過推送報表可以直觀、準確地了解消息觸達用戶的詳細情況,對推送數據一目了然。個推將針對報表服務不斷優化,為APP開發者們提供更加完善的推送數據統計支援。