即使发送自定义事件也不会出现

时间:2013-10-30 11:22:07

标签: google-analytics custom-events

在页面加载中,我是通过以下代码片段加载谷歌分析:

<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中的自定义事件发挥作用?

提前致谢。

1 个答案:

答案 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等等。