In questo post ti mostro come si creano le dimensioni personalizzate in Google Analytics attraverso l’implementazione di Google Tag Manager.
Inoltre ti suggerisco 6 custom dimensions che ogni sito dovrebbe avere.
Per questo motivo ti descrivo la guida completa su come implementare queste 6 dimensioni:
- Hit Timestamp
- Client ID
- Session ID
- Hit Type
- Full Referrer
- GTM Container ID
Non dimenticare di essere sempre GDPR compliant e rispettare le scelta effettuate dagli utenti in base ai tuoi cookies. Per implementare questa soluzione ricordati di leggere questo post.
Pronto? Iniziamo 🙂
1. Hit Timestamp Custom Dimension
Questa informazione non è presente attraverso l’API di Google Analytics.
Risulta però utile per controllare la bontà dei dati più nel dettaglio. Si può raccogliere l’informazione in tutti i tag che vengono attivati oppure solo su alcuni (per esempio le transazioni).
1.1 Crea la dimensione in Google Analytics
Per prima cosa vai su Google Analytics per creare la Dimensione Personalizzata.
Le custom dimensions sono processate a livello di Proprietà quindi, nel pannello Admin, le trovi sotto Property:

Sotto la voce Custom Definition, seleziona Custom Dimensions e crea una nuova Dimensione Personalizzata con le seguenti caratteristiche:
- Name: cd1 Hit Timestamp (per mia comodità utilizzo la sigla cd ossia custom dimension + il numero di indice della dimensione per trovarla più facilmente nei rapporti di Google Analytics)
- Scope: Hit
- Active: flag attivo

Salva.
Il lavoro su Google Analytics è finito. Ricordati dell’indice (index) della dimensione personalizzata appena creata perché ci servirà su Google Tag Manager.
1.2 Creare una variabile in Google Tag Manager
In GTM dobbiamo ora creare una variabile di tipo Custom JavaScript.
In Variables crea una nuova variabile di tipo User-Defined con le seguenti caratterisiche:
- Name: Hit Timestamp Local Time With Offset
- Variable Type: Custom JavaScript
Ora inserisci il seguente codice all’interno della variabile:
function() {
// Get local time as ISO string with offset at the end
var now = new Date();
var tzo = -now.getTimezoneOffset();
var dif = tzo >= 0 ? '+' : '-';
var pad = function(num) {
var norm = Math.abs(Math.floor(num));
return (norm < 10 ? '0' : '') + norm;
};
return now.getFullYear()
+ '-' + pad(now.getMonth()+1)
+ '-' + pad(now.getDate())
+ 'T' + pad(now.getHours())
+ ':' + pad(now.getMinutes())
+ ':' + pad(now.getSeconds())
+ '.' + pad(now.getMilliseconds())
+ dif + pad(tzo / 60)
+ ':' + pad(tzo % 60);
}
Il codice inserito proviene da questo scambio su Stack Overflow e mantiene come struttura la stessa suggerita da Simo Ahava in questo post, in pratica Anno-Mese-Giorno-Ora-Timezone dell’utente (+02:00 è perché l’utente proveniva dall’Italia):
2020-08-11T11:30:29.511+02:00
1.3 Passare i dati a Google Analytics
Adesso dobbiamo passare i valori a GA.
Ci sono due modi: inviare l’informazione ad ogni singolo tag che viene attivato sul mio sito web oppure modificare la GA Settings Variable. Io userò il secondo metodo.
Se non hai ancora creato la Google Analytics Settings Variable trovi qui un post dettagliato per impostarla.
Vado nelle impostazioni della GA Settings Variable e imposto i valori nella voce Custom Dimensions come qui sotto:
- Index: 1 (ho inserito 1 perché è il numero di indice della dimensione personalizzata che ho creato su Google Analytics. Il numero deve quindi combaciare con il settaggio in GA)
- Dimension Value: {{Hit Timestamp Local Time With Offset}} (puoi selezionare il mattoncino di fianco e selezionare la variabile creata in precedenza)

Salva.
In questo modo, ogni volta che il tag di GA, che utilizza questa variabile (Google Analytics Settings Variable), viene attivato, i valori verranno raccolti nella dimensione personalizzata di Google Analytics.
1.4 Testare
Controlliamo che tutto sia corretto facendo un refresh della modalità Preview di GTM sul sito internet:

Purtroppo non si può fare il test nel Rapporto in tempo reale di GA.
Ci possono volere anche un paio d’ore per vedere il valore correttamente processato all’interno dei Rapporti di Analytics, che apparirà pressapoco in questo modo:

2. Client ID Custom Dimension
Il Client ID è usato per contare gli utenti unici ed è generato casualmente da Google Analytics.
Anche in questo caso possiamo raccogliere questi valori con una dimensione personalizzata.
Ti consiglio un metodo leggermente diverso rispetto al punto precedente, ossia utilizzando il metodo customTask.
Ti mostro di seguito come fare.
2.1 Creare la dimensione in Google Analytics
Passaggio molto veloce, come nel punto 1.1:
- Name: cd2 Client ID
- Scope: Session (scopri di più qui perché lo scopo è Session e non Hit)
- Active: flag attivo

Salva.
2.2 Usare il customTask builder tool di Simo Ahava
Simo ha creato un ottimo e veloce strumento per generare il codice da inserire nella variabile di tipo Custom JavaScript.
Seleziona i valori che vuoi includere e copia il codice che si genera:

2.3 Creare una variabile in Google Tag Manager
Creiamo ora una variabile con le seguenti caratteristiche:
- Name: Custom JS – Custom Task – cd2 Client ID
- Variable Type: Custom Javascript
- Custom Javascript: incolla il codice che hai copiato dal tool al punto precedente. Attenzione! Ricordati di cambiare il numero di indice della variabile. Se in Google Analytics l’index è 2 per la dimensione personalizzata Client ID allora dovrai inserire ‘2’ anche nel codice, altrimenti i dati non saranno passati alla dimensione che vuoi)

Salva.
2.4 Passare i dati a Google Analytics
Ora modifichiamo la variabile Google Analytics Settings Variable con le seguenti caratteristiche nella voce Fields To Set:
- Field name: customTask
- Value: {{Custom JS – Custom Task – cd2 Client ID }}

Salva.
In questo caso non andiamo a modificare la voce Custom Dimensions perché abbiamo creato un CustomTask che svolge la medesima funzione.
2.5 Testare
Testa il corretto funzionamento e controlla che i dati vengano passati a Google Analytics:

Come puoi vedere l’informazione viene inviata alla dimension2.
Questa è la dimensione personalizzata creata su GA con il nome cd2 Client ID, dove ‘2’ è il numero di indice.
3. Session ID Custom Dimension
Il valore raccolto in questa dimensione è una stringa inviata, per ogni hit di pageview, a GA.
3.1 Creare la dimensione in Google Analytics
Crea la dimensione in GA:
- Name: cd3 Session ID
- Scope: Session (scopri di più qui perché lo scopo è Session e non Hit)
- Active: flag attivo

Salva.
3.2 Creare una variabile in GTM
Passa a Google Tag Manager e crea una nuova variabile con le seguenti caratteristiche:
- Name: Random Session ID – Custom JS
- Variable Type: Custom Javascript
Inserisci il seguente codice:
function() {
return new Date().getTime() + '.' + Math.random().toString(36).substring(5);
}

Salva.
3.3 Passare i dati a Google Analytics
Modifichiamo la Google Analytics Settings Variable inserendo la nuova dimensione personalizzata.
- Index: 3
- Dimension Value: {{Random Session ID – Custom JS}}

Salva.
3.4 Testare
Testa l’implementazione per controllare che i dati siano raccolti correttamente.

4. Hit Type Custom Dimension
Questa dimensione permette di leggere il tipo di hit che viene inviato a Google Analytics: event, pageview etc.
Anche per questa dimensione consiglio di utilizzare il tool creato da Simo.
Bisogna però avere un’accortezza: non si possono inserire più customTask all’interno della variabile che manda i dati a GA, altrimenti la bontà del dato è compromesso.
Come fare allora? Utilizzando il builder, basterà selezionare più di una voce e inserirlo in una variabile custom Javascript.
4.1 Creare la dimensione in Google Analytics
Crea una nuova dimensione personalizzata in Google Analytics e ricordati il suo indice (nel mio esempio è 4):

Salva.
4.2 Usare il customTask builder
Ora creiamo il codice affinché vengano inviate a GA due dimensioni personalizzate:
- Client ID (visto nel punto 2.)
- Hit Type
Seleziona i due valori e copia il codice.

4.3 Modifica la variabile creata al punto 2.3
Passiamo a GTM e modifichiamo la variabile dandogli un nome parlante:
- Name: Custom JS – Custom Task – cd2 Client ID – cd4 Hit Type
- Variable Type: Custom Javascript
- Custom Javascript: incolla il codice (fai attenzione a modificare il numero di indice delle dimensioni create in precedenze. Nel mio esempio è indice 2 per Client ID e indice 4 per Hit Type)

Salva.
4.4 Passare i dati a Google Analytics
Ora modifichiamo la Google Analytics Settings Variable e inseriamo il nuovo valore appena creato:
- value: {{Custom JS – Custom Task – cd2 Client ID – cd4 Hit Type}}
In modo che sia in questo modo:

Salva e testa il tutto.
5. Full Referrer Custom Dimension
Con questa dimensione personalizzata puoi sapere la pagina precedente per ogni hit.
5.1 Creare la dimensione in Google Analytics
Crea la seguente dimensione personalizzata in GA:
- Name: cd5 Full Referrer
- Scope: Hit
- Active: flag attivo

Salva.
5.2 Creare una variabile in GTM
Creiamo una nuova variabile in Google Tag Manager:
- Name: JS Variable – document.referrer
- Variable Type: JavaScript Variable
- Global Variable Name: document.referrer

5.3 Passare i dati a Google Analytics
Entriamo nella Google Analytics Settings Variable e inseriamo la nuova custom dimension:
- Index: 5
- Dimension Value: {{JS Variable – document.referrer}}

Salva.
5.4 Testare
Testa se i dati sono processati correttamente:

6. GTM Container Custom Dimension
Con questa dimensione customizzata puoi inviare le informazioni a Google Analytics sul numero del tuo container di GTM.
6.1 Creare la dimensione in Google Analytics
Creiamo una nuova dimensione nel pannello Admin di GA:
- Name: cd6 GTM Container ID
- Scope: Hit
- Active: flag attivo

Salva.
6.2 Attivare la variabile in GTM
Vai sulla voce Variable – Built-In Variables e attiva la voce Container ID come nell’immagine sotto:

6.3 Inviare i dati a Google Analytics
Entra nella variabile Google Analytics Settings Variable e aggiungi la nuova dimensione personalizzata:
- Index: 6
- Dimension Value: {{Container ID}}

Salva.
6.4 Testare
Controlla che tutto funzioni correttamente:

Conclusioni
In questo post ti ho mostrato step-by-step come implementare 6 importanti dimensioni personalizzate.
Hai visto quale è il meccanismo di fondo per la creazione di una dimensione attraverso Google Analytics e Google Tag Manager.
Ogni sito internet ed ogni business hanno le loro peculiarità, quindi la scelta di quali dimensioni custom vuoi aggiungere, dipende solo ed esclusivamente dagli scopi che vuoi raggiungere con la raccolta di queste informazioni.
Ricorda che lo scopo primario deve essere quello di aiutarti a prendere decisioni data-driven.
Infine, non dimenticare mai di testare le implementazioni che stai facendo prima di pubblicare il contenitore!
Buone analisi 🙂
Potrebbero interessarti anche i seguenti articoli:
Single Page Application e Google Tag Manager – La guida completa
Scroll tracking in Google Tag Manager
Come si crea il tag di Google Analytics in Google Tag Manager ?
Quali Viste impostare su Google Analytics?
Cosa significa la voce (other) in Google Analytics?
Query Parameters in Google Analytics
Le scorciatoie da tastiera più usate per lavorare con Google Spreadsheet