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!)?

È stato utile?

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.

  1. 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 query

    questo è nella sezione "Tracciamento campagna".

  2. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top