消息推送一個好功能,90%的開發者都不知道。

1.個推報表簡介

推送數據報表主要用於統計某一條消息的具體下發狀況。單條推送消息下發用戶總量有多少,其中成功推送到手機的數量有多少,又有多少用戶看到了彈窗通知、點擊了彈窗通知並打開了應用。經過消息推送報表能夠很直觀地看到推送消息流轉狀況、消息下發到達成功率、用戶對消息的點擊狀況等。html

固然推送報表不僅僅只有上述這一種維度,個推的推送統計主要分了三個維度:消息推送維度、APP推送維度、APP用戶維度。java

  • 消息推送維度:針對單個消息推送,提供單條消息推送的下發成功數,手機到達數,彈窗展現數等
  • APP推送維度:針對應用單日全部消息推送,單日全部任務的下發成功數,手機到達數,彈窗展現數等
  • APP用戶維度:針對應用單日用戶數據,應用單日新增用戶數、在線用戶數等

上述三個維度的推送數據統計則是經過個推開發者中心服務端SDK集成接口來進行輸出。個推開發者中心提供詳細的可視化圖表,服務端SDK集成接口則提供服務端的數據記錄和統計。二者的數據都是一致的,但功能和數據類型上有些許不一樣,使用者能夠根據本身需求選用不一樣的方式。下面將分別從個推開發者中心服務端SDK集成接口兩方面對個推報表進行闡述。bash

2.開發者中心

登陸個推開發者中心,在產品與服務界面選擇個推消息推送消息推送後進入了應用列表頁面,選擇相應的應用,點擊數據報表便可在數據統計欄目中看到各個維度的推送統計數據。網絡

2.1 推送記錄

推送記錄中保存了全部的歷史推送,經過點擊 "推送數據" 能夠查詢該推送的任務報表狀況。 優化

在這裏插入圖片描述

2.2 推送數據(消息推送維度)

針對單個消息推送,提供報表數據。ui

  • 百日聯網用戶數:最近百日全部打開過APP的用戶,能夠理解爲預計能夠下發的用戶總量。
  • 成功下發數:消息下發的實際用戶量。APP在手機後臺中存活纔會進行下發,不然不會進行消息下發。
  • 到達數:成功下發到手機的消息數。到達手機後由於網絡等緣由,沒法回執到服務端,因此成功下發數會略大於到達數。
  • 展現數:手機彈窗展現消息的數量。部分用戶可能對應用設置了禁止彈窗,因此到達數會大於展現數。
  • 點擊數:手機用戶點擊彈窗通知的數量
    在這裏插入圖片描述
    上圖中展現的報表數據是個推+其餘渠道的累加數據,點擊詳情便可看到各個渠道下發統計。其中的 "-" 表示不支持該字段報表
    在這裏插入圖片描述

2.3 推送統計(APP推送維度)

推送統計從APP推送維度出發,對APP當天全部任務的下發數據進行統計。舉個例子,APP開發者15號下發的消息,可能用戶16號打開手機纔會收到,可是這次數據仍會統計到15號的推送統計中。針對這種狀況,個推會對APP統計數據在三天內予以持續更新。因此APP推送統計數據會在以後的三天持續更新。日聯網用戶數:當天打開應用的用戶數spa

  • 成功下發數、到達數、展現數、點擊數:和上述一致

點擊展開也能看到各個渠道的App維度統計。 code

在這裏插入圖片描述

2.5 實時性和準確性

建立一個新的推送任務,可以實時地看到推送的整體趨勢,趨勢數據會進行實時更新。 cdn

在這裏插入圖片描述

已完成推送的任務報表數據,爲何到了次日數據會發生變化? 個推內部推送數據報表分紅兩種:實時報表和統計報表。次日統計報表會對前一天的實時報表進行修正。server

實時報表以實時性爲主,具備實時更新的功能。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開發者們提供更加完善的推送數據統計支持。

相關文章
相關標籤/搜索