我正在考虑将 onclick 事件附加到我网站上的内部链接,以进行一些 Google Analytics 事件跟踪。但我担心性能。我的理解是工作流程会改变:
- 用户点击超链接
- 调用 Google Analytics 发送事件跟踪数据
- 浏览器等待来自 GA 服务器的响应
- 浏览器跟随链接并打开新页面。
我担心第 2 步和第 3 步引入的延迟。所以问题是:
- 我对流程的理解是否正确?
- 对 GA 事件跟踪的调用引入的典型延迟(以毫秒为单位)是多少?
我正在考虑将 onclick 事件附加到我网站上的内部链接,以进行一些 Google Analytics 事件跟踪。但我担心性能。我的理解是工作流程会改变:
我担心第 2 步和第 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);
}
});
您可以使用该hitCallback
机制,该机制已记录在案,analytics.js
但也可用于ga.js
.
这已在另一个问题上得到解决:点击表单提交后在谷歌分析中跟踪事件
您需要添加“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
我之前在内部和外部都实施过 GA,但在性能上没有看到明显的差异。此外,我相信跟踪链接点击的最新方法允许异步进行跟踪。
以这种方式添加跟踪将允许用户在异步完成跟踪时跟踪链接操作。
onclick="_gaq.push(['_trackEvent', 'myLink', 'clicked'])"