gpt4 book ai didi

google-tag-manager - GTM 重命名数据层不起作用

转载 作者:行者123 更新时间:2023-12-04 22:37:24 24 4
gpt4 key购买 nike

我正在使用以下文档重命名我的数据层:https://developers.google.com/tag-manager/devguide#renaming

我的代码是这样的:

fsData = [{ 'pageName' : 'test' }]

<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-NV9MP5D" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript><script>
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&amp;l='+l:'';
j.async=true;
j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','fsData','GTM-NV9MP5D');
</script>

然后我转到 GTM 并添加一个新的 dataLayer 变量并将其配置为包含“pageInfo”的值。我创建了一个打印出此变量的简单标记,并选择默认的“所有页面”作为触发器,该触发器配置为在 GTM 从上述代码片段接收到 gtm.js 事件时立即触发。

问题是我的标签从不触发,当我使用调试器时,我注意到我的 fsData 对象包含我的数据、gtm.js 事件,但 GTM 调试器显示 GTM 正在将其所有对象和事件推送到“数据层”,而不是“fsData”。

我现在有:

window.dataLayer
0: {event: "gtm.dom", gtm.uniqueEventId: 0}
1: {event: "gtm.load", gtm.uniqueEventId: 4}

window.fsData
0: {pageInfo: test}
1: {gtm.start: 1524823378118, event: "gtm.js"}

所以我怀疑 GTM 仍然希望我使用名称“dataLayer”,但我不明白为什么,因为我遵循了文档中的步骤。

有人知道我错过了什么吗?

谢谢

最佳答案

代码段中的编码问题,在 l 参数之前展开 & 符号:&l= 将导致它把 rename 参数放到 gtm 脚本中正在加载。这会将 gtm 脚本接管后的所有内容放在默认数据层中,只在重命名层中的代码段本身的行中保留已推送的数据。

关于google-tag-manager - GTM 重命名数据层不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50060136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com