网站上的多个 Google 分析代码

Multiple Google Analytics code on website

我正在更新一个网站,该网站似乎有多个 Google Analytics 运行ning 实例和版本。我需要帮助来确定实际发生的情况以及我应该保留的版本。

首先将这些加载到头部:

 <script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script>
    <script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"></script>

那么,下面这些代码也是运行在头部。

  var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-1']);
    _gaq.push(['_trackPageview']);

    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();



 window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-6100216-1');

然后,在正文中,gtag 被加载并调用。

  <script async="" src="https://www.googletagmanager.com/gtag/js?id=UA-xxxxxxx-1"></script>

  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-xxxxxx-1');

我已经纠正了过去开发人员所犯的一千个错误。

我的天哪,太棒了!在高层次上,基本上您拥有 GA 实施的所有 THREE(3) 方法:ga.js、analytics.js、gtag.js。目前推荐的方法是gtag.js.

ga.js(旧版)

这就是与 ga.js 关联的所有内容应该如何分组 (as per documentation):

  1. 这是加载 ga.js 库的行: <script type="text/javascript" async="" src="https://ssl.google-analytics.com/ga.js"></script>

  2. 这是启动ga.js的代码:

    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-1']);
    _gaq.push(['_trackPageview']);
    
    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
    

analytics.js

根据 documentation,正常的异步实现如下所示:

<!-- Google Analytics -->
<script>
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
<!-- End Google Analytics -->

但无论出于何种原因,您似乎只是在加载库,而没有将其与其余部分一起初始化。所以对于 analytics.js 你只是加载库而不用它做任何其他事情。

gtag.js

同样,as per documentation,gtag 实现代码如下所示:

<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_TRACKING_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'GA_TRACKING_ID');
</script>

在这种情况下,页面使用了两次,如果UA数相同,则会导致重复计算。

第一次

window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'UA-6100216-1');

第二次

window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-xxxxxx-1');

好消息是代码中没有任何内容表明您正在跟踪任何特殊或定制的内容。我建议您查看 gtag.js 实现方法并删除其余的分析代码。请注意,这是假设站点的其余页面上也没有任何内容。请随时 post 有关该网站的更多信息,我可以看看。

正如 XTOTHEL 已经解释的那样,您有多个代码和重复计算,他关于如何处理这个问题的指南非常好。

关于这个主题我唯一可以补充的是,您应该考虑转向 Google 跟踪代码管理器并将 GA 放在那里,而不是自己嵌入任何 Google Analytics 代码。