链接上的Google Analytics事件跟踪是否会降低用户体验?

时间:2012-08-14 14:39:58

标签: performance google-analytics event-tracking

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

  1. 用户点击超链接
  2. 致电Google Analytics以发送事件跟踪数据
  3. 浏览器等待来自GA服务器的响应
  4. 浏览器跟随链接并打开新页面。
  5. 我担心步骤2和3引入的延迟。所以问题是:

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

4 个答案:

答案 0 :(得分:2)

事件跟踪的工作原理是向Google服务器发出图像请求。问题是,在链接到新URL后会停止任何待处理/正在进行的请求。如果浏览器在跟踪请求发出之前在同一窗口中打开指向新URL的链接,则可能会丢失分析数据。 / p>

因此,步骤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);
  }
});

答案 1 :(得分:1)

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

另一个问题是Track event in google analytics upon clicking form submit

答案 2 :(得分: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

答案 3 :(得分:0)

我之前已经实施过GA,无论是内部还是外部,并没有看到性能上的显着差异。此外,我相信跟踪链接点击的最新方法允许跟踪异步完成。

Collections- Google Developers Guide

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

onclick="_gaq.push(['_trackEvent', 'myLink', 'clicked'])"