極光推送數(shù)據(jù)介紹
image.png
iOS
Item | Value | 備注 |
---|---|---|
iOS目標(biāo)數(shù) | 匹配推送條件的 iOS 用戶(hù)的數(shù)量冕屯。 | 下載并激活過(guò)的 |
iOS成功數(shù) | 通知被推送到 蘋(píng)果服務(wù)器 并被 蘋(píng)果服務(wù)器 成功接收的數(shù)量瞬逊。 | 如果 device token 變更,過(guò)期或者與推送環(huán)境不匹配則不會(huì)成功净赴。 |
iOS點(diǎn)擊數(shù) | 本次蘋(píng)果服務(wù)器推送,用戶(hù)通過(guò)通知欄點(diǎn)擊的次數(shù)。 | |
iOS通知送達(dá)數(shù) | 送達(dá)到設(shè)備并展示出來(lái)的通知數(shù)量酌心。 | 與 “iOS 成功數(shù)” 區(qū)別在于是否真實(shí)送達(dá)到了設(shè)備上。該功能需借助 Service Extension 挑豌,啟用請(qǐng)參考集成指南中的 高級(jí)功能 安券。新版本已加入并能正確統(tǒng)計(jì)
|
測(cè)試:
線(xiàn)上版推送
極光通道(Android)
Item | Value | 備注 |
---|---|---|
極光 目標(biāo)數(shù) | 匹配Android推送的條件的用戶(hù)數(shù) | 1個(gè)月內(nèi)與服務(wù)器有過(guò)連接的用戶(hù)。如果超過(guò)1個(gè)月都沒(méi)有與 JPush server 產(chǎn)生任何連接氓英,那么將不向此用戶(hù)推送) |
極光 在線(xiàn)數(shù) | 消息推送時(shí)侯勉,目標(biāo)用戶(hù)在線(xiàn),通過(guò)在線(xiàn)下發(fā)的消息數(shù)铝阐。 | 用戶(hù)長(zhǎng)連接在線(xiàn)會(huì)通過(guò)在線(xiàn)下發(fā)址貌,其余用戶(hù)通恢復(fù)網(wǎng)絡(luò)后觸發(fā)離線(xiàn)消息。 |
極光 送達(dá)數(shù) | 消息送達(dá)到客戶(hù)端徘键,并且服務(wù)端確認(rèn)收到了客戶(hù)端的應(yīng)答的數(shù)量 | 包含普通Android用戶(hù)通知或者自定義消息送達(dá) |
極光 點(diǎn)擊數(shù) | 本次推送被用戶(hù)點(diǎn)擊的次數(shù)练对,針對(duì)Android通知的點(diǎn)擊。 |
線(xiàn)上版推送
總結(jié)
1吹害、iOS上6.5.1之前沒(méi)有送達(dá)數(shù)
的上報(bào)螟凭,成功數(shù)
是發(fā)出去的通知數(shù)并不一定發(fā)到了用戶(hù)手機(jī)上,到達(dá)數(shù)
才更有意義它呀。
2螺男、在新版iOS6.5.2上已加上送達(dá)數(shù)統(tǒng)計(jì),就能知道真實(shí)送達(dá)到了設(shè)備上的數(shù)目
了钟些。
3烟号、安卓上的送達(dá)
表示客戶(hù)端真正收到的,這個(gè)數(shù)據(jù)與UM
上當(dāng)天的活躍數(shù)差不多政恍。這個(gè)數(shù)肯定會(huì)比活躍數(shù)大汪拥,因?yàn)槌聊脩?hù)也可以收到
,這個(gè)數(shù)目大致代表安卓APP當(dāng)時(shí)的裝機(jī)量
4篙耗、現(xiàn)在是安卓的數(shù)據(jù)是正常的迫筑,iOS成功數(shù)太大是因?yàn)椋琲OS的裝機(jī)量為成功數(shù)
(398885)
5宗弯、真正發(fā)送成功的數(shù)目=送達(dá)數(shù)
以11月27日推送為例分析:
目前脯燃,
Android設(shè)備,10028個(gè)手機(jī)收到了推送蒙保,169人打開(kāi)了辕棚。
iOS設(shè)備,真實(shí)發(fā)出398885條通知,x個(gè)手機(jī)收到了推送逝嚎,1024人打開(kāi)了扁瓢。(x在iOS6.5.2生效)
6、通俗理解成功數(shù):能正常接收通知的設(shè)備數(shù)补君。(開(kāi)機(jī)了引几,已安裝,有網(wǎng))
APNs推送中的問(wèn)題:
當(dāng)應(yīng)用從設(shè)備卸載后挽铁,推送的消息改如何處理伟桅??
我們知道當(dāng)應(yīng)用從設(shè)備卸載后叽掘,是收不到推送消息的楣铁。但是,如何讓APNs和Provider知道不再向這臺(tái)卸載了應(yīng)用的設(shè)備推送消息呢够掠?
針對(duì)這個(gè)問(wèn)題蘋(píng)果也已經(jīng)幫我們解決了(那就是Feedback Service)民褂。它是APNS的一部分,APNs會(huì)持續(xù)的更新Feedback service的列表疯潭,當(dāng)我們的Provider將信息發(fā)給APNs服務(wù)器,APNs推送信息到我們的設(shè)備時(shí)面殖,如果這時(shí)設(shè)備無(wú)法將消息推送到指定的應(yīng)用(應(yīng)用已經(jīng)刪除)竖哩,就會(huì)向APNs服務(wù)器發(fā)送一個(gè)反饋信息,而這個(gè)信息就記錄在Feedback service中脊僚。按照這種方式相叁,Provider應(yīng)該定時(shí)的去檢測(cè)Feedback service的列表,然后刪除在自己數(shù)據(jù)庫(kù)中記錄的存在于反饋列表中的deviceToken辽幌,從而不再向這些設(shè)備發(fā)送推送信息增淹。連接Feedback service的過(guò)程同樣使用長(zhǎng)連接的方式,連接上后乌企,直接接收由APNs傳輸給我們的反饋列表虑润,傳輸完成后斷開(kāi)連接,然后我們根據(jù)這個(gè)最新的反饋列表在更新我們自己的數(shù)據(jù)庫(kù)加酵,刪除那些不再需要推送信息的設(shè)備的deviceToken拳喻。
iOS 客戶(hù)端集成極光送達(dá)數(shù)
下載SDK將下載的SDK里面的兩個(gè)文件導(dǎo)入工程中:
SDK里需要的文件
- 1、將 jpush-extension-ios-xxx.a 和 JPushNotificationExtensionService.h 兩個(gè)文件引入到您的 Service Extentsion 工程中猪腕。
- 2冗澈、添加 Framework:libz.tbd 和 libresolv.tbd。
- 3陋葡、在AppDelegate.m引入#import "JPushNotificationExtensionService.h"http://統(tǒng)計(jì)到達(dá)率
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[JPushNotificationExtensionService jpushSetAppkey:jspushAppKey];
[JPushNotificationExtensionService setLogOff];//上線(xiàn)時(shí)關(guān)閉日志
}
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
...
completionHandler();
// 上報(bào)送達(dá)
[JPushNotificationExtensionService jpushReceiveNotificationRequest:notification.request with:^{}];
}
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler{
...
completionHandler();
// 上報(bào)送達(dá)
[JPushNotificationExtensionService jpushReceiveNotificationRequest:response.notification.request with:^{}];
}
- 4亚亲、打包上線(xiàn)