Come monitorare i tag di ancoraggio con Google Analytics
-
06-07-2019 - |
Domanda
Sto cercando di monitorare i clic tramite Google Analytics che non danno luogo a una nuova richiesta. In particolare, i clic sulle schede create tramite il widget delle schede dell'interfaccia utente jQuery . Sto usando la versione precedente del codice ('urchin tracker') e sto provando a registrare i clic in questo modo:
$('.ui-tabs-nav li a').click(function() {
val = "/tab/" + $(this).attr('href');
// when uncommented, the following line reports, for example:
// /tab/#main
// as expected.
// console.log(val);
res = urchinTracker(val);
});
Lo stesso metodo funziona, in un altro caso, la cui unica differenza significativa, per quanto ne so, è la mancanza di un simbolo hash (#) nella stringa. Quel personaggio non è ammesso in una stringa tracciata da urchinTracker ()
, o potrebbe esserci qualche altra causa (tranne che nessuno ha cliccato sui link!)?
Soluzione
Per impostazione predefinita, Google Analytics disabilita il tracciamento del tag di ancoraggio . Per abilitarlo per il codice di monitoraggio legacy, utilizzare il seguente modulo:
_uanchor = 1;
urchinTracker(val);
L'impostazione di un valore sulla variabile _uanchor
è l'equivalente del metodo di chiamata _setAllowAnchor
quando si utilizza la base di codice GA più recente. (Puoi trovare un confronto dettagliato nel Codice di monitoraggio di Google Analytics Guida alla migrazione - questo link non è aggiornato ).
Il metodo _setAllowAnchor
è descritto nella Sito di riferimento di Google .
Altri suggerimenti
In breve, Google Analytics non è in grado di tracciare i collegamenti sulla pagina contenenti un carattere '#'. Un clic su index.html # foo viene trattato semplicemente come un clic su index.html, con tutto ciò che segue il "#" ignorato.
Potresti considerare di sfuggire al carattere '#':
$('.ui-tabs-nav li a').click(function() {
val = new String("/tab/" + $(this).attr('href')).replace('#', '&');
// when uncommented, the following line reports, for example:
// /tab/#main
// as expected.
// console.log(val);
res = urchinTracker(val);
});
Nel tuo esempio, ciò registrerebbe una visualizzazione di pagina per / tab /? main
, che dovrebbe funzionare bene con Google Analytics.
Se si desidera tenere traccia dei clic di ancoraggio in-page, i seguenti funzionerebbero a livello globale:
window.onhashchange = function() {
_gaq.push(['_trackPageview', location.pathname + location.search + location.hash]);
}
Fai attenzione se hai alcuni gestori specifici onclick
come
$('#someid a').click(function(event){
event.preventDefault();
var target = $(this).attr('href');
// some more clever stuff
});
Dovresti anteporre manualmente l'hash per attivare onhashchange
$('#someid a').click(function(event){
event.preventDefault();
var target = $(this).attr('href');
// triggers onhashchange
location.hash = target;
// some more clever stuff
});
Sembra che tu voglia Monitoraggio eventi di Google Analytics the gli esempi usano onclick = " " spazzatura ma scommetto che probabilmente potresti legarli anche agli eventi jQuery Click.
-
Ho provato a utilizzare il metodo
_uanchor = 1;
. Che non funziona. Il motivo per cui non funziona è che è progettato per inviare i parametri di Google Analytics come valori hash, non per inviare il tuo valore .Dalla guida citata nella risposta di Török Gábor , impostando
_uanchor
su uno ha il seguente effetti:Se abilitato, utilizza
#
invece del?
predefinito per separare la radice della richiesta dalla stringa di queryquesto è nella sezione "Tracciamento campagna".
-
La risposta di Rob Knight funziona bene, ma ho apportato una piccola modifica. In pseudo codice:
if (href contains ?) { href = href.replace('#', '&'); } else { href = href.replace('#', '?'); }
Non sono sicuro che sia davvero importante per GA avere un URL come foo.html & amp; bar = baz
ma mi è sembrato più pulito.
_gaq.push(['_setAllowAnchor', true]);