Google Analytics documentation建议在远程代码脚本标记之后/下方填充window.dataLayer
。
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
</script>
但是,Google Tag Manager documentation提出了另一种建议,其中window.dataLayer
填充在远程代码脚本标记之前/上方
<script>
dataLayer = [{
'pageCategory': 'signup',
'visitorType': 'high-value'
}];
</script>
<!-- Google Tag Manager -->
...
<!-- End Google Tag Manager -->
为什么有区别?
Google Analytics(分析)代码似乎特别奇怪,似乎可以处理远程脚本上的async
属性,这意味着它可以在填充dataLayer
之前或之后运行。为什么不以与标记管理器相同的方式填充dataLayer
?
答案 0 :(得分:2)
第二个示例显示了如何在加载GTM之前填充dataLayer
。
第一个示例假定您将从一个空的dataLayer
数组开始。这行window.dataLayer = window.dataLayer || [];
正在检查您是否已填充dataLayer
,如果已填充,请使用它。
加载GTM后,您可以使用dataLayer.push({...})
添加更多事件