Android GCM交付监控

rus*_*t0R 24 testing android google-cloud-messaging

我正在开发用于电子邮件服务的移动客户端.其中一个关键功能是有关邮箱中新邮件的通知.根据GCM架构指南的建议,我们使用"Pusher",负责在收到新消息后向Google服务器发送消息.问题是测试过程报告了向设备发送推送通知的严重问题.

所以问题是:是否存在监控推送通知交付百分比,时间等平均统计数据的方法?或者也许有人在如何设置测试环境以便有效监控应用程序工作期间丢失的通知数量方面有经验?

所有与改进的Android GCM体验相关的"提示和技巧"都是受欢迎的.

Nit*_*thi 21

谷歌称其GCM服务器的处理时间不到一毫秒.请点击以下链接,了解Google开发者关于GCM的精彩视频.它是可信的因为我现在可以立即使用我公司的服务器到我的设备获得推送通知.

http://www.youtube.com/watch?v=YoaP6hcDctM

他们不保证交付,但他们会尝试最多4周的时间来发送消息,具体取决于您在发送给Google GCM服务器的消息中设置的持续时间,以及您是否希望Google保留数据以便最终传递消息在设备离线时,如果要传递消息,则设备到设备.

但是,在某些情况下,GCM消息不会被传递.

  1. 在帐户和同步设置下未选中后台数据.
  2. 在4.0.4.(ICS)之前,设备上的Google帐户是GCM的先决条件.也许,用户没有登录他们的Google帐户.


She*_*tib 6

唯一的方法是使用收到的推送的时间戳向您的服务器报告.

你也可以

  1. 在GCM服务中收到通知后,向服务器报告.要实现,您必须为推送通知添加推送ID,并将推送数据与推送数据一起发送.客户端必须在收到消息后获取时间戳,并将其与通知ID一起发回.一个简单的PHP脚本可以完成(当你发送推送通知时,你设置发送通知的时间,一旦它收到设备的时间戳,它设置接收通知.这归结为数据库中的两个字段(标记为在这种方法中,您可能不太关心错误,因为设备在收到通知时很可能会有连接,因此它对您的服务器的请求将会通过.

  2. 保留应用中收到的通知列表及其时间戳.完成同步后,在同步操作中发送此数据.这最终是相同的方法,但您的服务器数据将不像第一种方法那样实时.但是,客户端不需要额外请求,但保存收到的通知及其时间戳是.

总而言之,您必须使用notification-id及其发送时间(发送通知)及其接收时间(接收通知)来跟踪发送的通知.简单的查询将帮助您分析此数据.


Juu*_*nen 5

Google已添加支持,以便您可以从Cloud Connection Server(CCS)接收送达回执:

当设备确认收到CCS发送的消息时,您可以使用上游消息传递来获取送达回执(从CCS发送到第三方应用服务器).

要启用此功能,第三方应用服务器发送给CCS的消息必须包含名为"delivery_receipt_requested"的字段.当此字段设置为true时,CCS会在设备确认收到特定邮件时发送送达回执.

https://developer.android.com/google/gcm/ccs.html#receipts


rus*_*t0R 0

从那时起,谷歌就为开发人员提供了先进的监控工具。

Gcm 诊断工具可在 Google Play 开发者控制台中使用。其他信息在这里https://support.google.com/googleplay/android-developer/answer/2663268

因此,您可以通过注册令牌轻松跟踪特定消息状态。