Google Analytics:跟踪链接点击所需的延迟时间?

时间:2013-01-30 19:14:01

标签: javascript google-analytics

我们正在尝试跟踪网页上的各种点击事件,以了解用户如何浏览我们的网站。

可以通过不同的链接到达给定页面(例如,通过原始页面顶部的链接与页脚中的链接)。因此,仅仅跟踪加载的目标页面是不够的;我们需要标记和跟踪点击事件。

Google Analytics documentation建议为“出站链接”的点击添加100毫秒的延迟,以便在加载链接目标之前完成跟踪代码。这是因为_gaq.push(['_trackEvent', category , action])代码是异步的,在卸载页面之前需要时间来完成吗?

如果是这样,“现场”链接是否也不需要这样做?我没有看到这与链接到同一网站上的新页面有何不同;在这两种情况下都会卸载当前页面。

修改:我之后发现了Google的hitCallback机制,可以通过回调触发您的页面加载事件。这消除了使用延迟的需要。

5 个答案:

答案 0 :(得分:5)

在新页面之前需要进行的任何跟踪应包括轻微(<200ms)延迟。非现场,现场,表单提交等。这允许完成对分析服务器的请求。

就内部链接跟踪而言,您是否查看过页内分析报告&amp; Enhanced Link Attribute插件?它可以帮助你,而不需要额外的编码。

答案 1 :(得分:2)

Google Analytics(分析)为此类情况提供了一个hitCallback钩子。

但是,在某些情况下该事件不会触发,因此最好使用延迟添加回退重定向。

// Pretend that all of this preceding code
// is within a link's click handler.
var _this = this;
var eventHit;

ga('send', 'event', 'Outbound Links', 'click', _this.href, {
  hitCallback: function () {
    eventHit = true;
    document.location = _this.href;
  }
});

// Set delayed fallback to your liking. This example is 1 second.
setTimeout(function () {
  if (!eventHit) {
    document.location = _this.href;
  }
}, 1000);

答案 2 :(得分:1)

不要延迟点击次数。即使250毫秒的延迟也不能保证成功跟踪。 如果目标网址位于您的域内,只需将跟踪信息存储在local.storage上,并检查每个页面是否存在内容,并在页面加载时触发点击按钮的ga事件。 您还应该验证客户端上是否有local.storage可用,如果没有,则可以在这些情况下使用点击延迟。

答案 3 :(得分:0)

这是创建延迟的Jquery:

$("a").click(function (e) {        
    e.preventDefault(); //cancel the link click
    var url = $(this).attr('href');//get the destination url of the link        
    _gaq.push(['_trackEvent', 'Links', 'Clicked', 'Buy']); //do your tracking
    //go to the original destination url after a delay
    setTimeout(function () { window.location.href = url; }, 250); 
});

答案 4 :(得分:0)

是的,需要延迟以确保在重新加载页面之前完成GA请求。

以下是实现跟踪和延迟的Vanilla JS代码:

document.getElementById('ID').addEventListener('click', function(event) {
    event.preventDefault();
    _gaq.push([ '_trackEvent', 'category', 'action', 'label' ]);
    setTimeout( function() {
        document.location = event.target.href;
    }, 200);
});