Firebase自动上报Google Analytics的FCM事件缺少参数问题咨询
背景
基于Google Analytics for Firebase SDK的移动应用,FCM相关的notification_dismiss、notification_foreground、notification_open、notification_receive四类事件会自动上报至GA,且应携带message_name、message_time等指定参数。但通过Firebase Admin SDK发送消息时,这四类事件能正常触发,却缺失所有指定参数;Firebase控制台推送时参数显示正常,且Debug View能观测到API发送的事件,说明并非完全无法触发事件。
1. 后端发送FCM消息时参数缺失的原因
Firebase控制台发送通知时,会自动在消息payload中注入GA所需的内部元数据字段(如google.c.a.c_id、google.c.a.c_l等),这些字段是SDK自动填充message_name、message_time等参数的核心依据。
而通过Admin SDK(或FCM REST API)发送消息时,默认不会添加这些元数据。只有手动在消息的notification或data段传入对应标识信息,或者指定analytics_label这类配置字段,SDK才能解析并填充缺失的参数。
另外要注意:自动上报GA事件的逻辑仅针对通知消息生效,如果发送的是纯数据消息,即便触发了应用内逻辑,也不会自动填充这些参数。
2. 官方依据说明
官方文档明确:Firebase控制台发送的通知会自动关联GA事件并填充完整参数;但通过API(包括Admin SDK)发送的通知,必须手动配置相关字段才能触发完整的GA参数上报。
官方文档提到,使用API发送消息时,若要让GA捕获完整的事件参数,需在请求中添加analytics相关配置(比如message.analytics_label),否则SDK仅能触发基础事件,无法填充message_name等参数。
3. 配置、Bug、授权问题排查结论
- 配置问题:无法排除。需检查:
- 前端rnfirebase是否正确集成Analytics与FCM模块,且启用了Analytics自动收集
- 后端发送消息时是否指定了
notification字段(而非仅data字段),是否添加了analytics_label等必要标识
- Bug问题:基本可排除。控制台发送正常,且多版本Admin SDK、rnfirebase均复现问题,说明并非版本Bug,更可能是API使用方式不符合要求;若手动添加正确字段仍不生效,再排查RN Firebase适配问题
- 授权问题:完全可排除。事件能正常上报至Debug View,说明Admin SDK具备FCM发送权限,前端Analytics上报权限也正常;若授权异常,事件根本不会出现在Debug View中
内容的提问来源于stack exchange,提问作者TotoPoney

