2014-04-11 1 views
5

Ich versuche GA-Nutzertimings zu verwenden, um die Dauer von Ajax-Ereignissen auf unserer Website zu verfolgen. Ich habe eine zentralisierte ajaxCall-Funktion, die die jQuery ajax Call-Methode kapselt. Dies schien ein idealer Ort zu sein, um das Timing für die Anrufe festzulegen, da fast alle unsere Ajax-Anrufe diese Methode durchlaufen.Ich versuche, Google Analytics-Nutzertimings zu verwenden und keine Ergebnisse zu protokollieren.

Das Problem, das ich habe, ist, dass GA die Timing-Hits nicht zu registrieren scheint.

Hier ist der Code, den ich für meine ajaxCall Methode bin:

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); 
} 

Hier ist der Code für die getTimestampMilliseconds Methode:

function getTimestampMilliseconds() 
{ 
    if (window.performance) 
    { 
     return window.performance.now(); 
    } 
    else 
    { 
     return new Date().getTime(); 
    } 
} 

ich die alternative Syntax für die Sende versucht haben, mit einem Javascript-Objekt für die Optionen wie folgt:

window.ga('send', { 
hitType : 'timing', 
timingCategory : 'AjaxCall', 
timingVar : a.pathname, 
timingValue : duration}); 

und

Ich habe bestätigt, dass das Beacon über das Chrome Google Analytics Debugger-Add-In und Fiddler an GA gesendet wird. Fiddler zeigt, dass die Anfrage an GA ein kleines Bild und ein OK-Ergebnis von 200 zurückgibt.

Ich habe volle 24 Stunden gewartet, bis die Ergebnisse angezeigt werden und nichts.

Ich habe festgestellt, dass Seitenaufrufe und Ereignisse gut verfolgen, nur keine Anforderungen zu timing.

Jede Hilfe würde sehr geschätzt werden.

+0

Ich sehe keine Probleme mit Ihrer Veranstaltung. Filtern Sie Ihre IP zufällig aus dem Profil? – Blexy

+0

Ich glaube nicht. Andere Anforderungen funktionieren einwandfrei, einschließlich Seitenaufrufe und tatsächlicher Tracker-Ereignisse. – BardMorgan

Antwort

5

Weitere Untersuchungen von einem meiner Kollegen fanden die Antwort.

Die getTimeStampMilliseconds-Funktion, die ich geschrieben habe, gab einen Wert mit einem Bruchteil (z. B. 450.98761) zurück, der offensichtlich die Google API nicht mag. Erschwerend kam hinzu, dass Google überhaupt keinen Fehlercode zurückgegeben hat, was uns zu der Annahme brachte, dass alles in Ordnung ist.

Das Ändern des Codes, um nur ganze Millisekunden im Timing-Aufruf zu übergeben, behob das Problem.

0

Ich hatte ein paar Stunden mit dem gleichen Problem zu kämpfen, bis mir klar wurde, dass mein Zeitraum in der Google Analytics-Seite vorgestern endete.

enter image description here

Nachdem es dem heutigen Datum zu ändern, alle mir den letzten Test Timings wurden angezeigt. Ich nahm an, dass es standardmäßig so eingestellt wurde, dass die aktuellen Zeiteinstellungen angezeigt werden, und habe es nicht überprüft.

Verwandte Themen