极光推送数据介绍
iOS
Item | Value | 备注 |
---|---|---|
iOS目标数 | 匹配推送条件的 iOS 用户的数量。 | 下载并激活过的 |
iOS成功数 | 通知被推送到 苹果服务器 并被 苹果服务器 成功接收的数量。 | 如果 device token 变更,过期或者与推送环境不匹配则不会成功。 |
iOS点击数 | 本次苹果服务器推送,用户通过通知栏点击的次数。 | |
iOS通知送达数 | 送达到设备并展示出来的通知数量。 | 与 “iOS 成功数” 区别在于是否真实送达到了设备上。该功能需借助 Service Extension ,启用请参考集成指南中的 高级功能 。新版本已加入并能正确统计
|
测试:
极光通道(Android)
Item | Value | 备注 |
---|---|---|
极光 目标数 | 匹配Android推送的条件的用户数 | 1个月内与服务器有过连接的用户。如果超过1个月都没有与 JPush server 产生任何连接,那么将不向此用户推送) |
极光 在线数 | 消息推送时,目标用户在线,通过在线下发的消息数。 | 用户长连接在线会通过在线下发,其余用户通恢复网络后触发离线消息。 |
极光 送达数 | 消息送达到客户端,并且服务端确认收到了客户端的应答的数量 | 包含普通Android用户通知或者自定义消息送达 |
极光 点击数 | 本次推送被用户点击的次数,针对Android通知的点击。 |
总结
1、iOS上6.5.1之前没有送达数
的上报,成功数
是发出去的通知数并不一定发到了用户手机上,到达数
才更有意义。
2、在新版iOS6.5.2上已加上送达数统计,就能知道真实送达到了设备上的数目
了。
3、安卓上的送达
表示客户端真正收到的,这个数据与UM
上当天的活跃数差不多。这个数肯定会比活跃数大,因为沉默用户也可以收到
,这个数目大致代表安卓APP当时的装机量
4、现在是安卓的数据是正常的,iOS成功数太大是因为,iOS的装机量为成功数
(398885)
5、真正发送成功的数目=送达数
以11月27日推送为例分析:
目前,
Android设备,10028个手机收到了推送,169人打开了。
iOS设备,真实发出398885条通知,x个手机收到了推送,1024人打开了。(x在iOS6.5.2生效)
6、通俗理解成功数:能正常接收通知的设备数。(开机了,已安装,有网)
APNs推送中的问题:
当应用从设备卸载后,推送的消息改如何处理??
我们知道当应用从设备卸载后,是收不到推送消息的。但是,如何让APNs和Provider知道不再向这台卸载了应用的设备推送消息呢?
针对这个问题苹果也已经帮我们解决了(那就是Feedback Service)。它是APNS的一部分,APNs会持续的更新Feedback service的列表,当我们的Provider将信息发给APNs服务器,APNs推送信息到我们的设备时,如果这时设备无法将消息推送到指定的应用(应用已经删除),就会向APNs服务器发送一个反馈信息,而这个信息就记录在Feedback service中。按照这种方式,Provider应该定时的去检测Feedback service的列表,然后删除在自己数据库中记录的存在于反馈列表中的deviceToken,从而不再向这些设备发送推送信息。连接Feedback service的过程同样使用长连接的方式,连接上后,直接接收由APNs传输给我们的反馈列表,传输完成后断开连接,然后我们根据这个最新的反馈列表在更新我们自己的数据库,删除那些不再需要推送信息的设备的deviceToken。
iOS 客户端集成极光送达数
下载SDK将下载的SDK里面的两个文件导入工程中:
- 1、将 jpush-extension-ios-xxx.a 和 JPushNotificationExtensionService.h 两个文件引入到您的 Service Extentsion 工程中。
- 2、添加 Framework:libz.tbd 和 libresolv.tbd。
- 3、在AppDelegate.m引入#import "JPushNotificationExtensionService.h"//统计到达率
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[JPushNotificationExtensionService jpushSetAppkey:jspushAppKey];
[JPushNotificationExtensionService setLogOff];//上线时关闭日志
}
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler {
...
completionHandler();
// 上报送达
[JPushNotificationExtensionService jpushReceiveNotificationRequest:notification.request with:^{}];
}
- (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)(void))completionHandler{
...
completionHandler();
// 上报送达
[JPushNotificationExtensionService jpushReceiveNotificationRequest:response.notification.request with:^{}];
}
- 4、打包上线