firebase-notifications - Firebase 推送通知事件跟踪未关闭或打开
问题描述
我们正在使用 firebase 通知,并成功发送了数千条推送通知。我们可以通过firebase跟踪事件在前台接收、非前台接收、关闭和打开。在仅分析 android 设备的数据时(因为 FCM 不支持在 iOS 上关闭和接收不前台)我对结果数据有几个问题:
- 如果事件是 notification_foreground,通知是否被视为“打开”?
- 将收到的所有通知 (notification_foreground + notification_receive (background)) 相加并减去已打开 (notification_open) 和已关闭 (notification_dismiss) 的项目时,仍有大量通知下落不明。收到通知但未打开或取消的通知可能是什么原因?
- 对 #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 配置可能会影响交付能力:选择的优先级和生命周期会影响您的通知是否是显示,即使它已交付给设备。如果可折叠消息尚未传送到设备,则它们可能会被新消息替换。请在此处了解更多信息。 消息的生命周期文档中的部分提供了更多背景知识,如果您有时间,这对阅读很有帮助。
解决方案
推荐阅读
- python - 取一段时间内总和的平均值
- c# - 服务参考:HTTP 状态 404 - 元数据包含无法解析的参考
- android - Firebase 测试实验室使用相同的上传 APK 重新运行测试
- javascript - 如果未填写命令/特定输入,则禁用所有其他输入
- python - 如何使用 imsave 绘图添加轴?
- c# - 如何释放 Excel 对象
- azure - 在同一浏览器会话中为多个应用绕过 MFA
- java - Vaadin flow Grid 项目重复行
- reactjs - 当 Object 不在 DOM 中时,如何修复无法读取 React 钩子中 null 的 querySelector
- shopify - 脚本编辑器:如何从 line_item 获取产品名称