Bar*_*gan 7 google-analytics timing
我正在尝试使用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);
}
Run Code Online (Sandbox Code Playgroud)
以下是getTimestampMilliseconds方法的代码:
function getTimestampMilliseconds()
{
if (window.performance)
{
return window.performance.now();
}
else
{
return new Date().getTime();
}
}
Run Code Online (Sandbox Code Playgroud)
我已经使用javascript对象为选项尝试了发送的替代语法,如下所示:
window.ga('send', {
hitType : 'timing',
timingCategory : 'AjaxCall',
timingVar : a.pathname,
timingValue : duration});
Run Code Online (Sandbox Code Playgroud)
和
window.ga('send', {
'hitType' : 'timing',
'timingCategory' : 'AjaxCall',
'timingVar' : a.pathname,
'timingValue' : duration});
Run Code Online (Sandbox Code Playgroud)
我已经确认信标是通过Chrome Google Analytics调试器插件和Fiddler发送给GA的.Fiddler显示对GA的请求返回一个小图像和200 OK结果.
我已经等了整整24小时才能显示结果而没有任何结果.
我已经确认网页浏览量和事件跟踪得很好,只是没有计时请求.
任何帮助将不胜感激.
我的一位同事进一步调查了答案.
我写的getTimeStampMilliseconds函数返回一个带小数部分的值(例如,450.98761),这显然是Google API不喜欢的.使这一点复杂化的事实是谷歌根本没有返回任何类型的错误代码,导致我们认为一切都还可以.
更改代码只在定时调用中传递整数毫秒修复了问题.
| 归档时间: |
|
| 查看次数: |
1948 次 |
| 最近记录: |