繁体   English   中英

ga()需要多长时间才能完成?

[英]How long does ga() take to complete?

在我的登录页面的ajax调用中,如果它返回名为is_first_login = 1的参数,那么我需要调用ga()来发送GA事件。

之后,页面立即重定向到仪表板主页面。 但不确定为什么,有时不会触发ga()。

GA事件触发平均需要花费多长时间?

  // Make ajax call for login.
  fn._post('user.post_login', {
    username: username,
    pwd: pwd,
    redirect_to: redirect_to,
  }, function (json) {

    if ( !json.error && json.is_first_login ) {

      if (typeof ga !== 'undefined') {
        var event_category = 'Subscribe - First Login',
            event_action = 'First Login',
            event_label = 'Partner';

        ga('send', 'event', event_category, event_action, event_label);
        ga('newTracker.send', 'event', event_category, event_action, event_label);
      }
    }

    if (json.redirect) {
      fn._redirect(json.redirect);
      return;
    }

    $('.msg').remove();
    if (json.error) {
      fn._inlineMsg(jUsername.parent(), json.msg);
      jUsername.focus();
      jLoginBtn.parent().removeClass('loading');
    }
  });

您永远无法确定跟踪请求将在客户端计算机上花费多长时间。 我的跟踪请求通常需要25毫秒左右的时间(很少会花很多时间,例如960毫秒)。

您可以自己测试。 只需从浏览器控制台运行以下命令:

var start = (new Date()).getTime();
ga('send', 'event', 'event_category', 'event_action', 'event_label', {
    hitCallback: function() {
      console.log("Tracking took " + ((new Date()).getTime() - start));
    }
});

但是,您获得的时间只是提供信息,您不能依靠它。 在某些其他客户端的计算机上,可能会获得不同的响应时间。

因此,您可能需要将重定向代码放入回调函数中。

setTimeout(function(){
  //redirect here
}, 2000);

ga('send', 'event', event_category, event_action, event_label, {
  hitCallback: function() {
    //redirect here
  }
});

使用setTimeout只是为了防止hitCallback发生(这也是可能的)。

进一步了解https://developers.google.com/analytics/devguides/collection/analyticsjs/sending-hits#knowing_when_the_hit_has_been_sent

将跟踪代码绑定到默认情况下确实会重定向的元素(例如<a>,<button> ...)时,请不要忘记调用event.preventDefault(

ga()对分析请求进行排队,主要是等待完整的分析库下载。 https://developers.google.com/analytics/devguides/collection/analyticsjs/command-queue-reference

如果您要在该资源加载之前进行重定向,则不会向Google Analytics(分析)发出呼叫。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM