
Cheat sheet di marketing analytics
Riferimento rapido per metriche e pattern di marketing analytics.
Cosa imparerai
- Applicare definizione operativa, baseline e incertezza a ogni metrica condivisa
- Calcolare CAC fully-loaded e LTV di coorte e confrontare attribuzione last-click e data-driven
- Misurare il lift incrementale con holdout e validare la tassonomia UTM contro liste chiuse
Collegamenti
Cheat sheet di marketing analytics
Il riferimento operativo da tenere aperto mentre decidi
Questa pagina cammina sul binario tabellare: ogni metrica ha un perimetro, una baseline e un denominatore, e la verità si costruisce confrontando tabelle e coorti. Il suo scopo è raccogliere in un unico riferimento operativo le definizioni, le baseline e i controlli per leggere metriche, attribuzione, CAC e LTV senza farti ingannare dalle medie.
Quando il board chiede se una campagna sta funzionando, la risposta non è mai un singolo numero. È una catena corta: quale decisione dobbiamo prendere, quale metrica la rappresenta davvero, con quale baseline la confrontiamo e cosa ci farebbe cambiare idea. Questa pagina serve a questo. Non è un glossario da memorizzare, è il riferimento operativo da tenere aperto mentre controlli naming, attribuzione, marginalità e dashboard prima di trasformare un report in una scelta di budget.
Il marketing analytics fallisce raramente per mancanza di dati. Fallisce perché confronta periodi non confrontabili, attribuisce meriti al canale sbagliato, divide per il denominatore sbagliato o presenta una media che nasconde tre realtà diverse. Le sezioni sotto seguono l’ordine in cui un analista esperto ragiona: prima la solidità della misura, poi da dove viene il merito, quanto costa e quanto rende un cliente, con quale infrastruttura lo dimostri, come lo tracci, come provi l’incrementalità e come lo rendi leggibile e attivabile.
Il protocollo in sette mosse
Ecco la sequenza che un analista esperto applica prima di ogni decisione:
- Scrivi definizione operativa, baseline e incertezza accanto a ogni metrica condivisa.
- Scomponi ogni media per canale, coorte e device prima di trarre conclusioni.
- Confronta attribuzione last-click e data-driven sullo stesso periodo e annota chi vince e chi perde.
- Calcola CAC fully-loaded e LTV di coorte, mai sul primo click né su coorti immature.
- Unifica la spesa giornaliera tra piattaforme in un unico schema con importi al netto dei rimborsi.
- Valida ogni UTM contro liste chiuse e verifica click ID, consenso e invio server-side sugli eventi critici.
- Verifica ogni riallocazione con un holdout e rileggi margine, resi e churn oltre al KPI primario.
Come leggere una metrica senza farti ingannare
Ogni metrica di marketing è una frazione con una storia. Il tasso di conversione è conversioni / sessioni, ma quali sessioni? Con consenso tracciato, senza bot, con quale finestra di attribuzione? Il CAC è costo totale / nuovi clienti, ma quali costi entrano al numeratore? Se due persone calcolano lo stesso KPI con perimetri diversi, il confronto è finto.
La prima mossa è fissare tre elementi per ogni numero che condividi: definizione operativa, baseline e incertezza. La definizione operativa significa scrivere la query o la regola che lo genera, non il nome commerciale della dashboard. La baseline significa avere un riferimento: stesso periodo dell’anno scorso, coorte precedente, gruppo di controllo, forecast pre-campagna. Senza baseline un +18% non dice nulla. L’incertezza è l’onestà minima: su campioni piccoli o finestre corte, l’oscillazione casuale domina.
Un controllo rapido che salva sempre è scomporre la media. Il ROAS blended di account può salire mentre il ROAS marginale crolla, perché hai tagliato un canale debole e alzato la media senza creare valore. Lo stesso vale per il tasso di apertura email o il CTR: segmenta per coorte di acquisizione, per canale di provenienza, per dispositivo. Se il segnale cambia segno tra segmenti, la media è una bugia comoda.
Attenzione anche alle metriche proxy. Il view-through rate di un video, i like, le sessioni: utili come segnali precoci, pericolosi come obiettivi. Ottimizzare un proxy sposta il comportamento verso il proxy, non verso il fatturato. Regola pratica: un proxy può stare in dashboard solo se accanto c’è la metrica di outcome a cui è legato e la data dell’ultima verifica della correlazione.
L’attribuzione oltre il last click
Il last click assegna tutto il merito dell’ordine all’ultimo tocco prima dell’acquisto. È comodo, è disponibile ovunque, ed è sistematicamente distorto: premia la domanda catturata — brand search, direct, retargeting — e punisce la domanda creata — display, social prospecting, video, creator. Chi alloca budget sul last click finisce per tagliare proprio i canali che alimentano il funnel tra sei settimane.
I modelli a regole — first click, lineare, time decay, position-based — distribuiscono meglio il merito ma restano arbitrari: i pesi li decidi tu, non i dati. Il time decay ad esempio assume che i tocchi recenti contino di più, ipotesi ragionevole per l’e-commerce d’impulso e discutibile per B2B con cicli di novanta giorni.
I modelli data-driven stimano il contributo confrontando percorsi simili con e senza quel canale. L’idea di riferimento viene dai valori di Shapley della teoria dei giochi: ogni canale è un giocatore di una coalizione che genera conversioni, e il suo credito è il contributo marginale medio su tutte le combinazioni possibili di tocchi:
dove è l’insieme dei canali e è il valore generato dalla combinazione . In pratica nessuna azienda calcola la formula esatta su milioni di percorsi: si usano approssimazioni con catene di Markov, modelli di sopravvivenza o stime bayesiane. Il punto concettuale resta: il credito dipende da quanto il risultato peggiorerebbe senza quel canale, non da dove appare nel percorso.
Un confronto tipico chiarisce l’effetto. Prendi sei canali e due viste diverse sulle stesse conversioni:
| Canale | Conversioni last click | Conversioni data-driven | Lettura |
|---|---|---|---|
| Ricerca brand | 1.200 | 750 | il last click la gonfia, intercetta domanda esistente |
| Ricerca generica | 800 | 950 | contributo reale più alto, cattura intent mid-funnel |
| Social prospecting | 300 | 650 | il last click lo dimezza, crea domanda |
| Display | 50 | 250 | quasi invisibile in last click, assist fondamentale |
| 450 | 400 | leggera sovrastima, lavora su base già calda | |
| Direct | 200 | 100 | spesso è brand search o email mal tracciata |
La mossa operativa è confrontare le due viste sullo stesso periodo: dove il divario ha questo segno, l’ipotesi da testare è spostare il 15-20% del budget da brand a prospecting e display con un esperimento, non in un colpo solo.
Tre limiti onesti dei modelli data-driven. Primo, vedono solo ciò che è tracciato: senza impression viewable, senza click ID, senza consenso, il confronto è cieco. Secondo, sono correlazionali: se social e search crescono insieme per stagionalità, il modello fatica a separare causa ed effetto. Terzo, degradano in fretta con i cambiamenti di mix e privacy — iOS, cookie di terze parti, ad blocker. Per questo l’attribuzione va sempre affiancata a esperimenti di incrementalità, non usata da sola per decidere.
Verdetto: confronta i modelli sullo stesso periodo, individua chi vince e chi perde nel passaggio, e testa la riallocazione con un esperimento invece di applicarla in un colpo solo.
Quanto vale davvero un cliente: CAC e LTV
Il CAC sembra una divisione semplice e quasi nessuno lo calcola completo. La forma corretta è:
Con 50.000 euro di ads, 30.000 di stipendi, 5.000 di tool e 1.000 nuovi clienti, il CAC è 85 euro, non 50. Escludere stipendi e tool rende ogni canale apparentemente efficiente e nasconde il costo di gestione. Segmenta sempre il CAC per canale, campagna e coorte mensile: un CAC medio stabile può nascondere un canale in deriva e uno nuovo che scala bene.
Il LTV è il margine cumulato atteso da un cliente nel suo ciclo di vita. La versione storica è descrittiva:
La versione predittiva stima il futuro dai primi segnali — recency, frequency, monetary — con modelli tipo Buy ‘Til You Die per la frequenza e gamma-gamma per il valore. In pratica: un cliente che compra due volte nei primi quarantacinque giorni ha un valore atteso molto diverso da chi compra una volta con sconto del 30%, anche se il primo ordine è identico.
Il rapporto che guida le decisioni è LTV / CAC. Sotto 1 perdi soldi a ogni cliente. Tra 1 e 3 sei in zona fragile: basta un reso in più o un mese di retention debole per andare sotto. Sopra 3 il modello scala, sopra 5 puoi spingere aggressivamente. Ma il rapporto medio mente quanto le medie in generale. Calcolalo per coorte: la coorte di gennaio da paid social con sconto di benvenuto ha LTV diverso dalla coorte organica di marzo. Se il payback supera i dodici mesi, aggiungi il vincolo di cassa: puoi avere un rapporto sano e morire di liquidità mentre aspetti che rientri.
Un esempio numerico aiuta a fissare il ragionamento. Spesa Google Ads 10.000 euro per 180 clienti, spesa Meta 8.000 euro per 110 clienti. CAC Google 55,6 euro, CAC Meta 72,7 euro. A dodici mesi il LTV medio è 190 euro per la coorte Google e 260 euro per la coorte Meta. I rapporti sono 3,4 contro 3,6: Meta costa di più ma porta clienti che valgono di più, e il canale apparentemente più caro è quello più sostenibile. Senza LTV per coorte avresti tagliato il canale giusto.
-- CAC e rapporto LTV/CAC per canale e coorte mensile
-- Commenti in italiano: adatta nomi di tabelle e campi al tuo warehouse
SELECT
canale_acquisizione, -- dimensione di segmentazione
DATE_TRUNC('month', data_primo_ordine) AS coorte, -- mese di acquisizione
SUM(costo_totale) / COUNT(DISTINCT cliente_id) AS cac, -- costo pieno / nuovi clienti
AVG(ltv_12_mesi) AS ltv_medio_12m, -- valore medio a 12 mesi
AVG(ltv_12_mesi) / (SUM(costo_totale) / COUNT(DISTINCT cliente_id)) AS ltv_su_cac
FROM marts.marketing_coorti
GROUP BY 1, 2
ORDER BY 1, 2;
Il data stack che regge le analisi
Senza un flusso dati ordinato, ogni report è un’opinione con un grafico. Lo stack moderno ha quattro strati, e l’ordine conta: se salti uno strato, paghi interessi tecnici negli strati sopra.
Il primo strato è raccolta e ingestion. Connettori ELT come Fivetran o Airbyte replicano Google Ads, Meta, GA4, CRM ed email nel warehouse. Una CDP come Segment raccoglie eventi comportamentali e costruisce profili unificati con identità risolta. Regola: gli eventi nascono con nomi e proprietà concordate una volta sola, non normalizzati a valle in cinque versioni diverse.
Il secondo strato è il warehouse — BigQuery, Snowflake, Redshift — unica fonte di verità per analisi cross-canale. Qui convivono spesa, impression, click, eventi, ordini, rimborsi e costi. Se la spesa vive nei fogli e gli ordini nel gestionale, nessun modello di attribuzione sarà credibile.
Il terzo strato è la trasformazione con dbt: grezzo in staging, pulizia in intermedio, tabelle pronte in marts. Un classico è la spesa giornaliera unificata tra piattaforme con nomi di campi diversi:
-- Modello intermedio: spesa giornaliera unificata Google + Meta
-- Ogni SELECT normalizza i campi della sua piattaforma allo stesso schema
WITH google AS (
SELECT
data_giorno AS giorno, -- data di competenza della spesa
nome_campagna AS campagna, -- nome originale della campagna
'google_ads' AS piattaforma, -- etichetta fissa per la piattaforma
SUM(costo) AS spesa, -- costo già al netto dei rimborsi piattaforma
SUM(click) AS click -- click riportati dalle API ads
FROM fonti_raw.google_ads_report
GROUP BY 1, 2, 3
),
meta AS (
SELECT
data_giorno AS giorno,
nome_campagna AS campagna,
'meta_ads' AS piattaforma,
SUM(spesa) AS spesa,
SUM(click_link) AS click -- Meta chiama diversamente la stessa misura
FROM fonti_raw.meta_ads_report
GROUP BY 1, 2, 3
)
SELECT * FROM google
UNION ALL
SELECT * FROM meta;
Il quarto strato è consumo e attivazione. La BI — Looker, Tableau, Power BI — legge solo i marts, mai il grezzo. Il reverse ETL riporta segmenti e punteggi nei tool operativi: audience ad alto LTV predetto verso Meta e Google, coorti a rischio churn verso l’email, flag di consenso verso tutti. Il cerchio si chiude quando l’analisi cambia cosa vede il cliente, non quando produce un PDF.
Tracciamento e UTM che non si rompono
Metà dei misteri di attribuzione nasce da UTM scritte a mano libera. La tassonomia va decisa una volta e imposta come vincolo, non come suggerimento. Cinque parametri, ruoli fissi: utm_source dice chi mostra l’annuncio, utm_medium dice il tipo di traffico, utm_campaign dice l’iniziativa, utm_content distingue le varianti, utm_term serve solo al paid search per la keyword.
Tre esempi coerenti:
- Search Google per costumi donna:
utm_source=google&utm_medium=cpc&utm_campaign=ss26-nuoto-donna&utm_content=responsive-search&utm_term=costume+intero+donna - Post organico Facebook per occhiali da sole:
utm_source=facebook&utm_medium=social-organic&utm_campaign=ss26-occhiali-lancio&utm_content=video-15s-creatore - Banner newsletter settimanale:
utm_source=newsletter&utm_medium=email&utm_campaign=2026-08-28-settimanale&utm_content=hero-banner-top
Le regole che evitano il caos: minuscole sempre, trattini invece di spazi, niente maiuscole doppie della stessa sorgente, valori da lista chiusa per source e medium, redirect che preservano i parametri, test su ogni nuovo template prima del lancio. E un controllo settimanale con una query che elenca nuovi valori mai visti: blocca l’errore quando è costato cento click, non dopo centomila.
Sul tracciamento tecnico, tre punti non negoziabili. Primo, click ID delle piattaforme — gclid, fbclid, ttclid — salvati insieme alla sessione, perché senza join tra click e ordine l’attribuzione resta stima. Secondo, consenso: ogni evento porta con sé stato del consenso e base giuridica, così sai cosa manca e dove il buco è sistematico. Terzo, server-side dove possibile per gli eventi critici come acquisto e lead qualificato: il solo pixel browser perde troppo tra ad blocker e restrizioni mobile.
# Controllo settimanale dei nuovi valori UTM mai visti prima
# Legge l'export eventi e segnala combinazioni source/medium anomale
import pandas as pd
# Carica gli eventi della settimana con parametri UTM già parsati
eventi = pd.read_csv("eventi_settimana.csv") # colonne: utm_source, utm_medium, utm_campaign
# Liste chiuse concordate col team: tutto il resto è errore di tagging
source_ok = {"google", "meta", "facebook", "tiktok", "newsletter", "direct"}
medium_ok = {"cpc", "social-organic", "email", "display", "referral", "direct"}
# Filtra le righe con valori fuori lista e raggruppa per frequenza
anomali = eventi[~eventi["utm_source"].isin(source_ok) | ~eventi["utm_medium"].isin(medium_ok)]
print(anomali.value_counts(["utm_source", "utm_medium"]).head(20))
Dal funnel all’incrementalità misurata
Il funnel classico — consapevolezza, interesse, desiderio, azione — descrive bene una singola transazione e male un business in abbonamento o riacquisto, dove il cliente soddisfatto riporta altri clienti. La flywheel di HubSpot — attrarre, coinvolgere, deliziare — ricorda che retention e referral alimentano l’acquisizione. Il cambio pratico è nella domanda: non più solo come alzo la conversione, ma quanta conversione è davvero causata dalla campagna.
L’incrementalità è la differenza tra cosa è successo e cosa sarebbe successo comunque. Il lift si misura con esperimenti: un gruppo vede la campagna, un gruppo di controllo no, e il confronto stima l’effetto causale. La formula concettuale è semplice:
La difficoltà sta nel disegno. A/B test su audience digitali per creatività e offerta, geo-test per canali broadcast dove non puoi randomizzare l’utente: sospendi la spesa in alcune regioni comparabili e misuri la differenza contro regioni gemelle. La stessa logica su scala enorme guida i test sulle varianti creative e i test geografici per misurare l’effetto incrementale sugli abbonamenti nelle piattaforme di streaming.
Tre errori ricorrenti negli esperimenti. Contaminazione: il controllo vede comunque il messaggio via altri canali e l’effetto si annacqua. Finestra troppo corta: misuri il picco e perdi il rientro o il posticipo d’acquisto. Lettura solo sul KPI primario: una campagna può alzare gli ordini e distruggere il margine con sconti eccessivi. Ogni test serio dichiara prima ipotesi, metrica primaria, guardrail — margine, resi, churn — durata minima e soglia decisionale. Senza pre-registrazione, ogni risultato diventa confermabile a posteriori.
Verdetto: il funnel descrive, solo l’holdout dimostra; ogni test dichiara prima ipotesi, metrica primaria, guardrail e soglia decisionale.
Dashboard che guidano decisioni
Una buona dashboard risponde in trenta secondi a tre domande: stiamo vincendo o perdendo rispetto alla baseline, dove sta succedendo, cosa facciamo dopo. Tutto il resto è appendice. Struttura consigliata: riga di outcome — ricavo incrementale, margine, nuovi clienti, LTV su CAC di coorte — poi scomposizione per canale e coorte, poi diagnostica — spesa, reach, frequenza, CPM, CTR, tasso di conversione — e infine annotazioni su cosa è cambiato: lanci, promo, rotture di tracciamento, stagionalità.
Ogni grafico merita baseline visibile: anno precedente, forecast o controllo. Un trend senza riferimento invita a leggere rumore come segnale. Aggiungi sempre il denominatore accanto alle percentuali e il periodo di coorte accanto al LTV: un LTV senza finestra temporale non è confrontabile con nulla.
Il controllo che distingue una dashboard viva da un poster è la coerenza col warehouse: riconcilia ogni settimana il totale della dashboard con la tabella mart di riferimento. Se la somma dei canali non quadra col totale ordini al netto dei rimborsi, c’è un filtro nascosto o una doppia conta. Scrivilo come test automatico in dbt, non come verifica manuale: un test tipo somma_canali = totale blocca il deploy quando qualcuno rompe la logica.
-- Riconciliazione settimanale: spesa per canale contro totale ordini netti
-- Se lo scarto supera la soglia, il report non si pubblica
SELECT
giorno,
SUM(spesa) AS spesa_totale, -- somma di tutti i canali
SUM(ordini_attribuiti) AS ordini_dashboard, -- totale mostrato in dashboard
(SELECT COUNT(*) FROM ordini_netti o WHERE o.giorno = s.giorno) AS ordini_reali
FROM marts.marketing_spend_daily s
GROUP BY 1
HAVING ABS(SUM(ordini_attribuiti) - COUNT(*) * 1.0) / COUNT(*) > 0.02;
-- Soglia 2%: sopra, si indaga prima di condividere il numero
Attivare le audience senza sprecare budget
L’analisi crea valore quando cambia a chi mostri cosa. Le audience migliori nascono dai marts, non dalle interfacce delle piattaforme: clienti ad alto LTV predetto per lookalike, carrelli abbandonati recenti per retargeting con finestra corta, clienti a rischio churn per campagne di rientro, acquirenti una tantum con sconto per campagne escluse — perché regalare incentivi a chi comprerebbe comunque distrugge il margine.
Il reverse ETL sincronizza questi segmenti verso Meta, Google, email e CRM ogni notte, con consenso e timestamp di aggiornamento. Ogni segmento porta con sé la definizione e la data di calcolo: un pubblico prospecting vecchio di sessanta giorni senza refresh è rumore.
La misura dell’attivazione torna all’incrementalità. Holdout sempre acceso: il 5-10% di ogni segmento chiave non riceve la campagna personalizzata e serve da controllo continuo. Senza holdout, il retargeting sembra miracoloso perché colpisce chi era già sul punto di comprare. Con holdout, scopri quale parte del fatturato è davvero spostata da te.
Sul piano operativo, due abitudini contano più di qualsiasi tool. La prima è il diario delle decisioni: ogni cambio di budget, ogni nuova creatività, ogni promo viene annotato con data e ipotesi, così tra un mese sai perché il grafico ha un gradino. La seconda è la revisione del costo dell’errore: prima di condividere una raccomandazione, chiediti quale decisione sbagliata prenderesti se il numero fosse instabile, e quale controllo minimo la eviterebbe. Se non sai rispondere, il numero non è pronto per il tavolo.
Chi usa questa pagina come protocollo e non come formulario smette di inseguire il KPI del mese. Fissa il perimetro di ogni metrica, confronta attribuzioni diverse prima di spostare budget, giudica i canali su LTV di coorte invece che su CAC del primo click, tiene stack e tracciamento puliti perché sa che lì nasce la credibilità, prova l’incremento con esperimenti e attiva solo segmenti freschi e misurati con holdout. Il resto — grafici, tool, acronimi — cambia ogni anno. Questo modo di ragionare resta.
L’esperimento che ha cambiato il modo di leggere il brand search
Nel 2015 Thomas Blake, Chris Nosko e Steven Tadelis pubblicano su Econometrica, volume 83, i risultati di un esperimento su larga scala condotto con eBay. Sospesi gli annunci a pagamento sulle ricerche del brand, gran parte dei click si sposta sul risultato organico gratuito e il rendimento incrementale risulta una frazione delle stime convenzionali. È la dimostrazione più citata del messaggio centrale di questa pagina: l’attribuzione assegna il merito, solo l’esperimento misura la causa. Prima di scalare il canale con il ROAS migliore, spegnilo in parte e osserva cosa perdi davvero.
Domande per metterti alla prova
Prima di chiudere, mettiti alla prova con queste domande:
- Quale baseline rende interpretabile un aumento del 18% su qualsiasi metrica?
- Perché spostare budget dal brand al prospecting può alzare il ROAS e abbassare il fatturato?
- Quale denominatore distingue un CAC reale da un CAC da slide?
- Quale holdout separa il merito del retargeting dagli acquisti che sarebbero avvenuti comunque?
Bloccato su questo argomento o vuoi applicarlo al tuo caso? Prenota una call di 15 minuti con un analista esperto.
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.