我正在尝试使用GA用户计时来跟踪我们网站中ajax事件的持续时间。我有一个集中的ajaxCall函数,它封装了jQuery ajax调用方法。这似乎是一个理想的调用时间,因为几乎所有的ajax调用都通过这种方法。
我遇到的问题是GA似乎没有注册时间点击。
这是我用于ajaxCall方法的代码:
function ajaxCall(url, data, fnSuccess, dataType, fnFailure)
{
if (!fnFailure)
{
fnFailure = function(jqXhr)
{
var lastDitchHtml = window.getCriticalErrorDialog("An error occurred during the ajax call.");
window.showCeebox(lastDitchHtml, 120, 350);
};
}
var a = $('<a>', { href : url })[0];
var startTime = getTimestampMilliseconds();
$.ajax({
cache : false,
async : false,
url : url,
type : 'POST',
dataType : dataType,
data : data,
success : fnSuccess,
error : fnFailure
});
var endTime = getTimestampMilliseconds();
var duration = endTime - startTime;
window.ga('send', 'timing', 'AjaxCall', a.pathname, duration);
}
以下是getTimestampMilliseconds方法的代码:
function getTimestampMilliseconds()
{
if (window.performance)
{
return window.performance.now();
}
else
{
return new Date().getTime();
}
}
我已经使用javascript对象为选项尝试了发送的替代语法,如下所示:
window.ga('send', {
hitType : 'timing',
timingCategory : 'AjaxCall',
timingVar : a.pathname,
timingValue : duration});
和
window.ga('send', {
'hitType' : 'timing',
'timingCategory' : 'AjaxCall',
'timingVar' : a.pathname,
'timingValue' : duration});
我已经确认信标是通过Chrome Google Analytics调试器插件和Fiddler发送给GA的。 Fiddler显示对GA的请求返回一个小图像和200 OK结果。
我已经等了整整24小时才能显示结果,没有任何结果。
我已经确认网页浏览量和事件跟踪得很好,只是没有计时请求。
非常感谢任何帮助。