我已经实现了很多标准示例:
<script>
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-mycode']);
_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);
})();
</script>
<script>
function recordOutboundLink(link, category, action) {
try {
var myTracker=_gat._getTrackerByName();
_gaq.push(['myTracker._trackEvent', category , action ]);
setTimeout('document.location = "' + link.href + '"', 100)
}catch(err){}
}
</script>
并且链接具有此onclick事件:
<a id="latestDownload" href="https://example.com" onClick="recordOutboundLink(this, 'newDownloads', 'latest');return false;">Download latest version</a>
过去3天没有跟踪任何事件,这对我来说听起来是错误的。我已经使用适用于Chrome的GA调试插件测试了该页面,该页面显示了事件已发送。
我在这里犯了一些错误吗?
[Google GA调试插件显示(字面意义,没有混淆):
Account ID : UA-XXXXX-X
&utmac=UA-XXXXX-X
我是否需要再次推送'_setAccount'?
tl; dr ...忽略_getTrackerByName()
调用,只需使用
_gaq.push(['myTracker._trackEvent', category , action ]);
详细说明:异步跟踪允许使用类似语法将命令推送到多个跟踪器(请参见Tracking Basics)>
_gaq.push(['_setAccount', 'UA-XXXXX-1']); _gaq.push(['_trackPageview']); _gaq.push(['b._setAccount', 'UA-XXXXX-2']); _gaq.push(['b._trackPageview']);
_gaq.push(['myTracker._trackEvent', category , action ]);
代码假定您已经像上面的myTracker
跟踪器一样初始化了b
。
由于myTracker
从未设置accountId,因此它在调试时显示UA-XXXXX-X
accountId。
Specialized Tracking/Outbound Links上的分析代码是错误的,或者仅在名为myTracker
的设置代码下才有效。
myTracker
是一个变量,因此您不能真正在字符串中引用它。以下应该工作:
setTimeout对我来说似乎有点冒险-它假定Google Analytics(分析)调用已在100毫秒内进行。