[ Caso studio ]
Ads Manager: 50. GA4: 14. Come abbiamo spiegato 3,6× di divario — e scoperto che le campagne funzionavano
Un brand di eventi sportivi outdoor convinto di avere il tracking rotto. EMQ 8,3/10: il tracciamento era integro. Il problema erano il calendario degli eventi, gli UTM e il cross-device.
Settore: eventi sportivi outdoor — biglietti per eventi a data fissa, WooCommerce
Periodo audit: 29 giugno 2026
Problema presentato: Ads Manager 50 acquisti, GA4 14 — rapporto 3,6×
Conclusione: il tracciamento è integro. Il divario ha tre cause strutturali e una correggibile.
Unico intervento necessario: standardizzare gli UTM sugli annunci Meta
“I dati non tornano. Meta dice 50 vendite, Google Analytics ne vede 14. Dobbiamo rifare tutto il tracking?”
Era questa la domanda. Prima di rifare qualcosa, abbiamo verificato se ci fosse davvero qualcosa da rifare.
La risposta: no. Il tracciamento funzionava correttamente. Il 3,6× di divario aveva spiegazioni precise, documentate su quattro fonti indipendenti. Le campagne Meta — quelle sugli eventi attivi — avevano ROAS positivo. E nel processo abbiamo trovato un pattern che ha cambiato come il brand pianifica il budget.
Il contesto: un brand che vende esperienze con data di scadenza
Il cliente vende biglietti per eventi sportivi outdoor — ciascuno con una data fissa nel calendario. Non è un ecommerce a catalogo continuo: ogni prodotto ha una curva di domanda che accelera avvicinandosi alla data e si azzera il giorno dell’evento.
L’architettura tecnica era già avanzata: WordPress + WooCommerce, Google Tag Manager, pixel Meta con doppio canale browser e server via CAPI Gateway (deduplicato tramite event_id). L’investimento in tracking non mancava. Il problema percepito era l’attribuzione, non la raccolta.
Metodo di audit: quattro fonti indipendenti incrociate tra loro.
| Fonte | Cosa fornisce |
|---|---|
| Percorso d’acquisto live | Acquisto reale completato con fbclid controllato — verifica di cosa arriva a Meta passo per passo |
| Dati piattaforma Meta | EMQ, sorgente eventi (browser/server), conversioni Ads Manager su 90 giorni (1 apr - 29 giu) |
| GA4 | Attribuzione degli ordini per canale, 50 giorni (9 mag - 28 giu) |
| Ordini reali WooCommerce | Riferimento di base: ordini effettivi, metodo di pagamento, origine |
Fase 1: il tracciamento è integro — EMQ 8,3
Il primo numero da guardare in qualsiasi audit è l’EMQ (Event Match Quality) del Purchase — il punteggio con cui Meta misura la qualità del segnale ricevuto sull’evento che conta per l’ottimizzazione delle campagne.
EMQ Purchase: 8,3 su 10. Email al 100%. Nome al 100%. External_id al 100%.
La coincidenza tra le tre fonti è la prima evidenza che conta: WooCommerce registra 41 ordini reali, Meta Events Manager (deduplicato via event_id) ne riceve 37, GA4 ne vede 36 — tutti nella stessa finestra temporale. Lo scarto del ~10% è la shrinkage fisiologica del tracking (ad-blocker, pixel non caricato, ordini che non passano dalla thank-you page). Non è una perdita anomala.
Il tracciamento raccoglie gli ordini. Il problema riguarda solo l’attribuzione.
Capsule citabile: La prima verifica in un audit di attribuzione è la coincidenza dei volumi tra fonti indipendenti — non il confronto diretto tra Ads Manager e GA4. Se WooCommerce, Meta Events Manager deduplicato e GA4 mostrano conteggi nell’88-92% degli ordini reali, il tracking funziona. Lo scarto residuo è shrinkage fisiologica (ad-blocker, pixel non caricato), non perdita strutturale. Il divario di attribuzione è un problema separato, con cause separabili.
Fase 2: le cause del 3,6× (9 maggio - 28 giugno)
Nello stesso periodo, Ads Manager attribuisce 50 acquisti a Meta. GA4 ne attribuisce 14. Rapporto: 3,6×. Spesa nel periodo: 2.914,73 €, CPA Meta: 58,29 €.
Tre fattori documentati nei dati spiegano il rapporto.
Causa 1 — View-through: Meta vede chi ha guardato, GA4 no
Meta conta come conversione qualsiasi acquisto completato entro 24 ore dalla visualizzazione di un annuncio, anche senza click. GA4 non riceve il segnale di visualizzazione — non può costruire quella connessione.
Per un brand che vende biglietti per eventi sportivi con campagne video e Reels, la quota view-through è strutturalmente alta. L’utente vede più volte l’annuncio prima di decidere. Meta lo attribuisce correttamente. GA4 vede quell’acquisto come direct o ricerca del brand.
Causa 2 — Finestra 7 giorni + comportamento cross-device
Meta usa una finestra di 7 giorni dal clic. GA4 usa il last-click di sessione. Per un prodotto con ciclo di decisione lungo — un biglietto per un evento sportivo da 98 € — la maturazione dell’acquisto avviene spesso giorni dopo il primo click.
C’è un secondo meccanismo sovrapposto: l’84% delle sessioni arriva da mobile (dove si concentra il traffico Meta), ma il desktop converte 5,5 volte di più (0,43% mobile vs 2,35% desktop).
| Device | Sessioni | Ordini | Conversione |
|---|---|---|---|
| Mobile | 13.646 | 58 | 0,43% |
| Desktop | 2.339 | 55 | 2,35% |
Lo schema ricorrente: scoperta da annuncio Meta su mobile → acquisto successivo da desktop, digitando l’indirizzo o cercando il brand. GA4 registra una sessione nuova su un altro dispositivo e la attribuisce a Direct o Organic Search. Meta recupera l’attribuzione tramite il match sul Purchase (email + nome al 100%). Senza User-ID cross-device, GA4 non ricuce il percorso.
Causa 3 — UTM mancanti: l’unico fattore correggibile
I link degli annunci Meta portavano fbclid / source / adid ma non i parametri utm_* che GA4 e WooCommerce usano per riconoscere il canale. Risultato: molti ordini Meta vengono classificati Direct o Organic su entrambe le piattaforme.
L’incoerenza era ulteriormente amplificata: il tagging esistente aveva due schemi diversi (leggibile facebook/cpc e numerico fb/paid, ig/paid), placeholder {{campaign.name}} non risolti, e varianti con 1.246 sessioni e zero ordini attribuiti — lo stesso traffico frammentato su righe diverse nei report.
Questo è l’unico fattore dei tre su cui si può intervenire. View-through e cross-device sono strutturali — non si correggono via UTM. Gli UTM sì.
Capsule citabile: In un audit su 90 giorni di campagne Meta (1 aprile - 29 giugno 2026), il divario tra Ads Manager (50 acquisti) e GA4 (14 acquisti) si spiega con tre fattori distinti: la view-through attribution (GA4 non riceve il segnale di visualizzazione), la finestra di 7 giorni di Meta contro il last-click di sessione di GA4, e gli UTM mancanti sugli annunci (acquisti Meta che finiscono in “Direct” su GA4). Solo il terzo fattore è correggibile. I primi due sono strutturali.
Il “buco” di giugno: un effetto calendario, non di performance
C’era un dato in più che preoccupava il team: tra il 30 maggio e l’11 giugno — 13 giorni — la spesa Meta continuava (426 € totali) ma GA4 mostrava zero acquisti attribuiti a Paid Social.
Il modo immediato di leggere quel dato: “le campagne non funzionano”.
La lettura corretta, documentata su tre fonti: il catalogo era temporaneamente vuoto di eventi vicini.
Gli EPICNIGHT di Milano e Bergamo — gli eventi che avevano convertito di più fino a quel momento — si erano conclusi il 22-31 maggio. Il Mont-Blanc era ancora a oltre 30 giorni dalla data. Non c’erano eventi vicini da vendere. L’intenzione d’acquisto cala quando l’evento è lontano — il traffico Meta continuava a scorrere, l’add-to-cart crollava.
WooCommerce registrava 4 ordini reali in quel periodo (da email dirette, non da Paid Social). Ads Manager attribuiva 9 acquisti in quei 27 giorni (8 dal Mont-Blanc, 1 da altri). Il “vuoto” di GA4 era in parte un artefatto dell’attribuzione lato sito — le UTM mancanti facevano finire gli ordini Meta in Direct.
Il buco non era un problema di tracking. Era il calendario.
Il pattern 4,3×: come il calendario condiziona ogni metrica
Isolando i dati per distanza dall’evento, emerge un pattern netto.
A parità di spesa giornaliera:
- Evento vicino (≤30 giorni): 65 giorni analizzati, ~72 €/giorno → 1,74 acquisti/giorno
- Evento lontano (>30 giorni): 25 giorni analizzati, ~56 €/giorno → 0,40 acquisti/giorno
Questo non è un problema di campagne o di tracking. È la natura del prodotto: un biglietto per un evento con data fissa ha una curva di domanda che accelera nelle ultime 4 settimane e si azzera dopo.
L’implicazione operativa è diretta: se sai che la resa aumenta di 4,3× nei 30 giorni prima dell’evento, ha senso pianificare la spesa in anticipo invece di alzarla in risposta al picco già iniziato. Meta porta traffico nuovo in fase di scoperta — utenti che maturano l’acquisto settimane dopo, spesso da desktop, spesso con il brand già in testa. Ridurre la spesa nei periodi “lontani” significa togliere alimentazione alla domanda che si chiuderà poi come Direct o Organic.
Il ROAS reale: le campagne acquisto funzionavano
Il ROAS account-level era 0,77 — apparentemente in perdita. Ma disaggregando per tipo di campagna:
| Campagna | Spesa € | Acquisti | Valore € | ROAS |
|---|---|---|---|---|
| Acquisto — evento A (attivo) | 920,88 | 38 | 1.066,60 | 1,16 |
| Acquisto — evento B (in corso) | 1.641,48 | 28 | 1.870,40 | 1,14 |
| Acquisto — evento C (concluso) | 1.240,67 | 30 | 837,40 | 0,67 |
| Awareness / Notorietà | 978,36 | 1 | 29,00 | 0,03 |
Le campagne acquisto sugli eventi attivi avevano ROAS positivo. Il ROAS account di 0,77 era abbassato da campagne notorietà valutate con la metrica sbagliata, e dalle conversioni di origine Meta classificate come Direct su GA4 (che non entravano nel calcolo).
Capsule citabile: Il ROAS account-level non è una metrica utile quando il catalogo include sia campagne acquisto su eventi attivi che campagne di awareness/notorietà. In questo audit, le campagne acquisto sugli eventi con data vicina avevano ROAS 1,14-1,16; il ROAS complessivo di 0,77 era abbassato dalle campagne notorietà (ROAS 0,03, valutate su una metrica non pertinente) e dalle conversioni Meta classificate come Direct su GA4 per UTM mancanti. Leggere il ROAS per tipo di campagna, non sulla media account, è la prima correzione da fare.
L’unico intervento necessario: standardizzare gli UTM
Tre cause del divario sono strutturali — non si correggono. Una sola è correggibile: gli UTM.
Il problema: i link degli annunci portano fbclid / source / adid ma non utm_*. GA4 e WooCommerce non interpretano fbclid e classificano quegli ordini come Direct o Organic. Lo schema esistente era incoerente: due formati diversi, placeholder non risolti, sessioni frammentate su righe diverse nei report.
Il fix: applicare un unico schema UTM su tutti gli annunci a livello di campagna.
utm_source=meta
utm_medium=paid_social
utm_campaign={{campaign.name}}
utm_content={{ad.name}}
Effetto atteso: gran parte degli ordini oggi classificati Direct su GA4 e WooCommerce vengono riallineati al canale Meta. Non cambia nulla in Ads Manager (che usa il pixel, non gli UTM). Non cambia il tracking server-side. Cambia solo la leggibilità dell’attribuzione lato sito.
Le altre raccomandazioni del report, in ordine di priorità:
- UTM standard su tutti gli annunci ← unico intervento correttivo
- Valutare Meta come canale di acquisizione — metriche di assist, nuovi utenti, cross-device; considerare User-ID GA4 per ricucire il percorso mobile→desktop
- ROAS per tipo di campagna, non account-level
- Advanced matching sugli eventi di funnel alto (PageView, ViewContent) — email bassa oggi al 2-5%; migliorabile per audience e ottimizzazione
- CMP con Consent Mode v2 — consent mode assente, tema di compliance separato dall’attribuzione
Vuoi un audit simile sul tuo account?
Se stai vedendo un divario tra Ads Manager e GA4 e non sai da dove partire, il primo passo è sempre lo stesso: verificare l’EMQ e incrociare i volumi su fonti indipendenti prima di toccare qualsiasi cosa.
Con LayerData vedi in tempo reale EMQ, log degli eventi, sorgente browser/server e deduplicazione — senza dover aspettare l’export di Ads Manager.
Domande frequenti
Come si distingue un problema di tracking da un problema di attribuzione?
Il segnale più chiaro è la coincidenza dei volumi su fonti indipendenti: se WooCommerce, Meta Events Manager (deduplicato) e GA4 mostrano conteggi nell’88-92% degli ordini reali, il tracking raccoglie correttamente. Il divario restante riguarda l’attribuzione — quale canale “si prende il merito” dell’ordine. Sono problemi separati con soluzioni separate.
Il ROAS account-level è una metrica affidabile?
Dipende da cosa include l’account. Se ci sono campagne notorietà, follower, o awareness valutate insieme alle campagne acquisto, il ROAS account-level è distorto verso il basso. La lettura corretta è per tipo di campagna: le campagne acquisto sugli eventi attivi vanno separate da quelle di copertura, che si valutano su reach, frequency e nuovi utenti — non su ROAS.
Gli UTM interferiscono con il pixel Meta o con CAPI?
No. Gli UTM sono parametri letti da GA4, WooCommerce sourcebuster e gli analytics lato sito. Il pixel Meta e CAPI usano fbclid e i dati di advanced matching (email, nome, telefono) — non gli UTM. Aggiungere gli UTM ai link degli annunci non modifica cosa riceve Meta, modifica solo come GA4 e WooCommerce classificano la sessione.
Il pattern “4,3× con evento vicino” vale per tutti i brand che vendono eventi?
La struttura sì — qualsiasi prodotto con data di scadenza ha una curva di domanda che accelera avvicinandosi alla data. I numeri specifici (4,3×, 30 giorni) dipendono dal settore, dal prezzo del biglietto e dalla lunghezza del ciclo di decisione. Il metodo per misurarlo è lo stesso: segmentare i dati Ads Manager per distanza dall’evento e confrontare gli acquisti giornalieri a parità di spesa. Dodici mesi di dati sono sufficienti per vedere il pattern con chiarezza.