如何在Google Tag Manager中从Data Layer提取Scramble_ip事件的hash值
结论
可以通过事件名称匹配定位取值,不需要依赖固定的事件序号。
两种适用场景的操作方法
场景1:在Scramble_ip事件触发时同步取值
这是最简单的方案,不需要写自定义代码:
- 首先在GTM中新建「自定义事件」触发器,事件名称填写
Scramble_ip,触发条件选「所有自定义事件」 - 新建「数据层变量」,变量名称填写
hash,不需要填写数据层版本号,也不需要加任何序号 - 在需要用到hash值的标签中,直接绑定这个数据层变量,同时将标签的触发条件设置为刚才新建的
Scramble_ip自定义事件触发器即可。GTM在事件推送的瞬间会自动读取当前事件的参数,不会受其他事件干扰。
场景2:在Scramble_ip事件触发后的任意时间取值
如果需要在其他事件触发时(比如页面滚动、按钮点击等)调取之前推送的Scramble_ip的hash值,就需要遍历Data Layer匹配对应事件:
- 新建「自定义JavaScript」类型的变量
- 输入如下代码:
function() { // 筛选所有名称为Scramble_ip的dataLayer事件 var matchedEvents = dataLayer.filter(function(item) { return item && item.event === 'Scramble_ip'; }); // 无匹配返回空,有匹配默认取最近一次触发的事件的hash值 return matchedEvents.length ? matchedEvents[matchedEvents.length - 1].hash : undefined; }
- 保存后即可在任意位置调用这个变量获取对应值。
注意事项
- 操作前确认
Scramble_ip事件推送时,hash字段的拼写、大小写和实际推送的内容一致 - 可以通过GTM预览模式的Data Layer面板,确认字段的实际推送情况,排查取值异常问题
内容的提问来源于stack exchange,提问作者user3191724
相关产品推荐
相关产品推荐

