gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 05:15:41 27 4
gpt4 key购买 nike

在我的登录页面的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

将跟踪代码绑定(bind)到默认重定向的元素(例如

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com