首页 > 解决方案 > Firebase 推送通知事件跟踪未关闭或打开

问题描述

我们正在使用 firebase 通知,并成功发送了数千条推送通知。我们可以通过firebase跟踪事件在前台接收、非前台接收、关闭和打开。在仅分析 android 设备的数据时(因为 FCM 不支持在 iOS 上关闭和接收不前台)我对结果数据有几个问题:

  1. 如果事件是 notification_foreground,通知是否被视为“打开”?
  2. 将收到的所有通知 (notification_foreground + notification_receive (background)) 相加并减去已打开 (notification_open) 和已关闭 (notification_dismiss) 的项目时,仍有大量通知下落不明。收到通知但未打开或取消的通知可能是什么原因?
  3. 对 #2 的后续操作,如果通知已成功发送,但在通知打开或关闭之前的生存时间 TTL 已过期,通知是否已从设备中删除并且不被视为打开或关闭?

更新:如果它对其他人有帮助,这是我从 firebase 支持中得到的回复

收到的通知表示应用程序已收到数据消息或通知消息。当接收 Android 设备安装了 FCM SDK 18.0.1 或更高版本时,此数据仅适用于 Android 设备。您还应该记住,received 和 open 是不同的参数。用户可以收到消息但也不能打开它,因此禁用通知也会影响指标。如果您正在为消息设置 TTL,那么如果在设置的时间后没有打开消息,它将终止该消息。

另请记住,当您收到来自 FCM 的“成功”响应时,这并不意味着消息已成功传递到设备。相反,这意味着此消息已被成功接受以进行传递。FCM 消息的速度和成功受很多因素的影响。这是一个概述:

如果 FCM 没有返回任何错误,并且 status.firebase.google.com 上没有发布 FCM 中断,则交付率低通常是由于客户端设备出现问题:用户的设备已关闭、离线或无法连接到 FCM。应用程序在收到通知时崩溃。崩溃报告 SDK 是检测这种特定于平台的省电功能(例如 Android 打盹)的最大帮助,可以防止您的应用被唤醒此外,FCM 配置可能会影响交付能力:选择的优先级和生命周期会影响您的通知是否是显示,即使它已交付给设备。如果可折叠消息尚未传送到设备,则它们可能会被新消息替换。请在此处了解更多信息。 消息的生命周期文档中的部分提供了更多背景知识,如果您有时间,这对阅读很有帮助。

标签: firebase-notifications

解决方案


推荐阅读