尝试使用Google Analytics用户计时并且未记录任何结果

时间:2014-04-11 15:13:07

标签: 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);
}

以下是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小时才能显示结果,没有任何结果。

我已经确认网页浏览量和事件跟踪得很好,只是没有计时请求。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:7)

我的一位同事进一步调查了答案。

我写的getTimeStampMilliseconds函数返回一个带小数部分的值(例如,450.98761),显然Google API并不喜欢。使这一点复杂化的事实是Google根本没有返回任何类型的错误代码,导致我们认为一切都还可以。

更改代码以在定时调用中仅传递整数毫秒来解决问题。

答案 1 :(得分:1)

在我意识到我在Google Analytics页面中的日期范围在前一天结束之前,我在几个小时内遇到了同样的问题。

enter image description here

将其更改为今天的日期后,显示了我最近的所有测试时间。我假设它默认设置显示最近的时间,但没有检查它。

相关问题