如何使用NEW analytics.js跟踪多个帐户?

时间:2013-09-25 06:42:36

标签: javascript google-analytics analytics.js

我需要使用Google的新analytics.js在一个页面上跟踪两个帐户的综合浏览量。有很多教程和示例如何使用较旧的ga.js。但我发现的只有Analytics documentation page。我编写了我的代码以适应给定的示例,但它只跟踪第一个(默认)跟踪器的视图,但不跟踪第二个跟踪器的视图。

<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');
  ga('create', 'UA-XXXXXXXX-3', 'domain.com');
  ga('create', 'UA-ZZZZZZZZ-1', {'name':'b'});
  ga('send', 'pageview');
  ga('b.send', 'pageview');
</script>

任何人都知道我的代码有什么问题?根据谷歌的例子,对我来说看起来不错。

4 个答案:

答案 0 :(得分:21)

使用analytics.js进行多个帐户跟踪的代码是正确的,我已成功测试了我网站中的类似代码。因此,您需要检查以下内容是否存在任何可能的错误:

1,确认是否发送了两个跟踪数据。例如在chrome中,使用GA调试器插件进行chrome,然后在javascript控制台中查看是否获得了跟踪ID的以下详细信息

adSenseId        (&a)   425734287 
apiVersion       (&v)   1 
clientId         (&cid) xx.xx
encoding         (&de)  UTF-8 
flashVersion     (&fl)  11.8
hitType          (&t)   pageview
javaEnabled      (&je)  1 
language         (&ul)  en-us 
location         (&dl)  domain.com 
referrer         (&dr)
screenColors     (&sd)  24-bit
screenResolution (&sr)  1366x768
title            (&dt)  yourdomaintitle 
trackingId       (&tid) UA-XXXXXXXX-3 
viewportSize     (&vp)  1364x361 

理想情况下,您应该看到这一点,因为您的代码是正确的,这意味着您的网站正在发送2个跟踪信号。

2,对于您的第二个跟踪ID,请确保跟踪ID 与GA 网络媒体资源 中的完全相同

3,确保您未对网络媒体资源中相应的视图应用任何过滤器,这可能会过滤掉流量。如果您正在使用某些过滤器,请采用未过滤的视图,看看您是否在实时概览中看到了点击量

答案 1 :(得分:9)

https://developers.google.com/analytics/devguides/collection/analyticsjs/creating-trackers#working_with_multiple_trackers

此后使用第四个参数进行了简化 - 由Google于2015年12月15日更新。

ga('create', 'UA-XXXXX-Y', 'auto');
ga('create', 'UA-XXXXX-Z', 'auto', 'clientTracker');
ga('send', 'pageview');
ga('clientTracker.send', 'pageview');

答案 2 :(得分:1)

根据Analytics documentation page中的示例,您不应该这样做:

ga('create', 'UA-XXXXXXXX-3', 'auto');
ga('create', 'UA-ZZZZZZZZ-1', 'auto', {'name':'b'});
// note this last argument            ^^^^^^^^^^^^

答案 3 :(得分:1)

我知道这是一个陈旧的答案,但由于我没有看到任何人提到这个解决方案同时推送到两个帐户,我想我会分享它...

使用多个跟踪器是可行的方法,但如果您想要同时推送两个帐户,请覆盖ga这样的功能:

ga('create', 'UA-XXXXXXXX-1', {
    'name': 'myCustomTracker',
    'cookieDomain': 'auto'
});
ga('create', 'UA-XXXXXXXX-2', 'auto');

ga(function () { //Wait for Analytics to be fully loaded
    var oldGa = ga;
    ga = function () { //Override ga function to call both trackers
        if (arguments && arguments.length > 0) {
            oldGa.apply(null, arguments);
            arguments[0] = "myCustomTracker." + arguments[0]; //Edit first argument to call second tracker.
            oldGa.apply(null, arguments);
        }
    };

    ga('send', 'pageview'); //Perform page view on both trackers at once.
});

像这样你就可以像以前一样调用ga函数,同时将数据推送到两个跟踪器!