3

我正在考虑将 onclick 事件附加到我网站上的内部链接,以进行一些 Google Analytics 事件跟踪。但我担心性能。我的理解是工作流程会改变:

  1. 用户点击超链接
  2. 调用 Google Analytics 发送事件跟踪数据
  3. 浏览器等待来自 GA 服务器的响应
  4. 浏览器跟随链接并打开新页面。

我担心第 2 步和第 3 步引入的延迟。所以问题是:

  1. 我对流程的理解是否正确?
  2. 对 GA 事件跟踪的调用引入的典型延迟(以毫秒为单位)是多少?
4

4 回答 4

3

事件跟踪通过从 Google 服务器发出图像请求来工作。一个问题是,跟踪指向新 URL 的链接会停止任何未决/正在进行的请求。如果浏览器在发出跟踪请求之前在同一窗口中打开指向新 URL 的链接,您可能会丢失分析数据。

因此,第 3 步不是等待,而是必须添加延迟以允许跟踪图像请求完成(或至少开始)。100-150 毫秒对于请求来说足够长,但足够短以至于不会被用户注意到。

我使用以下事件跟踪代码(jQuery 代码)的一些变体:

$('.someClassForTracking').click(function(e){
  _gaq.push(['_trackEvent', category, action, ...]);
  if (this.target != '_blank') {
    e.preventDefault();
    var url = this.href;
    setTimeout(function(){location.href = url}, 150);
  }
});
于 2012-08-14T17:19:49.127 回答
1

您可以使用该hitCallback机制,该机制已记录在案,analytics.js但也可用于ga.js.

这已在另一个问题上得到解决:点击表单提交后在谷歌分析中跟踪事件

于 2013-04-11T12:22:09.697 回答
1

您需要添加“hitCallback”,一旦在 GA 结束时完成跟踪就会触发。不要担心超时,因为如果 GA 需要很长时间才能返回响应,则此事件将触发 - 简而言之,它会处理事件超时。

<script>
/**
* Function that tracks a click on an outbound link in Google Analytics.
* This function takes a valid URL string as an argument, and uses that URL string
* as the event label.
*/
var trackOutboundLink = function(url) {
   ga('send', 'event', 'outbound', 'click', url, {'hitCallback':
     function () {
     document.location = url;
     }
   });
}
</script>

您还需要在链接中添加(或修改)onclick 属性。将此示例用作您自己的链接的模型:

<a href="http://www.example.com" onclick=”trackOutboundLink(‘http://www.example.com’); return false;">Check out example.com</a>

取自这里:https ://support.google.com/analytics/answer/1136920?hl=en

于 2015-07-27T01:20:46.777 回答
0

我之前在内部和外部都实施过 GA,但在性能上没有看到明显的差异。此外,我相信跟踪链接点击的最新方法允许异步进行跟踪。

集合 - Google 开发者指南

以这种方式添加跟踪将允许用户在异步完成跟踪时跟踪链接操作。

onclick="_gaq.push(['_trackEvent', 'myLink', 'clicked'])"
于 2012-08-14T14:43:22.203 回答