在页面加载中,我是通过以下代码片段加载谷歌分析:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-XXXXXXXX-X");
pageTracker._trackPageview();
} catch(err) {}
</script>
我使用以下代码触发事件(页面加载后):
_gaq.push(['_trackEvent', 'test category', 'test action']);
跟踪标准信息,但没有定制事件。我知道所有事件都会发送到Google Analytics,因为每次触发事件时,HTTP GET请求都会发送到以下网址:
http://www.google-analytics.com/__utm.gif?.....more data here
我需要做些什么才能让Google Analytics中的自定义事件发挥作用?
提前致谢。
答案 0 :(得分:1)
您似乎正在运行Google Analytics的旧式“传统”实施方式。
我强烈建议您升级到至少支持_gaq.push
语法的异步代码段。就目前而言,您正在尝试使用新语法将事件推送到使用其他语法的旧实现中。
这两者之间的差异详见:https://developers.google.com/analytics/devguides/collection/gajs/asyncMigrationExamples
简而言之,您使用的是gat / pageTracker的语法,其中较新的异步使用gaq。
请查看我从上面链接中复制的代码:
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
...
<a onclick="_gaq.push(['_trackEvent', 'category', 'action', 'opt_label', opt_value]);">click me</a>
您现在使用的是旧语法:
var pageTracker = _gat._getTracker('UA-XXXXX-X');
pageTracker._trackPageview();
...
<a onclick="pageTracker._trackEvent('category', 'action', 'opt_label', opt_value);">click me</a>
如您所见,您正尝试使用新的ga.js语法向旧的ga.js发送事件。我强烈建议使用异步加载的较新的ga.js.通过异步,这意味着在加载网页时加载javascript,旧的ga.js不加载。
这是较新的ga.js的示例实现,应该在关闭</head>
之前实施:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_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>
如果您实施上述建议,那么您使用的是较新的ga.js,并且_gaq.push
- 语法应该有效。试试吧!
如果您不知道异步部分的含义,请简要说明一下:
最新版本的Google Analytics跟踪代码提供了一种使用Google Analytics跟踪网站访问者的改进方法。它利用浏览器对异步JavaScript的支持来提高加载跟踪代码的速度。使用最新版本的跟踪代码,您还可以将Google Analytics代码段放在页面中更高的位置,而不会延迟呈现后续内容。
它继续加载网页的其他元素,而不是在加载2之前等待1完成,然后加载3等等。