0

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

<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 请求发送到以下 url:

http://www.google-analytics.com/__utm.gif?.....more data here

我需要做什么才能让谷歌分析中的自定义事件起作用?

提前致谢。

4

1 回答 1

1

您似乎正在运行您的 Google Analytics(分析)的旧的“传统”实施。

我强烈建议您至少升级到_gaq.push支持 for 语法的异步代码段。就目前而言,您正试图将使用新语法的事件推送到使用另一种语法的旧实现中。

此处详细介绍了两者之间的区别: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-syntax 应该可以工作。试试看!

如果你不知道异步部分是什么意思,简单解释一下:

最新版本的 Analytics 跟踪代码提供了一种使用 Google Analytics 跟踪网站访问者的改进方法。它利用浏览器对异步 JavaScript 的支持来提高加载跟踪代码的速度。使用最新版本的跟踪代码,您还可以将 Analytics 代码段放置在页面的较高位置,而不会延迟后续内容的呈现。

它会继续加载网页的其他元素,而不是等待 1 完成后再加载 2、3 等。

于 2013-10-30T12:09:51.683 回答