◔ Analytics e misurazione

Data layer: strutturarlo bene e mantenerlo nel tempo

Cos'è un data layer, perché separa il sito dagli strumenti di misura, come strutturare contesto ed eventi e come evitare che degeneri nel tempo.

Quando il tracciamento di un sito viene costruito leggendo il testo dei pulsanti o le classi CSS degli elementi, funziona finché qualcuno non cambia il design. Basta rinominare «Invia» in «Richiedi un preventivo» e la conversione smette di essere registrata senza che nessuno se ne accorga. Il data layer nasce per risolvere questo problema: è uno strato intermedio in cui il sito pubblica, in modo esplicito e stabile, le informazioni che gli strumenti di misura devono leggere.

Che cos'è, concretamente

Nella forma più diffusa è un array JavaScript globale in cui il sito inserisce oggetti. Ogni oggetto descrive un fatto: la pagina caricata è di un certo tipo, l'utente ha completato un'azione, un prodotto è stato visualizzato. Gli strumenti di misura, spesso attraverso un tag manager, ascoltano questo array e reagiscono.

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: "form_submit",
  form_id: "contatti",
  form_step: "completato",
  page_type: "servizio"
});

Il punto chiave è il contratto: gli sviluppatori si impegnano a pubblicare questi dati con questi nomi; chi gestisce il tracciamento si impegna a leggerli solo da lì.

Perché conviene

  • Stabilità. Il design può cambiare senza rompere la misura, perché il tracciamento non dipende dall'aspetto della pagina.
  • Dati che la pagina non mostra. Il sito conosce informazioni invisibili nel codice HTML, come la categoria interna di un servizio o lo stato di un utente registrato.
  • Indipendenza dagli strumenti. Se cambi strumento di analytics, il data layer resta lo stesso; si rifà solo il collegamento.
  • Verificabilità. Si può ispezionare l'array nella console del browser e controllare che cosa viene pubblicato.

Due tipi di informazioni

È utile separare i dati di contesto da quelli di evento:

Tipo Quando si pubblica Esempi
Contesto della pagina al caricamento, prima degli strumenti tipo di pagina, lingua, sezione, stato di accesso
Evento quando l'azione avviene invio modulo, download, aggiunta al carrello

Il contesto va inserito il prima possibile, idealmente prima del caricamento del tag manager, così che ogni evento successivo lo possa usare.

Regole di struttura

  1. Nomi coerenti con la tassonomia degli eventi già definita: stesse parole, stesso formato, per esempio minuscolo con trattino basso.
  2. Struttura piatta quando possibile. Gli oggetti annidati sono utili per elenchi di prodotti, ma per il resto complicano la lettura.
  3. Valori normalizzati. «servizio», non «Servizio» in una pagina e «SERVIZIO» in un'altra.
  4. Niente dati personali. Nomi, email e telefoni non devono entrare nel data layer: tutto ciò che vi entra può finire in strumenti esterni.
  5. Eventi dopo il fatto. Si pubblica «form_submit» quando il server ha accettato l'invio, non al clic sul pulsante.

Documentazione condivisa

Il data layer funziona solo se è documentato in un posto accessibile a sviluppatori e analisti. Per ogni evento servono: nome, quando viene pubblicato, proprietà con tipo e valori ammessi, pagina in cui compare, esempio di oggetto. Questa specifica è il riferimento quando si discute se un dato è sbagliato: si controlla se il sito pubblica ciò che la specifica prevede, e se il tracciamento legge ciò che il sito pubblica.

Come degenera

Ho visto data layer diventare inutilizzabili per accumulo. I segnali tipici:

  • lo stesso concetto pubblicato con tre nomi diversi, aggiunti in anni diversi;
  • proprietà sempre vuote, rimaste da funzionalità eliminate;
  • eventi pubblicati due volte perché due componenti fanno la stessa cosa;
  • valori che cambiano formato da una pagina all'altra.

La prevenzione è la stessa di qualsiasi codice: revisione delle modifiche, test automatici che verificano la presenza e il formato degli oggetti nelle pagine principali, pulizia periodica di ciò che non si usa più.

Un test minimo

Un controllo automatico può aprire le pagine chiave, eseguire le azioni principali e confrontare il contenuto del data layer con la specifica. Se un evento manca o una proprietà ha un valore inatteso, il rilascio si ferma. Costa poco da impostare e intercetta la maggior parte delle rotture prima che arrivino nei report.

In sintesi

  • Il data layer è un contratto esplicito tra sito e strumenti di misura.
  • Rende il tracciamento indipendente dal design e dallo strumento di analytics.
  • Separa i dati di contesto, pubblicati subito, dagli eventi, pubblicati quando l'azione è confermata.
  • Mantieni nomi coerenti, valori normalizzati e nessun dato personale.
  • Documentalo, testalo automaticamente e ripuliscilo con regolarità.
MM
Marco Marzaduri

Marco Marzaduri si occupa di cybersecurity, informatica forense e sviluppo web. Laureato in informatica, unisce il rigore dell'analisi tecnica all'attenzione per le persone che usano la tecnologia.

Leggi anche