我需要使用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>
任何人都知道我的代码有什么问题?根据谷歌的例子,对我来说看起来不错。
答案 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)
此后使用第四个参数进行了简化 - 由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
函数,同时将数据推送到两个跟踪器!