为何dataLayer.push不同event事件部分触发Google Analytics请求部分不触发
问题原因说明
该现象由Google Tag Manager(GTM)的触发逻辑决定,和dataLayer本身的基础机制无关:
- dataLayer本质是GTM用来存储、传递数据的全局JS数组,单独执行
dataLayer.push()操作不会主动发送任何网络请求,所有请求都是GTM匹配到对应触发器后,触发你预先配置的第三方标签才会发送。
为什么event: 'click'会触发GA上报请求
click属于GTM内置支持的事件类型:
- 如果你在GTM容器中配置过Google Analytics(GA)的点击事件上报标签,并且绑定了GTM内置的「所有点击」「仅链接点击」类触发器,当你推送
event: 'click'时,GTM会匹配到对应的触发器,触发GA标签执行,自然就会发起到https://www.google-analytics.com/collect的上报请求。
为什么event: 'test'不会触发任何请求
test是自定义事件名称:
- 如果你没有在GTM后台为这个事件名配置对应的自定义事件触发器,也没有把需要执行的标签(比如GA事件上报标签)绑定到这个触发器上,GTM收到这个事件推送后找不到任何需要触发的标签,自然不会发送任何网络请求。
自定义事件触发配置方法
如果你需要让test事件也触发GA上报,按以下步骤操作即可:
- 进入对应GTM容器后台,新建「自定义事件」类型的触发器,事件名称字段填写
test,触发条件选择符合你需求的范围(一般选「所有自定义事件」即可) - 新建对应版本的GA事件上报标签,填写需要上报的事件参数、跟踪ID等信息,将标签的触发条件绑定为上一步创建的
test自定义事件触发器 - 提交并发布GTM容器版本后,再执行
dataLayer.push({'event': 'test'});即可触发对应的上报请求。
注意:自定义事件的名称大小写完全敏感,触发器配置的事件名必须和你push到dataLayer里的event值完全一致才能正常触发。
内容的提问来源于stack exchange,提问作者Aya
相关产品推荐
相关产品推荐

