Jul 02 2009

Initdata e tracciamento eventi

autore: Marco Cilia categoria: codice di monitoraggio tag: , , ,

In passato vi ho descritto l’uso della funzione _trackEvent(), utile per usare il tracciamento degli eventi sulle pagine ed evitare di generate troppe pagine virtuali o per tracciare comportamenti complessi dell’utente indipendentemente dalla sua attività (ad esempio per tenere traccia degli eventi in AJAX, che tipicamente non ricaricano la pagina e quindi non generano un nuovo invio di dati a Google Analytics).

Un caso un po’ anomalo è capitato ad un utente del forum di supporto: venablc ha bisogno di chiamare la funzione _trackEvent() senza richiamare anche _trackPageview(), probabilmente perché sta inviando i soli dati degli eventi ad un altro profilo e non vuole vedere le pagine viste; omettendo semplicemente la chiamata il codice non funziona e la consolle degli errori javascript riporta un laconico errore di “oggetto non definito”.

La soluzione al problema è resuscitare la defunta funzione _initData(), soppressa qualche tempo fa. L’oggetto che manca a _trackEvent infatti viene creato da _initData(), che a sua volta è richiamata automaticamente da _trackPageview(). Ma nessuno ci vieta di chiamarla esplicitamente, evitando di inviare i dati della pagina vista ma consentendo a _trackEvent() di funzionare regolarmente!
[ovviamente quanto detto vale per il caso specifico e può essere adattato alle vostre esigenze senza dimenticare quanto detto in questo altro post: o initData ce l'avete in tutte le pagine o non ce l'avete in nessuna, per quanto riguarda il profilo che raccoglie i dati]


Apr 30 2009

Lo zombie initData a volte disturba

autore: Marco Cilia categoria: codice di monitoraggio tag: , ,

Matt Cutts zombieCome vi ho detto qualche tempo fa, nei nuovi codici di monitoraggio che copiaincollate da Google Analytics è sparita la riga relativa a initData(), funzione soppressa dagli ingegneri di Google e chiamata implicitamente ed automaticamente dallo script. Se non avete provveduto a modificare i vostri codici di tracciamento (GATC) avete, appunto, uno zombie in casa: una funzione morta che cammina ancora tra le vostre pagine :)

Non fa male, di per sé, tranne per il caso citato oggi da Lunametrics, ovvero se avete alcune pagine con initData e alcune pagine senza; ad esempio perché avete aggiunto delle pagine nuove e avete copiato il codice dal pannello di Analytics invece che da una vostra pagina vecchia. In questo caso i cookie di GA possono essere scritti in forme leggermente differenti, e questo è fonte di errori e perdita del tracciamento del percorso del visitatore, quindi è male.
E’ un problema che nemmeno i controlli automatici come SitescanGA possono individuare, per cui è vostra cura assicurarvi di avere un GATC coerente su tutte le pagine.

Ricapitolando quindi le due regole fondamentali:

  • non possono coesistere chiamate a urchin.js e ga.js nella stessa pagina; possono coesistere nello stesso sito, ma è sconsigliato. Se possibile usate solo ga.js
  • se avete codici che contengono la chiamata a initData() dovrete scegliere se rimuoverla da tutte le pagine in cui è presente o aggiungerla in tutte le pagine in cui è assente

Aug 07 2008

Versione 4.3 dello script e addio a _initData()

autore: Marco Cilia categoria: codice di monitoraggio tag: ,

Come segnalato dal puntuale e sempre attento Morevisibility, Google ha silenziosamente aggiornato il codice di tracciamento richiamato dal javascript di GA. Ve ne potete accorgere usando al volo la funzione getVersion() come descritto in questo post: al momento la versione è passata a 4.3, e la modifica più evidente è già visibile nella finestra di selezione del codice da incollare nei profili, come riportato in figura:

nuovo codice di monitoraggio

(clicca per ingrandire l'immagine)

Il nuovo GATC non prevede più la chiamata a initData(), una funzione indispensabile al corretto funzionamento del sistema che è stata quindi – giustamente – resa invisibile all’utente e richiamata sempre e comunque un modo implicito. Google non ha ancora annunciato ufficialmente la modifica, ma sono abbastanza convinto che la cosa non comporterà la necessità di aggiornare di colpo i nostri script.


May 09 2008

L’ordine è importante

autore: Marco Cilia categoria: codice di monitoraggio tag: , , ,

Processo generale

In genere i dati provenienti da una pagina che contiene il codice di monitoraggio di Analytics (d’ora in poi GATC) vengono processati in questo ordine:

  1. Un browser richiede una pagina correttamente configurata con il GATC
  2. il GATC crea e inizializza un oggetto di tracciamento associato con il numero di account inserito nel GATC stesso
  3. Vengono eseguiti i metodi di tracciatura personalizzati
  4. Il codice di monitoraggio viene inizializzato e viene eseguito il metodo principale, _trackPageview()
    – Viene determinato il dominio
    – Vengono scritti o aggiornati i cookie
    – Vengono registrate le caratteristiche del browser, le informazioni sulla pagina e i tracciamenti delle campagne (se ci sono)
  5. Il codice richiede una immagine sui server di Google, __utm.gif
    – La gif, composta di un singolo pixel trasparente, viene inviata al browser del visitatore
    – L’URL della gif contiene un insieme di parametri derivati dall’inizializzazione del codice di monitoraggio. Questa URL viene registrata nei logfiles del webserver di Google.
    – Tipicamente la gif risiede sul server di Analytics, ma nel caso di Urchin stand-alone essa risiede su un server locale del cliente
  6. Questo insieme di parametri viene estrapolato dai logfiles e viene usato per popolare i database, che poi vengono usati per generare i report nell’interfaccia.

Il riferimento al codice di monitoraggio

Le prime cinque righe del tag script di default che incolliamo nelle pagine servono a determinare dinamicamente il protocollo HTTP usato dalla pagina e a richiamare il javascript appropriato dai server di Google. Tramite queste righe possiamo evitare di preoccuparci di dover cambiare il codice se usiamo un misto di pagine sicure e non sicure (http e https).

L’esecuzione del codice di monitoraggio

Il secondo set di tag javascript include i metodi necessari a eseguire la chiamata per la collezione dei dati. Questa parte del codice deve anche contenere i metodi personalizzati che vogliamo applicare alle pagine del sito. L’ordine di chiamata dei metodi fornito nel codice di default è importante, ed bisognerebbe sempre seguire queste linee guida quando si altera il GATC per le proprie necessità:

  • La prima linea dello script di tracking dovrebbe sempre inizializzare l’oggetto di tracking
    var pageTracker = _gat._getTracker("UA-123456-1");
    Questa prima linea inizializza l’oggetto con l’ID del dominio che forniamo come parametro. I metodi che seguono useranno questo oggetto
  • Le righe finali del codice dovrebbero chiamare i metodi _initData() e _trackPageview().
    Qualsiasi metodo personalizzato che imposta o inizializza un valore dovrebbe essere inserito prima di _initData().

(traduzione e adattamento di Google Analytics Custom Tracking)