
Event tracking: implementazione pratica
Implementare event tracking robusto con SDK, gestione errori e batching.
Cosa imparerai
- Comprendere il problema analitico e il contesto decisionale
- Applicare esempi, metriche e controlli a casi reali
Event tracking: implementazione pratica
L’evento signup_completed sembra semplice finché qualcuno non chiede se include le email verificate, gli account invitati o gli utenti creati da un admin. L’implementazione pratica del tracking serve proprio a trasformare intenzioni vaghe in eventi testabili, versionati e coerenti tra frontend, backend e warehouse. È questo il confine su cui lavoriamo in questa lezione.
Problema reale
Nel campo della raccolta dati il problema è ottenere eventi affidabili prima che dashboard e modelli amplifichino errori invisibili. Non è teoria isolata: serve a migliorare una scelta concreta con dati, assunzioni esplicite e controlli minimi. Se non sai dire quale decisione cambia, quale dato osservi e quale errore vuoi evitare, la lezione non è ancora competenza applicata.
Modello concettuale
| Fase | Cosa chiarire | Output |
|---|---|---|
| Domanda | Quale scelta reale deve migliorare? | Decisione da prendere |
| Misura | Quale segnale osservabile rappresenta il problema? | Metrica o dato sorgente |
| Controllo | Quale baseline rende il risultato interpretabile? | Confronto credibile |
| Azione | Che cosa cambia dopo l’analisi? | Prossimo passo operativo |
Questi quattro punti, decisione, dato, controllo e azione, guidano ogni approfondimento tecnico che segue.
Formalizzazione rigorosa
Per rendere analizzabile il tracking definisci l’unità di lavoro, che può essere un evento, una proprietà, un utente, una sessione o una fonte dati. La colleghi a una metrica osservabile come la completezza, i duplicati, la consistenza semantica o la copertura, e poi dichiari la decisione attesa: un tracking plan, un contratto evento, una QA o una correzione prioritaria.
| Elemento | Specifica richiesta |
|---|---|
| Unità di analisi | evento, proprietà, utente, sessione o fonte dati |
| Segnale principale | completezza, duplicati, consistenza semantica, copertura |
| Baseline | periodo precedente, gruppo comparabile, benchmark, scenario controfattuale |
| Decisione | tracking plan, contratto evento, QA, correzione prioritaria |
| Rischio | scambiare un numero disponibile per una prova sufficiente |
La formalizzazione regge quando un altro analista può riprodurre la logica, criticare le assunzioni e arrivare alla stessa decisione.
Esempio o caso studio
Il team nota che il funnel di onboarding cambia ogni settimana perché alcuni eventi vengono inviati due volte e altri mancano su mobile. La priorità diventa scrivere test di tracking, controllare i duplicati e fissare una definizione unica per ogni step.
| Evidenza osservata | Lettura prudente | Azione consigliata |
|---|---|---|
| Il numero migliora | Potrebbe essere effetto reale o variazione normale | Cercare confronto e segmentazione |
| Un segmento cambia più degli altri | La media aggregata nasconde differenze | Separare coorti o casi d’uso |
| Il costo cresce insieme al risultato | L’impatto va letto sul margine | Stimare trade-off e sostenibilità |
Anatomia di un evento
Un evento si definisce con nome, trigger, proprietà, tipi, esempi, casi esclusi e test di qualità. Il tracking è professionale quando un cambio di prodotto non altera in silenzio il significato della metrica.
Ecco un esempio di evento in JSON:
{
"event": "purchase_completed",
"user_id": "usr_abc123",
"anonymous_id": "anon_xyz789",
"timestamp": "2024-03-15T14:30:00Z",
"properties": {
"order_id": "ord_456",
"amount": 99.99,
"currency": "EUR",
"products": [{"sku": "ABC", "qty": 2}]
},
"context": {
"page_url": "/checkout/confirmation",
"user_agent": "Mozilla/5.0...",
"ip": "1.2.3.4"
}
}
Sul piano pratico conviene usare user_id quando l’utente è autenticato e anonymous_id altrimenti, così da unire il percorso prima e dopo il login. Il timestamp indica quando è successo l’evento, non quando è stato processato. Il context raccoglie i metadati automatici come URL, user agent e IP, tenuti separati dalle proprietà di business.
Gestire gli errori
Il tracking non deve mai bloccare l’esperienza dell’utente. Il primo pattern è il fire-and-forget, cioè l’invio in background senza attendere risposta. Quando una chiamata fallisce serve un retry con backoff, che riprova dopo intervalli crescenti. Un buffer locale in localStorage salva gli eventi per inviarli in un secondo momento. In nessun caso il codice di tracking deve lanciare eccezioni capaci di interrompere l’app.
Batching
Inviare un evento alla volta è inefficiente. Raggruppare 10-20 eventi per batch, oppure spedire ogni 5-10 secondi, riduce le richieste HTTP del 90% senza che l’utente percepisca alcuna perdita di freschezza.
Caso reale: Netflix e la disciplina delle metriche
Netflix costruisce le decisioni di prodotto intorno a segnali comportamentali osservabili: completamento degli episodi, tempo di ricerca, abbandono precoce, ritorno settimanale, efficacia delle raccomandazioni. Il punto non è copiare Netflix, ma adottare lo stesso approccio metodologico, in cui il dato è infrastruttura decisionale e non ornamento.
Netflix non misura solo il click immediato, ma anche segnali di qualità come il tempo di visione o il ritorno. È così che evita di ottimizzare vanity metric che sembrano positive nel breve ma erodono il valore nel lungo periodo.
Lo stesso principio vale per il tracking, che deve restare collegato a un outcome concreto. Se il risultato non aiuta a scegliere tra due azioni, l’analisi è incompleta.
Esempio SQL: costruire una vista di controllo
Una query generica crea una base analitica con metrica, segmento e finestra temporale. Seleziona gli eventi degli ultimi 180 giorni con user_id non nullo, li raggruppa per settimana, utente, fonte e dispositivo, e calcola metriche come eventi totali, giorni attivi, diversità degli eventi e raggiungimento dell’outcome chiave. Aggregando poi per settimana, fonte e dispositivo puoi osservare trend e segmenti, e formulare ipotesi più precise partendo da una superficie di osservazione comune.
Esempio Python: controllare stabilità e anomalie
Una metrica utile deve essere allo stesso tempo stabile e sensibile. In Python calcoli la variazione settimana su settimana, la media mobile, la deviazione standard e lo z-score per individuare le anomalie significative. Così eviti di reagire alle oscillazioni casuali e segnali solo le variazioni che meritano un’indagine.
Errori comuni da evitare
L’aggregazione fatta troppo presto è il rischio più frequente: una media globale può nascondere segmenti che si muovono in direzioni opposte. Poi c’è la qualità del dato, che va sempre verificata, perché duplicati, tracking incompleto, timezone incoerenti e cambi di definizione falsano qualsiasi lettura. Infine, attenzione a confondere correlazione e causalità, perché un’associazione non dimostra che una feature causi la conversione.
Ogni analisi dovrebbe portare con sé almeno tre controlli: una definizione esplicita della metrica, un confronto per segmento e una verifica contro un periodo precedente o un gruppo di controllo.
Lab / esercizio
Livello base
Scrivi una scheda sintetica per l’event tracking che includa decisione da supportare, metrica primaria, baseline, rischio principale e azione se il segnale viene confermato.
Livello intermedio
Costruisci una tabella con tre segmenti o scenari e, per ciascuno, indica cosa cambia, una spiegazione alternativa plausibile e un controllo da effettuare prima di raccomandare un’azione.
Livello research-grade
Prepara un decision memo con ipotesi, dati richiesti, criteri di esclusione, controlli di qualità, soglia decisionale, rischio residuo e piano di monitoraggio dopo la decisione.
Dataset e materiali consigliati
Usa tracking plan, log eventi, GA4, CDP, warehouse e dataset sintetici di sessioni. Se non hai dati reali, crea un dataset sintetico con almeno 200 righe, una dimensione temporale, una dimensione segmento e una metrica di outcome.
Errore tipico da evitare
L’errore più comune è trattare il risultato come una verità generale invece che come evidenza condizionata. Prima di agire, controlla baseline, assunzioni e costo dell’errore.
Quiz o checkpoint
- Quale decisione concreta dovrebbe migliorare questa lezione?
- Quale unità di analisi rende il problema misurabile?
- Quale baseline useresti per evitare una lettura ingenua?
- Quale errore tipico potrebbe cambiare la conclusione?
- Quale output consegneresti a uno stakeholder non tecnico?
Riepilogo operativo
L’event tracking è utile quando produce una decisione più chiara, non quando aggiunge solo terminologia. Collegare problema, dati, metrica, segmentazione e azione trasforma la lezione in pratica verificabile.
Quali utenti hanno fatto 'page_view' sulla pagina '/prodotti/elettronica' ma NON hanno mai fatto 'purchase'? Usa una subquery o LEFT JOIN per trovarli.
Percorso collegato
Lezioni da leggere insieme
Questi collegamenti portano la lezione dentro il resto del corso: basi da riprendere, passaggi successivi e connessioni tematiche tra moduli.