[英]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发生(这也是可能的)。
将跟踪代码绑定到默认情况下确实会重定向的元素(例如<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.