我正在尝试使用GA用户计时来跟踪我们网站中的ajax事件的持续时间。我有一个集中的ajaxCall函数,它封装了jQuery ajax调用方法。这看起来像是一个理想的地方,因为我们几乎所有的ajax调用都是通过这种方法进行调用的。试图使用Google Analytics(分析)用户计时并且没有记录结果
我遇到的问题是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});
and
window.ga('send', {
'hitType' : 'timing',
'timingCategory' : 'AjaxCall',
'timingVar' : a.pathname,
'timingValue' : duration});
我已验证信标是通过Chrome Google Analytics调试器加载项和提琴手发送给GA的。 Fiddler显示,对GA的请求返回一个小图像和200 OK结果。
我已经等了整整24小时才能显示结果并且什么也没有。
我已经认识到,浏览量和事件跟踪很好,只是没有时间请求。
任何帮助将不胜感激。
我没有看到您的活动有任何问题。您是否偶然从配置文件中过滤出您的IP? – Blexy
我不这么认为。其他请求正常工作,包括网页浏览和实际跟踪器事件,只是不计时事件。 – BardMorgan