如何通过FCM追踪iOS和Android推送通知的接收情况与数量?
iOS与Android推送通知接收追踪方案
1. 获取带通知信息的接收统计数据
要实现这个需求,核心是客户端主动上报接收事件:
- 服务器下发推送时,给每条通知分配唯一标识(比如
notification_id),同时携带需要统计的通知元数据(如类型、标题等)。 - iOS/Android端在接收到通知的回调逻辑里,把设备ID、通知唯一标识、通知元数据一起上报到你的统计服务端。
- 后端通过聚合这些上报数据,就能按通知维度统计接收数量,还能关联对应的通知信息。
- 注意:要做上报失败的重试机制,比如本地缓存未上报的事件,待网络恢复后补发,避免统计数据遗漏。
2. iOS端确认通知接收的方法(无论用户是否点击)
分两种场景处理:
- App前台运行时:
实现UNUserNotificationCenterDelegate的userNotificationCenter(_:willPresent:withCompletionHandler:)方法,这个方法会在通知到达时立即触发,不管用户是否点击,直接在这里上报接收事件即可。 - App后台/未启动状态:
普通通知在这种状态下,iOS系统不会唤醒App,除非你在推送payload里添加content-available: 1(开启静默推送能力)。添加后,系统会短暂唤醒App,你可以通过AppDelegate的application(_:didReceiveRemoteNotification:fetchCompletionHandler:)(iOS 13之前)或SceneDelegate的scene(_:didReceiveRemoteNotification:fetchCompletionHandler:)(iOS 13+)捕获通知,完成上报。注意:开启
content-available需要在开发者后台配置对应的权限,且payload大小不能超过4KB限制。
内容的提问来源于stack exchange,提问作者Ankit Vyas
相关产品推荐
相关产品推荐

