我使用 Google 跟踪代码管理器已经好几个星期了。最近我有一个特殊的请求,但我还没有找到答案。多个容器是否可以共享同一个数据层?在两个容器的Js代码中,我尝试给datalayer取相同的名称:结果相当令人惊讶......每个容器中的所有标签都被执行了两次。
具体来说,我尝试在两个不同容器中的两个标签中发送事件。我想避免在 onclick 上进行最大无数次调用(因此有一个单一数据层的想法)
最佳答案
可以对多个容器使用相同的数据层。还可以通过第一个容器包含第二个容器(作为标签)。
但是“所有页面”规则将为页面上包含的每个容器触发一次。因此,如果您有 3 个容器,则在“所有页面”上触发的每个标签都将被触发 3 次。 (对于“gtm.js”等其他事件也是如此......)
我们找到了解决此问题的简单方法。只需在每个页面上包含一个“page_loaded”事件并相应地更改“所有页面”规则即可:
<script>
var dataLayer = [];
</script>
<!-- Google Tag Manager -->
<!-- End Google Tag Manager -->
<script>
dataLayer.push({"event": "page_loaded"});
</script>
page_loaded 事件只会触发一次,与页面上使用的容器数量无关。
关于google-analytics - GTM - 用于多个容器的一个数据层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718483/