ga.js è una libreria JavaScript per misurare il modo in cui gli utenti interagiscono con il tuo sito web. Questa è una libreria precedente. Se stai iniziando a utilizzare Google Analytics, ti consigliamo di utilizzare la libreria di monitoraggio più recente, analytics.js.
Guida rapida al codice di monitoraggio
Lo snippet di Analytics è una piccola porzione di codice JavaScript che incolli nelle tue pagine. Attiva il monitoraggio di Google Analytics
inserendo ga.js
nella pagina. Per utilizzarlo nelle tue
pagine, copia lo snippet di codice riportato di seguito,
sostituendo UA-XXXXX-X
con il tuo ID proprietà web.
Incolla questo snippet nella pagina modello del tuo sito web in modo che venga visualizzato prima del tag </head>
di chiusura.
Se dovete eseguire altre operazioni oltre al monitoraggio delle pagine di base, consulta il riferimento per il monitoraggio per un elenco di metodi disponibili nell'API e consulta la Guida all'utilizzo per i dettagli sull'utilizzo della sintassi asincrona. Per istruzioni dettagliate sull'impostazione del monitoraggio, consulta l'articolo del Centro assistenza su come impostare il monitoraggio.
<script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (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>
Lo snippet riportato sopra rappresenta la configurazione minima necessaria per monitorare una pagina in modo asincrono. Utilizza _setAccount
per impostare l'ID proprietà web della pagina e poi chiama _trackPageview
per inviare i dati di monitoraggio ai server di Google Analytics.
Importante: se aggiorni le pagine dallo snippet tradizionale alla versione asincrona più recente, devi prima rimuovere lo snippet di monitoraggio esistente. Non è consigliabile utilizzare entrambi gli snippet nella stessa pagina. Per istruzioni sulla migrazione, vedi Migrazione ad Async.
Come funziona la sintassi asincrona
La sintassi asincrona è l'oggetto _gaq
.
Funge da coda, ovvero una struttura di dati first-in-first che raccoglie le chiamate API fino a quando ga.js
non è pronta per eseguirle. Per aggiungere qualcosa alla coda, utilizza il metodo _gaq.push
.
Per eseguire il push di una chiamata API alla coda, devi convertirla dalla sintassi JavaScript tradizionale in un array di comandi. Gli array di comandi sono semplicemente array JavaScript conformi a un determinato formato. Il primo elemento in un array di comandi è il nome del metodo dell'oggetto tracker che vuoi chiamare. Deve essere una stringa. Il resto degli elementi sono gli argomenti che vuoi trasmettere al metodo dell'oggetto tracker. Può essere qualsiasi valore JavaScript.
Il seguente codice chiama _trackPageview()
utilizzando la sintassi tradizionale:
var pageTracker = _gat._getTracker('UA-XXXXX-X'); pageTracker._trackPageview();
Il codice equivalente nella sintassi asincrona richiede due chiamate a _gaq.push
.
_gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']);
Nella sintassi asincrona la creazione dell'oggetto tracker è implicita, ma è comunque necessario un modo per impostare l'ID proprietà web per il tracker. Il metodo _setAccount
è stato aggiunto per fornire questa funzionalità. Tutti gli altri metodi degli oggetti del tracker sono gli stessi nel monitoraggio asincrono e tradizionale. Solo la sintassi è diversa.
Per scoprire di più sulla sintassi asincrona, consulta la pagina Riferimento monitoraggio per il metodo _gaq.push
.
Monitoraggio con gestori di eventi HTML
La sintassi di monitoraggio asincrona deve essere utilizzata anche dai gestori di eventi DOM. Ad esempio, il pulsante seguente genera un evento quando viene selezionato.
<button onclick="_gaq.push(['_trackEvent', 'button3', 'clicked'])"></button>
Anche se viene fatto clic su questo pulsante prima che il browser abbia terminato il caricamento di ga.js
, l'evento verrà acquisito e alla fine eseguito. In questo caso, il browser potrebbe generare un'eccezione.
Trasferimento di funzioni in coda
Oltre agli array di comandi, puoi anche eseguire il push di oggetti funzione nella coda _gaq
. Le funzioni possono contenere qualsiasi codice JavaScript arbitrario e, come gli array di comandi, vengono eseguite nell'ordine in cui vengono trasferite a _gaq
. Questa
tecnica è utile per chiamare le API di monitoraggio che restituiscono
valori. Ad esempio, il seguente codice crea un URL linker e
imposta la proprietà href
per un link con il risultato.
_gaq.push(function() { var pageTracker = _gat._getTracker('UA-XXXXX-X'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
L'esempio precedente utilizza _gat
per creare un oggetto tracker, ma poiché è assegnato a una
variabile locale, il codice esterno alla funzione non può utilizzarlo. Anche se è accettabile, puoi usare il metodo _gat._createTracker
per creare un oggetto permanente e accessibile a livello globale.
Il seguente codice dimostra come funziona.
_gaq.push(function() { var pageTracker = _gat._createTracker('UA-XXXXX-X', 'myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); }); _gaq.push(['myTracker._trackPageview']);
L'esempio sopra crea un tracker asincrono all'interno della funzione e vi fa riferimento in un secondo momento in base al nome nell'array di comando.
È possibile anche il caso d'uso opposto. Ad esempio, se devi utilizzare un oggetto tracker asincrono creato tramite un array di comandi sottoposto a push in precedenza, utilizza il metodo _gat._getTrackerByName
. Il seguente codice dimostra come funziona.
_gaq.push(['myTracker._setAccount', 'UA-XXXXX-X']); _gaq.push(function() { var pageTracker = _gat._getTrackerByName('myTracker'); var link = document.getElementById('my-link-id'); link.href = pageTracker._getLinkerUrl('http://example.com/'); });
One Push, più comandi
Anziché digitare _gaq.push(...)
per ogni chiamata, puoi eseguire il push di tutti i comandi contemporaneamente. Il seguente codice dimostra questa tecnica.
_gaq.push( ['_setAccount', 'UA-XXXXX-X'], ['_setDomainName', 'example.com'], ['_setCustomVar', 1, 'Section', 'Life & Style', 3], ['_trackPageview'] );
Funziona perché il metodo _gaq.push
imita il metodo Array.push
, che
consente il push di più elementi con una chiamata.
Suddivisione dello snippet
Se preferisci inserire lo snippet di Analytics in fondo alla pagina, devi sapere che non è necessario inserire l'intero snippet in fondo.
Puoi comunque conservare la maggior parte dei vantaggi del caricamento asincrono dividendo lo snippet a metà: mantieni la prima metà nella parte superiore della pagina e sposta il resto in basso. Poiché la prima parte dello snippet di monitoraggio ha un impatto minimo o nullo sul rendering della pagina, puoi lasciare questa parte in alto e inserire la parte dello snippet che inserisce ga.js
in basso.
Una pagina con lo snippet asincrono diviso a metà potrebbe avere il seguente aspetto:
<html> <head> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); </script> </head> <body> <p>Page Content</p> <script src="some_random_script.js"></script> <p>Page Content</p> <script type="text/javascript"> (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> </body> </html>
Entrambe le parti di codice devono essere racchiuse nei propri tag script, ma solo le ultime sei righe dello snippet asincrono originale devono essere spostate in fondo. Tutte le righe che eseguono il push dei metodi in _gaq
possono rimanere in cima.
Come evitare gli errori comuni
Quando utilizzi la sintassi asincrona o tradizionale, tieni presente quanto segue:
- I nomi dei metodi sono sensibili alle maiuscole.
Se utilizzi un nome di metodo senza maiuscole e minuscole, le chiamate di metodo non funzioneranno. Esempi:_gaq.push(['_trackpageview']); // bad _gaq.push(['_trackPageview']); // good
- Utilizza i nomi dei metodi corretti.
Se il monitoraggio non funziona correttamente, assicurati di utilizzare il nome corretto del metodo. Esempi:_gaq.push(['_setDomain', 'example.com']); // bad _gaq.push(['_setDomainName', 'example.com']); // good
- Devi solo trasmettere le stringhe tra virgolette. Tutti gli altri tipi non devono essere racchiusi tra virgolette.
Qualsiasi valore diverso da una stringa, come valori booleani, valori letterali di oggetti, funzioni o array, deve essere trasmesso senza virgolette. Utilizza le virgolette solo quando trasmetti qualcosa che deve essere interpretato come una stringa. Se esegui la migrazione dalla sintassi tradizionale, l'eventuale parametro della funzione passato senza virgolette deve rimanere non citato nella sintassi asincrona. Esempi:_gaq.push(['_setAllowLinker', 'false']); // bad _gaq.push(['_setAllowLinker', false]); // good
- Assicurati che le stringhe non contengano spazi vuoti iniziali o finali.
Esempi:_gaq.push(['_setAccount', ' UA-65432-1']); // bad _gaq.push(['_setAccount', 'UA-65432-1']); // good
Disattivazione del monitoraggio
In alcuni casi, può essere necessario disattivare il codice di monitoraggio di Google Analytics in una pagina senza dover rimuovere lo snippet di codice. Ad esempio, puoi farlo se le norme sulla privacy del tuo sito includono la possibilità per un visitatore di disattivare il monitoraggio di Google Analytics.
Lo snippet di monitoraggio ga.js
ora include una proprietà della finestra che, se impostata su true
, impedisce allo snippet di monitoraggio di inviare i dati a Google Analytics.
Quando Google Analytics tenta di impostare un cookie o inviare nuovamente i dati ai server di Google Analytics, controlla se questa proprietà è impostata su true
. In caso affermativo, avrà lo stesso effetto di un visitatore che ha installato il plug-in del browser per la disattivazione di Google Analytics.
Per disattivare il monitoraggio, imposta la seguente proprietà finestra su true:
window['ga-disable-UA-XXXXXX-Y'] = true;
Dove il valore UA-XXXXXX-Y
corrisponde all'ID della proprietà web in cui vuoi disattivare il monitoraggio.
Questa proprietà finestra deve essere impostata prima che venga richiamato il codice di monitoraggio. Questa proprietà deve essere impostata su ogni pagina in cui vuoi disattivare il monitoraggio di Google Analytics. Se la proprietà non viene impostata o viene impostata su false, il monitoraggio funziona come di consueto.
Ad esempio, se il codice di monitoraggio di Google Analytics in una pagina include:
_gaq.push['_setAccount', 'UA-123456-1']
Vuoi disattivare il codice di monitoraggio per impostare i cookie o inviare nuovamente i dati a Google Analytics e poi utilizzare il seguente codice prima che venga richiamato il codice di monitoraggio:
window['ga-disable-UA-123456-1'] = true;
Se utilizzi più tracker su una pagina con più ID proprietà web, devi impostare la variabile window['ga-disable-UA-XXXXXX-Y']
equivalente su true
per ogni proprietà web per disattivare completamente il monitoraggio di Google Analytics su quella pagina.
Esempio
Ecco un semplice esempio di codice che puoi utilizzare per fornire funzionalità di disattivazione ai tuoi utenti.
Innanzitutto, aggiungi un nuovo link HTML al tuo sito per eseguire la logica di disattivazione:
<a href="javascript:gaOptout()">Click here to opt-out of Google Analytics</a>
Poi aggiungi il seguente snippet di codice prima dello snippet di codice ga.js. Assicurati di sostituire il valore di gaProperty
da
UA-XXXX-Y
con la proprietà utilizzata sul tuo sito.
Si tratta dello stesso valore trasmesso al comando _setAccount
.
<script> // Set to the same value as the web property used on the site var gaProperty = 'UA-XXXX-Y'; // Disable tracking if the opt-out cookie exists. var disableStr = 'ga-disable-' + gaProperty; if (document.cookie.indexOf(disableStr + '=true') > -1) { window[disableStr] = true; } // Opt-out function function gaOptout() { document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStr] = true; } </script>
Quando un utente fa clic sul link HTML di disattivazione, verrà eseguita la funzione
gaOptout
personalizzata. Imposta un cookie
per molto tempo in futuro e disattiva la raccolta dei dati analytics.js.
Quando un utente torna a questo sito, lo script sopra riportato verifica se il cookie di disattivazione è stato impostato. In caso affermativo, la raccolta
dei dati analytics.js verrà disattivata.
Forzare l'utilizzo di SSL (HTTPS)
Per far sì che Google Analytics invii sempre i dati tramite SSL, anche dalle pagine non sicure (HTTP), utilizza il metodo _gat._forceSSL
, come in questo esempio:
_gaq.push(['_setAccount', 'UA-12345-1']); _gaq.push(['_gat._forceSSL']); // Send all hits using SSL, even from insecure (HTTP) pages. _gaq.push(['_trackPageview']);