L’ultima riga di JavaScript misura frammento aggiunge un send
il comando ga()
comando di coda per inviare una visualizzazione di pagina di Google Analytics:
ga('create', 'UA-XXXXX-Y', 'auto');ga('send', 'pageview');
L’oggetto che sta facendo l’invio è il tracker, che era in programma per la creazione nella riga di codice precedente, e i dati che viene inviato è i dati memorizzati sul tracker.,
Questa guida descrive i vari modi per inviare dati a Google Analytics e spiega come controllare quali dati vengono inviati.
Hit, tipi di hit e protocollo di misurazione
Quando un tracker invia dati a Google Analytics si chiama invio di un hit e ogni hit deve avere un tipo di hit., Il tag di Google Analytics invia un colpo di tipo pageview
; altri tipi di colpo include screenview
event
transaction
item
social
exception
e timing
. Questa guida delinea i concetti e i metodi comuni a tutti i tipi di hit. Le singole guide per ogni tipo di hit sono disponibili nella sezione Misurazione delle interazioni utente comuni nella navigazione a sinistra.,
L’hit è una richiesta HTTP, costituita da coppie di campi e valori codificati come stringa di query e inviati al protocollo di misurazione.
Se hai gli strumenti per gli sviluppatori del tuo browser aperti quando carichi una pagina che utilizza analytics.js, puoi vedere gli hit inviati nella scheda rete. Cerca le richieste inviate a google-analytics.com/collect
.
Quali dati vengono inviati
Quando si invia un hit al protocollo di misura, i tracker inviano tutti i campi che sono attualmente memorizzati e sono parametri validi del protocollo di misura., Ad esempio, campi come title
e location
vengono inviati ma cookieDomain
e hitCallback
non lo sono.
In alcuni casi, si desidera inviare campi a Google Analytics per l’hit corrente ma non per eventuali hit successivi. Un esempio di questo è un evento hit in cui i campieventAction
eeventLabel
sono rilevanti solo per l’hit corrente.
Per inviare i campi con il solo hit corrente, puoi passarli come argomenti al metodo send
., Per inviare i dati di campo con tutti gli hit successivi, è necessario aggiornare il tracker utilizzando il metodoset
.
Il metodo di invio
Il metodosend
di un tracker può essere chiamato direttamente sull’oggetto tracker stesso o aggiungendo un comandosend
alla coda di comandiga()
. Poiché la maggior parte delle volte non si dispone di un riferimento all’oggetto tracker, utilizzare la coda di comandi ga()
è il modo consigliato per inviare i dati del tracker a Google Analytics.,
Utilizzando il ga() comando di coda
La firma per l’aggiunta di un send
il comando ga()
coda dei comandi come segue:
ga('send', , , );
Come detto sopra, i valori specificati tramite il hitType
...fields
e fieldsObject
parametri di ottenere il mandato per l’attuale colpo solo. Non vengono memorizzati sull’oggetto tracker, né vengono inviati con hit successivi.,
Se uno qualsiasi dei campi passati con il comandosend
è già impostato sull’oggetto tracker, verranno utilizzati i valori passati nel comando anziché i valori memorizzati sul tracker.
Le chiamate al comandosend
devono specificare un hitType e, a seconda del tipo specificato, possono essere richiesti anche altri parametri. Per maggiori dettagli, vedere le singole guide per misurare le interazioni comuni dell’utente nella navigazione a sinistra.,
Il modo più semplice per utilizzare il comando send
, che funziona per tutti i tipi di hit, è passare tutti i campi usando il parametro fieldsObject
. Ad esempio:
ga('send', { hitType: 'event', eventCategory: 'Video', eventAction: 'play', eventLabel: 'cats.mp4'});
Per comodità, alcuni tipi di hit consentono di passare i campi comunemente usati direttamente come argomenti al comando send
., Ad esempio, il comando send
per il tipo di hit “event” potrebbe essere riscritto come:
ga('send', 'event', 'Video', 'play', 'cats.mp4');
Per un elenco completo di quali campi possono essere passati come argomenti per i vari tipi di hit, vedere la sezione “parametri” del riferimento al metodo send.
Utilizzo di un tracker con nome
Se si utilizza un tracker con nome invece del tracker predefinito, è possibile passare il suo nome nella stringa di comando.,
Il seguente send
comando sarà chiamato sul tracker denominato “myTracker”:
ga('myTracker.send', 'event', 'Video', 'play', 'cats.mp4');
il tracker oggetto stesso
Se si dispone di un riferimento all’oggetto tracker, è possibile chiamare tracker send
metodo direttamente:
ga(function(tracker) { tracker.send('event', 'Video', 'play', 'cats.mp4');});
Sapere quando il colpo è stato inviato
In alcuni casi, è necessario sapere quando una ha colpito è il fatto di essere inviato a Google Analytics, in modo che si possa intervenire immediatamente in seguito., Questo è comune quando è necessario registrare una particolare interazione che allontanerebbe un utente dalla pagina corrente. Molti browser smettono di eseguire JavaScript non appena la pagina inizia a scaricare, il che significa che le tue analisi.i comandi js per inviare hit potrebbero non essere mai eseguiti.
Un esempio di questo è quando si desidera inviare un evento a Google Analytics per registrare che un utente ha fatto clic sul pulsante di invio di un modulo. Nella maggior parte dei casi, facendo clic sul pulsante Invia inizierà immediatamente a caricare la pagina successiva e qualsiasi comando ga('send', ...)
non verrà eseguito.,
La soluzione a questo è intercettare l’evento per fermare lo scarico della pagina. Puoi quindi inviare il tuo hit a Google Analytics come al solito, e una volta che il hit è stato inviato, puoi inviare nuovamente il modulo a livello di codice.
hitCallback
Per ricevere una notifica quando un hit è fatto l’invio, si imposta ilhitCallback
campo. hitCallback
è una funzione che viene chiamata non appena l’hit è stato inviato con successo.,
L’esempio seguente mostra come annullare l’azione di invio predefinita di un modulo, inviare un hit a Google Analytics e quindi inviare nuovamente il modulo utilizzando la funzione hitCallback
:
Gestione dei timeout
L’esempio precedente funziona bene, ma ha un problema serio. Se (per qualsiasi motivo) l’analisi.la libreria js non viene caricata, la funzionehitCallback
non verrà mai eseguita. E se la funzionehitCallback
non viene mai eseguita, gli utenti non saranno mai in grado di inviare il modulo.,
Ogni volta che si inserisce la funzionalità del sito critico all’interno della funzionehitCallback
, è sempre necessario utilizzare una funzione di timeout per gestire i casi in cui l’analisi.la libreria js non viene caricata.
Il prossimo esempio aggiorna il codice precedente per utilizzare un timeout. Se passa un secondo dopo che l’utente fa clic sul pulsante di invio e hitCallback
non è stato eseguito, il modulo viene comunque inviato nuovamente.
Se stai utilizzando il modello sopra in molti punti del tuo sito, è probabilmente più semplice creare una funzione di utilità per gestire i timeout.,
La seguente funzione di utilità accetta una funzione come input e restituisce una nuova funzione. Se la funzione restituita viene chiamata prima del periodo di timeout (il timeout predefinito è di un secondo), cancella il timeout e richiama la funzione di input. Se la funzione restituita non viene chiamata prima del periodo di timeout, la funzione di input viene chiamata indipendentemente.
Ora puoi facilmente avvolgere tutte le funzionihitCallback
con un timeout per assicurarti che il tuo sito funzioni come previsto anche nei casi in cui i tuoi hit non riescono a inviare o l’analisi.la libreria js non viene mai caricata.,
Specificare diversi meccanismi di trasporto
Per impostazione predefinita, analytics.js sceglie il metodo HTTP e il meccanismo di trasporto con cui inviare in modo ottimale gli hit. Le tre opzioni sono: 'image'
(utilizzando un Image
oggetto), 'xhr'
(utilizzando un XMLHttpRequest
oggetto), o 'beacon'
utilizzando il nuovo navigator.sendBeacon
metodo.
I primi due metodi condividono il problema descritto nella sezione precedente (dove spesso gli hit non vengono inviati se la pagina viene scaricata)., Il metodonavigator.sendBeacon
, al contrario, è una nuova funzionalità HTML creata per risolvere questo problema.
Se il browser dell’utente supporta il navigator.sendBeacon
, è possibile specificare 'beacon'
come il transport
meccanismo e non devono preoccuparsi di impostare un callback hit.
Il seguente codice imposta il meccanismo di trasporto su 'beacon'
nei browser che lo supportano.
ga('create', 'UA-XXXXX-Y', 'auto');// Updates the tracker to use `navigator.sendBeacon` if available.ga('set', 'transport', 'beacon');
La misurazione di determinati tipi di interazioni utente può talvolta richiedere implementazioni complesse., Tuttavia, in molti casi queste implementazioni sono già state sviluppate e rese disponibili come analisi.plugin js. La prossima guida spiega come utilizzare analytics.plugin js con la coda di comandiga()
.