【问题标题】:What's the correct way to include both GTM and gtag scripts?包含 GTM 和 gtag 脚本的正确方法是什么?
【发布时间】:2021-09-24 18:44:18
【问题描述】:

我同时使用 gtag 和 GTM;我如何正确地将它们都包含在 ?另外,我想知道是否应该覆盖 dataLayer 变量或检查它是否已经存在于每个页面上——即dataLayer = [];window.dataLayer = window.dataLayer || [];

这看起来正确吗?

<!-- Google Tag Manager -->
<script>
    window.dataLayer = window.dataLayer || [];
</script>

<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'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXX');</script>
<!-- End Google Tag Manager -->

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UAXXXX"></script>

<script>
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
  gtag('config', 'UA-XXXX');
</script>

【问题讨论】:

    标签: google-tag-manager gtag.js


    【解决方案1】:

    这完全回答了您的问题:https://support.google.com/tagmanager/answer/7582054?hl=en

    简而言之:完全删除您的 gtag 并将您的所有跟踪逻辑都包含在 GTM 中。

    标签管理器旨在容纳您的所有分析逻辑,并成为访问任何与行为跟踪相关的单点。

    关于你的深度学习问题,

    window.dataLayer = window.dataLayer || [];

    更合适。永远不要重新定义/覆盖 DL。即使你相信它不存在。异步可能是恶毒的,所以在这种情况下安全总是好的。

    哦,GTM 也自动提供 dataLayer,因此如果您将逻辑移至它,您也可以跳过定义它以使源代码更清晰。或者您可以在模板级别定义它,以防您希望能够在 GTM 加载之前将其推入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2021-03-21
      • 2019-07-28
      • 1970-01-01
      • 2019-09-10
      相关资源
      最近更新 更多