fra@fracucci.it:~/site$
~/home/risorse/guida-base-data-layer
#analytics·2025.09.27

Data Layer: la Guida (base ma completa) per un Tracking Avanzato

posted by fra@fracucci.it · in /risorse/

Il Data Layer in Google Tag Manager (GTM) è un concetto spesso percepito come ostico, soprattutto per i non tecnici, ma fondamentale per chiunque voglia fare tracciamento in maniera avanzata e strategica sul proprio sito.

Se hai già familiarità con Google Tag Manager, preparati a sbloccare il suo vero potenziale comprendendo il Data Layer.

Cos'è esattamente il Data Layer

Il Data Layer è un oggetto JavaScript presente sulla tua pagina web. Immagina sia un secchio o un ponte: è il punto centrale dove le informazioni su interazioni utente e contenuti della pagina vengono memorizzate e organizzate in modo prevedibile.

Questo "secchio" è ciò che GTM usa per estrarre i dati dal sito e trasmetterli ai tag. Invece di "scavare" nel codice HTML, GTM si interfaccia direttamente con il Data Layer.

r/analytics · domanda · 58 upvote · 2025

Il Data Layer è qualcosa che devo configurare io o è già presente sul sito appena installo GTM?

chiesto da u/gtm_beginner

Ho appena installato GTM. Ho letto di questo "Data Layer" ma non capisco se devo fare qualcosa per attivarlo o se esiste già in automatico dopo l'installazione di GTM.

risposta di u/fra_fracucci · top answer

GTM crea automaticamente un oggetto `dataLayer` vuoto quando installi il suo snippet. Esiste già — ma è vuoto. Il punto è che un Data Layer vuoto è inutile: serve a qualcosa solo quando ci metti dentro dati specifici del tuo sito (categoria di pagina, valore del prodotto, stato login dell'utente, ecc.). Quella parte la devi aggiungere tu tramite `dataLayer.push()` nel codice del sito, oppure usare plugin come "GTM for WordPress" che popolano automaticamente il Data Layer con metadati della pagina. GTM può comunque leggere alcune cose senza Data Layer esplicito (URL, click, scroll) tramite i suoi listener nativi — ma per dati personalizzati, qualcuno deve popolare il Data Layer a mano.

Perché il Data Layer è fondamentale

  • Dati dinamici e contestuali: raccoglie informazioni che cambiano in base all'azione utente (es. valore di una transazione, prodotto acquistato).
  • Canale di comunicazione strutturato tra la pagina web e GTM.
  • Maggiore flessibilità e controllo sul tracciamento.
  • Base per tracciamenti avanzati: e-commerce, eventi personalizzati, attributi utente.

Come funziona: il concetto di "push"

Il Data Layer è una lista di variabili JavaScript. Ogni elemento è una coppia chiave-valore (es. pageCategory: 'signup').

Il metodo principale per aggiungere o modificare dati è dataLayer.push(). Esempio: per tracciare l'autore di un articolo, il Data Layer conterrà autore: 'Francesco Cucciniello'. GTM recupera il valore tramite una Variabile di Livello Dati e lo usa nei tag.

Chi popola il Data Layer

  1. Sviluppatori — per dati complessi (e-commerce, transazioni).
  2. Plugin — per CMS come WordPress (es. "GTM for WordPress" che popola autore o categoria pagina).
  3. Listener di GTM — per interazioni standard (es. clic su link).
  4. Codice JavaScript personalizzato — per casi specifici.

Metodi per aggiungere dati

  • dataLayer = [{...}] (sconsigliato): inizializza/sovrascrive l'intero Data Layer. Funziona solo se posizionato prima dello snippet GTM.
  • dataLayer.push({...}) (raccomandato): aggiunge senza sovrascrivere. Sintassi:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'login',
  loginMethod: 'email'
});

Questa sintassi assicura che il Data Layer sia sempre disponibile.

Posizionamento del codice

  • Sopra lo snippet GTM (header): se i dati servono immediatamente al caricamento (es. User ID con la pageview).
  • In qualsiasi punto / su interazione: se i dati sono legati a interazioni utente specifiche (clic, invio form, login).

La dichiarazione window.dataLayer = window.dataLayer || []; deve sempre venire prima dello script GTM.

Il Data Layer si resetta a ogni pageview

Importante: il Data Layer si resetta a ogni caricamento di pagina. Se ti servono dati persistenti su più pagine (User ID, stato carrello), devono essere "spinti" nuovamente nel Data Layer ad ogni caricamento. Usa convenzioni di denominazione coerenti.

Usare i dati del Data Layer in GTM

1. Creare una Variabile di Livello Dati

  • GTM → "Variabili" → "Nuova variabile" → "Variabile di livello dati".
  • "Nome variabile di livello dati": esattamente la chiave del Data Layer (es. pagePostAuthor).
  • Nome significativo: dlv - Nome Autore.

2. Creare un Trigger di Evento Personalizzato

  • "Attivatori" → "Nuovo" → "Evento personalizzato".
  • "Nome evento": esattamente quello del push (es. login).

Esempi pratici

  • E-commerce avanzato: ID transazione, prodotti, prezzi, quantità.
  • Performance autori blog: nome autore per analisi engagement.
  • Interazioni form: abbandono campi, completamento form.
  • Contenuti dinamici: tipo pagina, stato login, attributi utente.
  • Video e scroll avanzato: stato riproduzione video, % di scroll.
r/webdev · problema · 74 upvote · 2025

Il mio dataLayer.push non viene rilevato da GTM. La variabile risulta undefined nella modalità Anteprima.

chiesto da u/tracking_dev

Ho aggiunto un dataLayer.push con un evento personalizzato nel codice del sito. Nella modalità Anteprima di GTM la variabile che dovrebbe contenere il valore risulta "undefined". Cosa sto sbagliando?

risposta di u/fra_fracucci · top answer

Tre cause probabili, in ordine di frequenza. Prima: il nome della variabile in GTM non corrisponde esattamente alla chiave nel push — tutto è case-sensitive, `pageCategory` e `pagecategory` sono variabili diverse. Seconda: il push viene eseguito prima della dichiarazione `window.dataLayer = window.dataLayer || []`, oppure il push è nel body prima dello snippet GTM. La soluzione sicura è sempre dichiarare `window.dataLayer` prima dello snippet e fare il push solo dopo. Terza: il tag di GTM si attiva su `Container Loaded` ma il push arriva dopo (es. su risposta asincrona di un'API). In questo caso, cambia il trigger del tag a un "Evento personalizzato" che corrisponde all'`event` che metti nel push — così GTM aspetta il momento giusto.

Errori comuni

  1. Usare una variabile Data Layer quando i dati non sono ancora disponibili: tag che si attiva su Container Loaded ma i dati arrivano dopo → variabile undefined. Soluzione: posiziona il codice prima dello snippet GTM, o cambia trigger a DOM Ready.
  2. Usare dataLayer = [...] sotto lo snippet GTM: rompe tutto. Usa sempre dataLayer.push().
  3. Dimenticare la case-sensitivity: in GTM tutto è case-sensitive. UserDatauserdata.
r/growth · domanda · 49 upvote · 2025

Chi deve scrivere il codice del Data Layer: il developer o il marketer? Come si coordina il lavoro?

chiesto da u/mkt_vs_dev

In azienda ho il developer che gestisce il sito e io che gestisco il tracking. Il Data Layer lo deve scrivere lui o posso farlo io? Come gestiamo la comunicazione?

risposta di u/fra_fracucci · top answer

Il codice del Data Layer lo scrive il developer (o chi gestisce il sito), ma la specifica di cosa mettere e quando viene dal marketer. La divisione che funziona meglio: il marketer redige un documento di specifiche ("su questa pagina voglio questi dati: categoria, prezzo, stato utente") e il developer implementa i push. Senza quel documento, il developer non sa cosa tracciare. Il punto di frizione classico è quando il marketer dice "aggiungi il valore del prodotto" e il developer non sa in che formato o in quale momento del flusso. Un template di specifica Data Layer — anche un Google Sheet semplice con colonna "evento", "variabili", "quando si attiva" — taglia i tempi di andata e ritorno a metà.

Test e pubblicazione

Usa la Modalità Anteprima di GTM per vedere quali dati vengono spinti nel Data Layer, come si attivano i tag e quali valori vengono trasmessi. Poi "Invia" per pubblicare.

Conclusione

Il Data Layer è un pilastro fondamentale per un tracciamento efficace. Non è solo uno strumento per tecnici: con pratica e pianificazione, anche i marketer possono sfruttarlo.

Pensalo come un copione dettagliato: contiene tutte le informazioni sulle scene (pagine) e sulle azioni degli attori (utenti). GTM, come un assistente alla regia, lo legge costantemente e istruisce i tuoi strumenti di analisi a registrare ogni dettaglio.

// FILE.download ──────────
Guida Data Layer
↓ SCARICA
© 2026 francesco cucciniello · fatto a manofra@fracucci.it · P. IVA 13977810962made with 🖤 · rap 'n patan