Google Analytics: eventi codice nuovo

Tanto tempo fa scrissi un articolo su come tracciare "eventi" nel vostro sito, con Google Analytics, senza andare a sporcare le statistiche delle pagine vere. Da qualche mese Google Analytics ha cambiato lo script di tracciamento base, rinnovando librerie e metodologie di chiamata. E' necessario un aggiornamento!

Guardiamo prima di tutto il nuovo script, che potete trovare all'interno del profilo di uno dei vostri siti su Google Analytics, cliccando su Check Status. Vi sono 3 proposte: una dedicata a chi ha il sito normalmente nel proprio profilo, una dedicata a chi ha più sottodomini nel sito e una per coloro che hanno il sito con più estensioni.

Analizziamo per semplicità il codice di base:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-108480-1']); //riga A
_gaq.push(['_trackPageview']); //riga B

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>

Come potete vedere le prime righe settano rispettivamente l'account su cui tracciare i dati (riga A) e la pagina da tracciare (riga B). Il resto sono "cose sue" e lasciamogliele fare. Questo script viene chiamato "asincrono" in quanto la sua esecuzione avviene parallelamente alla lettura della pagina del sito, senza interrompere l'esecuzione in attesa di risposte.

Cosa manca rispetto al precedente script? Manca l'oggetto pageTracker. Ma vediamo come fare per tornare ad una situazione facile.

 

Come tracciare gli eventi

Torniamo alla praticità e vediamo come tracciare gli eventi col nuovo script asincrono di Google Analytics. La cosa è comunque facile: 

_gaq.push(['_trackEvent', ' + category + ', ' + action + ']); 

 La cosa più semplice che potete fare è crearvi un piccolo helper che faccia questa operazione in modo autono:

function trackEvent(category, action, link){
    _gaq.push(['_trackEvent', ' + category + ', ' + action + ', ' + link ']); //riga B
}

Non vi resta che chiamarlo come nel precedente post e lui si occuperà di tutto:

<a href="ciccio.html" onClick="trackEvent('ClickInterni','click','ciccio.html');">vai da ciccio</a>

Poi ovviamente potete personalizzarla come volete, magari passando il this alla funzione, ed estraendo il link con la proprietà href. In ogni caso ogni comunicazione con il tracker va fatta tramite il metodo PUSH, le cui specifiche le trovate sulle API di Google Analytics.

 

Centralizzare il tracker

Piccolo paragrafetto per i più skillati con la programmazione. Come ho scritto su stackoverflow, volendo è possibile centralizzare il reperimento dell'oggetto tracker usando una funzione come questa, da aggiungere dopo il codice di installazione di analytics, in modo da usare il precedente codice nella pagina:

//mantain syntax between old and new asynch methods
//http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html#Syntax

function _pageTracker (type) {
this.type = type;
this._trackEvent = function(a,b,c) {
_gaq.push(['_trackEvent', a, b, c]);
};
}
var pageTracker = new _pageTracker();

E il gioco è fatto. Nei vecchi siti potete così aggiornare lo script di tracking da sincrono a asincrono, guadagnando in prestazioni e non dovendo toccare tutti gli script di tracking precedentemente creati.

Se volete approfondire consiglio la Asynchronous Tracking Guide.

Loading Facebook Comments ...

Un pensiero su “Google Analytics: eventi codice nuovo

  1. Pingback: Sot223

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *