Hits retroattive in Google Analytics… si può!

Una regola assodata di Google Analytics è che l’hit inviata alla piattaforma, sia essa una visualizzazione di pagina, un evento o una transazione verrà mostrata nei report in corrispondenza del momento temporale (giorno, ora e minuto) in cui è stata acquisita. In altre parole, inviando una sequenza di interazioni queste saranno acquisite in ordine cronologico.

Esiste tuttavia un parametro del protocollo di misurazione che consente di collocare un’hit in un momento precedente rispetto al suo reale tempo di invio, precedente anche ad altre interazioni avvenute prima di essa. Il parametro è Queue Time (qt) o Tempo di coda.

La sua definizione nella documentazione afferma che:

Utilizzato per raccogliere hit offline/latenti. Il valore rappresenta il delta temporale (in millisecondi) tra il momento in cui si è effettivamente verificato l’hit e il momento in cui tale hit è stato inviato a Google Analytics. Il valore deve essere maggiore o uguale a 0. I valori superiori a quattro ore possono comportare la mancata elaborazione delle hits.

https://developers.google.com

Per fare un esempio, se inviassi un’hit a Google Analytics alle ore 11:30:00 e appendessi al protocollo di misurazione il parametro &qt=3600000 tale hit nella piattaforma risulterà inviata alle ore 10:30:00 poiché 3.600.000 millisecondi rappresentano 1 ora.

Quando usarlo

Sicuramente può essere utile integrare tale parametro con sistemi di raccolta dati offline, come i registri di cassa nei punti vendita, che a fine giornata inviano in batch tutti gli acquisiti/transazioni ai server di Google Analytics, garantendone l’acquisizione in piattaforma al momento effettivo della transazione anziché tutte nello stesso momento dell’invio dei dati.

Nell’esempio seguente ho effettuato una serie di invii di transazione tramite il protocollo di misurazione, tutti alle ore 20.00. Ho utilizzato l’Hit Builder e nello specifico l’interazione di purchase di esempio della documentazione di Google Analytics, dove mi sono preoccupato solo di modificare l’ID di transazione ad ogni invio ed ovviamente il valore del parametro qt, inizialmente 0 ed incrementato ogni volta di 3600000 millisecondi.

L’immagine seguente (Fig. 1) mostra il risultato incrociando la dimensione secondaria Ora del giorno:

Fig. 1 – Transazioni inviate retroattivamente

Nonostante l’invio sia stato effettuato alle ore 20:00 per tutte le transazioni mostrate in elenco, Google Analytics le ha acquisite come se le avessi inviate una ogni ora a partire dalle ore 12:00.

Da tenere in considerazione

La documentazione indica che “I valori superiori a quattro ore possono comportare la mancata elaborazione delle hits“, tuttavia questo non significa che il tempo massimo di retroattività dove può essere inviata una hit è di 4 ore. All’interno dello stesso giorno le hit possono essere inviate in modo retroattivo a qualsiasi orario, anche dalle 23:59 di sera per far risultare l’hit alle 00:01 della mattina del giorno stesso. La limitazione indicata nella documentazione si riferisce invece alla retroattività in caso sia stata superata la mezzanotte ma si intenda inviare l’hit al giorno precedente. In questo caso infatti se l’hit viene inviata entro le 4 ore del mattino del giorno seguente risulterà valida, altrimenti no. Con questa premessa il tempo massimo di retroattività può essere di 27:59:59 ore, su questo aspetto rimando ad un interessante articolo di Simo Ahava dove vengono mostrati diversi esempi a riguardo.

È bene sapere inoltre che il concetto di tempo è legato alle impostazioni del fuso orario definite a livello vista di Google Analytics. La voce Paese o zona del fuso orario che, ad esempio, per l’Italia è (GMT+02:00).
Essendo a livello di vista, e potendo una Proprietà avere diverse viste che sono configurate con diversi fusi orari, in caso di automatismi è importare recuperare il timezone (vedere le Management API) e basarsi su di esso per regolare il tempo di retroattività.

Curiosità

Con lo stesso clientId dell’ultima hit inviata più di 30 minuti prima, ho condotto un test inviando una pageview con un tempo di coda che mi riportasse l’hit all’interno dei 30 minuti della sessione in questione.
L’esito è stato che la pageview è stata associata a quella specifica sessione nonostante l’invio ad Analytics fosse avvenuto qualche ora dopo. A conferma del fatto che l’invio dell’hit viene riconosciuto a tutti gli effetti come se fosse effettivamente avvenuto in quel momento.