Google Tag Manager集成报错:__fm_validateEventData函数调用内部错误
问题解决:Firebase Analytics事件在GTM中报错参数未定义
问题详情
使用Firebase Analytics发送SELECT_CONTENT事件并携带item_id参数,代码如下:
firebaseAnalytics = FirebaseAnalytics.getInstance(this) val bundle = Bundle() bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "my_item_id") firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle)
触发后出现报错:
Event does not have parameter "item_id" and no default value was defined. Returning "undefined". Event does not have parameter "test1" and no default value was defined. Returning "undefined". Internal error - Function call: __fm_validateEventData Apply TypeError: object has no charAt property
该事件在演示项目中可正常运行。
排查与解决步骤
1. 检查GTM容器的参数映射配置
- 登录GTM后台,找到对应
SELECT_CONTENT事件的触发器和变量配置 - 确认是否为
item_id创建了正确的Firebase参数变量(选择“Firebase Event Parameter”类型,参数名填写item_id) - 检查标签配置中引用的参数变量是否拼写正确,避免出现类似
test1这类错误参数名的引用
2. 对比演示项目的GTM配置差异
- 导出演示项目的GTM容器配置,和当前项目的配置逐项对比,重点查看事件参数的定义、变量关联规则
- 确认当前项目的GTM容器已发布最新配置,而非停留在草稿状态
3. 验证Firebase与GTM的关联状态
- 登录Firebase后台,进入“集成”页面,检查当前项目与目标GTM容器的关联是否生效
- 确保GTM容器的数据源已正确绑定当前Firebase项目,而非演示项目的数据源
4. 清除缓存并启用GTM预览模式测试
- 清除App缓存或重装App,避免旧的GTM配置残留
- 开启GTM的预览模式,实时查看事件发送时的参数捕获情况,确认
item_id是否被正常识别
5. 排查GTM自定义校验逻辑
- 报错中的
__fm_validateEventData属于自定义验证函数,检查GTM中是否存在自定义模板或JS代码对事件参数做了额外校验 - 若有自定义校验逻辑,确认是否错误强制要求
item_id或test1参数存在,且未设置合理的默认值
内容的提问来源于stack exchange,提问作者Harish Gyanani
相关产品推荐
相关产品推荐

