Sto tentando di utilizzare gli orari utente di GA per tenere traccia della durata degli eventi Ajax sul nostro sito web. Ho una funzione centralizzata ajaxCall che incapsula il metodo call jQuery ajax. Questo sembrava un posto ideale per mettere il tempo per le chiamate poiché quasi tutte le nostre chiamate ajax passano attraverso questo metodo.Tentativo di utilizzare gli orari degli utenti di Google Analytics e di non ottenere risultati registrati
Il problema che sto avendo è che GA non sembra registrare i colpi di temporizzazione.
Ecco il codice che sto usando per il mio metodo 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);
}
ecco il codice per il metodo getTimestampMilliseconds:
function getTimestampMilliseconds()
{
if (window.performance)
{
return window.performance.now();
}
else
{
return new Date().getTime();
}
}
Ho provato la sintassi alternativa per l'invio utilizzando un oggetto JavaScript per le opzioni come segue:
window.ga('send', {
hitType : 'timing',
timingCategory : 'AjaxCall',
timingVar : a.pathname,
timingValue : duration});
e
window.ga('send', {
'hitType' : 'timing',
'timingCategory' : 'AjaxCall',
'timingVar' : a.pathname,
'timingValue' : duration});
Ho verificato che il beacon viene inviato a GA tramite il componente aggiuntivo Debugger Google Chrome e Fiddler. Fiddler mostra che la richiesta di GA restituisce una piccola immagine e un risultato di 200 OK.
Ho aspettato ben 24 ore perché i risultati si presentassero e nulla.
Ho verificato che le pagine visualizzate e gli eventi seguano correttamente le richieste.
Qualsiasi aiuto sarebbe molto apprezzato.
Non vedo alcun problema con il tuo evento. Stai per caso filtrando il tuo IP dal profilo? – Blexy
Non ci credo. Altre richieste funzionano bene, comprese le visualizzazioni di pagina e gli eventi effettivi del tracker, ma non gli eventi di cronometraggio. – BardMorgan