0
[cross-posted on Google Products Forum http://productforums.google.com/d/topic/analytics/ZrB14a-6gqI/discussion ]

我在http://www.cs.bris.ac.uk/Research/Algorithms/使用以下代码

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-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>
<script type="text/javascript">
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>

我刚刚从http://support.google.com/analytics/bin/answer.py?hl=en&answer=1136920直接复制。

但是,例如,它实际上似乎并没有报告对我添加的链接的任何点击onClick="recordOutboundLink(this, 'Outbound Links', 'Postdoc advert');return false;"。我在网上看到了很多关于此的投诉,但我还没有找到有效的解决方案。

我究竟做错了什么?

PS 最接近的相关在线投诉似乎是http://productforums.google.com/forum/#!topic/analytics/4oPBJEoZ8s4,它只是声称代码已损坏。

4

3 回答 3

4

这是我正在使用的,它一直在为我工作。我正在使用 jQuery 将 onclick 处理程序添加到具有“引用”类的任何链接中,但我希望将其直接添加到 HTML 中也可以正常工作。

  $(function() {
    $('.referral').click(function() {
      _gaq.push(['_trackEvent', 'Referral', 'Click', this.href]);
      setTimeout('document.location = "' + this.href + '"', 100);
      return false;
    });
  });

编辑:我相信您按名称调用跟踪器的语法是错误的。由于您在页面加载时设置跟踪时没有使用命名跟踪器,因此以后也不应尝试命名它。请参阅_gaq.push.

更确切地说:

  1. var myTracker声明未使用,因此您可以删除该行。范围内声明的变量recordOutboundLink在其他函数(例如_gaq.push)运行时不可见,因此它不相关。
  2. 您应该简单地使用'_trackEvent'而不是'myTracker._trackEvent'.
于 2012-11-03T16:37:40.493 回答
2

你也可以试试这个自动外部链接脚本

于 2012-11-05T04:02:24.563 回答
0

可能设置更长的超时 2 秒,因为实际推送到服务器需要一定的时间_gaq.push,而 100 毫秒不足以发送(一旦 document.location 更改,推送就会被取消)。除非_gaq.push使用阻塞调用(在推送完成之前不执行下一行),但我不认为这是我认为大多数使用异步请求的情况。

于 2012-11-03T16:36:10.700 回答