【问题标题】:Using multiple Google Analytics accounts in the same website在同一网站上使用多个 Google Analytics(分析)帐户
【发布时间】:2016-03-18 19:48:24
【问题描述】:

我的团队正在开发一组工具和页面,这些工具和页面需要我们进行谷歌分析。我们的团队有一个 Analytics 帐户,我们可以在其中收集我们已经使用了很长时间的数据。

最近我们不得不将我们的网站与另一个存储库合并到另一个团队的网站下。因此,我们的分析已停止向我们的分析帐户发送数据。而是将数据发送到其他团队的帐户。他们使用的框架将某些代码注入网站上的所有页面。

我们希望将我们的事件数据发送到我们的帐户,并弄清楚如何正确地将我们的分析对象与他们的分开。下面的代码是我们希望更改以允许与 2 个不同帐户通信的示例。任何帮助是极大的赞赏。

    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

 ga('create', 'UA-XXXXXXXX-2', 'auto');

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-YYYYYYYY-2', {'name':'b'});


ga('send', 'event', 'TheirAnalytics', 'TheirEvent');
ga('send', 'event', 'MyAnalytics', 'MyEvent');

【问题讨论】:

    标签: javascript html google-analytics analytics


    【解决方案1】:

    此页面上的两个现有答案不正确,实际上不起作用。您绝对不需要需要两次下载 analytics.js 脚本,并且您绝对想创建两个 command queue 函数。

    您要做的是创建两个tracker objects,为其中至少一个命名,然后使用两者发送数据。

    这是一个例子:

    <script>
    
    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
    (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
    m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
    })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
    
    // Creates the first tracker for one of your accounts,
    // and uses the default name.
    ga('create', 'UA-XXXXX-1', 'auto');
    
    // Creates the second tracker for the other account,
    // and give it the name "secondary"
    ga('create', 'UA-XXXXX-2', 'auto', 'secondary');
    
    // Sends events from both trackers,
    // i.e. one event hit will be sent to each account.
    ga('send', 'event', 'MyAnalytics', 'MyEvent');
    ga('secondary.send', 'event', 'TheirAnalytics', 'TheirEvent');
    
    </script>
    

    查看working with multiple trackersusing named trackers 上的文档了解更多详情。

    【讨论】:

    • 这是使用命名跟踪器的正确答案。
    • 为了让这个答案更容易理解:不能创建两个具有相同名称的跟踪器对象(在 OP 的情况下为默认名称),因为那样第二个跟踪器将简单地覆盖第一个。这就是需要命名至少一个跟踪器的基本原理,以便后者不会覆盖前者(或多或少类似于变量赋值,如果您为变量分配新值,它将覆盖现有的值。您需要新值的不同变量)。
    【解决方案2】:

    把最后一个(window,document,'script','//www.google-analytics.com/analytics.js','ga');改成(window,document,'script','//www.google-analytics.com/analytics.js','ga2');

    并使用ga2('send', 'event', 'MyAnalytics', 'MyEvent');

    【讨论】:

      猜你喜欢
      • 2011-02-11
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多