5

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

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

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

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

编辑:我已经发现了谷歌hitCallback通过回调触发页面加载事件的机制。这消除了使用延迟的需要。

4

5 回答 5

5

任何需要在新页面之前完成的跟踪都应该包含轻微的(< 200 毫秒)延迟。异地、现场、表单提交等。这允许完成对分析服务器的请求。

至于内部链接跟踪,您是否查看过 In-Page Analytics 报告和增强的链接属性插件?它可以帮助你一点,而不需要做额外的编码。

于 2013-01-30T22:18:47.130 回答
2

谷歌分析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);
于 2020-02-06T17:27:46.557 回答
1

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

于 2016-05-03T11:53:41.607 回答
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); 
});
于 2014-07-24T03:31:13.677 回答
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);
});
于 2016-01-18T12:39:30.367 回答