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 usare la libreria di monitoraggio più recente, analytics.js.
Guida rapida del codice di monitoraggio
Lo snippet Analytics è una piccola porzione di codice JavaScript da incollare nelle pagine. Attiva il monitoraggio di Google Analytics
inserendo ga.js
nella pagina. Per utilizzarlo sulle 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 del modello del tuo sito web in modo che
venga visualizzato prima del tag </head>
di chiusura.
Se non devi eseguire altre operazioni oltre al monitoraggio di base delle pagine, consulta il riferimento al monitoraggio per un elenco dei metodi disponibili nell'API e la Guida all'utilizzo per informazioni dettagliate sull'utilizzo della sintassi asincrona. Per istruzioni dettagliate sulla configurazione del monitoraggio, consulta l'articolo del Centro assistenza sulla configurazione del 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, quindi
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 insieme nella stessa pagina. Per istruzioni sulla migrazione, consulta Migrazione ad Asinc.
Come funziona la sintassi asincrona
L'oggetto _gaq
è ciò che rende possibile la sintassi asincrona.
Agisce come una coda, ovvero una struttura di dati first-in,first-out che raccoglie le chiamate API
finché ga.js
non è pronto a eseguirle. Per aggiungere qualcosa alla coda, utilizza
il metodo _gaq.push
.
Per inserire una chiamata API in coda, devi convertirla dalla sintassi JavaScript tradizionale a 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. Gli altri elementi sono gli argomenti che vuoi passare al metodo dell'oggetto tracker. Può trattarsi di qualsiasi valore JavaScript.
Il codice seguente 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 è implicata, ma è comunque necessario un modo per impostare l'ID proprietà web del tracker. Per fornire questa funzionalità è stato aggiunto il metodo _setAccount
. Tutti gli altri metodi degli oggetti tracker sono gli stessi sia nel monitoraggio asincrono sia in quello tradizionale. ma solo la sintassi.
Per ulteriori informazioni sulla sintassi asincrona, consulta la pagina di riferimento sul monitoraggio per il metodo _gaq.push
.
Monitoraggio con i gestori di eventi HTML
È necessario utilizzare anche la sintassi del monitoraggio asincrono all'interno dei gestori di eventi DOM. Ad esempio, il seguente pulsante genera un evento al clic.
<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 ed eseguito. Utilizzando il monitoraggio tradizionale, il browser potrebbe generare un'eccezione in questa situazione.
Push di Functions nella coda
Oltre agli array di comandi, puoi eseguire il push degli 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 inviate a _gaq
. Questa tecnica è utile per chiamare le API di monitoraggio che restituiscono valori. Ad esempio, il codice seguente 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. Sebbene ciò sia accettabile, puoi
utilizzare il metodo _gat._createTracker
per creare un oggetto permanente e accessibile a livello globale.
Il seguente codice illustra il funzionamento.
_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 riportato sopra crea un tracker asincrono all'interno della funzione, quindi lo fa riferimento in un secondo momento nell'array di comandi.
È possibile anche il caso d'uso opposto. Ad esempio, se devi utilizzare un oggetto tracker asincrono creato tramite un array di comandi inviati in precedenza, usa il metodo _gat._getTrackerByName
. Il codice seguente ne mostra il funzionamento.
_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/'); });
Una pressione, più comandi
Anziché digitare _gaq.push(...)
per ogni chiamata, puoi eseguire il push di tutti i comandi contemporaneamente. Il codice seguente 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 sola chiamata.
Divisione dello snippet
Se preferisci inserire lo snippet Analytics in fondo alla pagina, tieni presente che non è necessario posizionare l'intero snippet alla fine.
Puoi comunque conservare la maggior parte dei vantaggi del caricamento asincrono dividendo lo snippet a metà: mantieni la prima metà in cima alla pagina e il resto verso il basso. Poiché la prima parte dello snippet di monitoraggio ha poco o nessun effetto sul rendering della pagina, puoi lasciarla nella parte superiore e inserire la parte dello snippet che inserisce ga.js
in fondo.
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 aggregate 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 su _gaq
possono rimanere in alto.
Come evitare gli errori più comuni
Quando utilizzi la sintassi asincrona o tradizionale, tieni presente quanto segue:
- I nomi dei metodi sono sensibili alle maiuscole.
Se utilizzi il nome di un metodo senza utilizzare correttamente le maiuscole e le minuscole, le chiamate al metodo non funzioneranno. Esempi:_gaq.push(['_trackpageview']); // bad _gaq.push(['_trackPageview']); // good
- Utilizza i nomi dei metodi corretti.
Se il monitoraggio non funziona correttamente, accertati di utilizzare il nome del metodo corretto. Esempi:_gaq.push(['_setDomain', 'example.com']); // bad _gaq.push(['_setDomainName', 'example.com']); // good
- Solo le stringhe devono essere trasmesse tra virgolette. Tutti gli altri tipi devono essere lasciati senza virgolette.
Qualsiasi valore che non sia una stringa, come un valore booleano, valori letterali oggetto, funzioni o array, deve essere passato senza virgolette. Utilizza solo le virgolette quando inserisci un elemento da interpretare come stringa. Se stai eseguendo la migrazione dalla sintassi tradizionale, qualsiasi parametro di funzione trasmesso senza virgolette deve rimanere senza virgolette 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, potrebbe essere necessario disattivare il codice di monitoraggio di Google Analytics in una pagina senza dover rimuovere lo snippet di codice. Ad esempio, puoi procedere in questo modo se le norme sulla privacy del tuo sito prevedono la possibilità per un visitatore di disattivare il monitoraggio di Google Analytics.
Lo snippet di monitoraggio ga.js
ora include una proprietà finestra che, se impostata su true
, disattiva l'invio dei dati a Google Analytics da parte dello snippet di monitoraggio.
Quando Google Analytics tenta di impostare un cookie o di inviare i dati
ai server di Google Analytics, controlla se questa
proprietà è impostata su true
. In questo caso, avrà lo stesso effetto che avrebbe se il visitatore avesse
installato il plug-in del browser per la disattivazione di Google Analytics.
Per disattivare il monitoraggio, imposta la seguente proprietà della finestra su true:
window['ga-disable-UA-XXXXXX-Y'] = true;
Dove il valore UA-XXXXXX-Y
corrisponde all'ID proprietà web per il quale vuoi disattivare il monitoraggio.
Questa proprietà della finestra deve essere impostata prima della chiamata del codice di monitoraggio. Questa proprietà deve essere impostata su ogni pagina in cui vuoi disattivare il monitoraggio di Google Analytics. Se la proprietà non è impostata o viene impostata su false, il monitoraggio funzionerà come di consueto.
Ad esempio, se il codice di monitoraggio di Google Analytics in una pagina include:
_gaq.push['_setAccount', 'UA-123456-1']
Se vuoi impedire che il codice di monitoraggio imposti i cookie o invii nuovamente i dati a Google Analytics, utilizza il seguente codice prima della chiamata del 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
Di seguito è riportato un semplice esempio di codice che puoi utilizzare per fornire la funzionalità di disattivazione agli 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>
Successivamente, aggiungi il seguente snippet di codice prima dello snippet di codice ga.js. Assicurati di sostituire il valore di gaProperty
da
UA-XXXX-Y
alla proprietà utilizzata sul tuo sito.
Si tratta dello stesso valore che passi 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, viene eseguita la funzione gaOptout
personalizzata. In futuro imposterà un cookie per molto tempo e disattiverà la raccolta dei dati di analytics.js.
Quando un utente torna su questo sito, lo script precedente verifica se il cookie di disattivazione è stato impostato. In questo caso, verrà disattivata anche la raccolta dei dati di
analytics.js.
Forzare SSL (HTTPS)
Per forzare Google Analytics a inviare sempre i dati utilizzando SSL, anche da pagine non sicure (HTTP), utilizza il metodo
_gat._forceSSL
, come nell'esempio seguente:
_gaq.push(['_setAccount', 'UA-12345-1']); _gaq.push(['_gat._forceSSL']); // Send all hits using SSL, even from insecure (HTTP) pages. _gaq.push(['_trackPageview']);