Molto ImportanteMolto Importante
E-commerce tracking in GA4: l'oggetto items che sblocca i report di monetizzazione

E-commerce tracking in GA4: l'oggetto items che sblocca i report di monetizzazione

Strutturare l'oggetto items nel data layer: eventi view_item, add_to_cart, begin_checkout, purchase. Setup pratico e debug per e-commerce italiani.

In questa pagina

Introduzione

I report di monetizzazione di GA4 sono potentissimi, ma si attivano solo se gli passi i dati nel formato preciso. Quel formato è l'oggetto items, e quasi tutti gli e-commerce italiani lo hanno implementato male o a metà. Risultato: dashboard a metà e Smart Bidding cieco sui prodotti veri.

Apri il tuo GA4 e vai su "Monetization > Ecommerce purchases". Se i grafici sono vuoti, mezzi vuoti, o ti dicono che ci sono purchase ma non ci sono items, hai trovato il pezzo che ti manca, e non sei in compagnia di pochi: succede sull'80% degli e-commerce italiani che ho ispezionato negli ultimi due anni. Il problema non è GA4, è l'oggetto `items` nel data layer. È quello che fa la differenza tra una piattaforma che ti dice "hai fatto 50 ordini ieri" e una che ti dice "hai venduto 73 t-shirt nere taglia M, con un add-to-cart rate del 4.2% sulla pagina prodotto, e i clienti che le comprano hanno un AOV superiore del 18% alla media". La seconda è quella che muove il budget pubblicitario nei posti giusti. Vediamo come si costruisce.

"Imbuto metallico a cinque livelli con uscita rossa: il funnel e commerce"

Cosa sono gli enhanced ecommerce events di GA4

GA4 ha sette eventi standard del funnel e-commerce, e li riconosce solo se li chiami con il nome esatto. La catena è: `view_item_list` (utente vede una griglia di prodotti, tipo categoria), `view_item` (utente apre la scheda prodotto), `add_to_cart` (aggiunto al carrello), `view_cart` (apre il carrello), `begin_checkout` (inizia checkout), `add_payment_info` (inserisce dati pagamento), `purchase` (acquisto completato).

Ogni evento di questa catena va inviato a GA4 con il suo oggetto `items` allegato. È l'array `items` che racconta a GA4 quali prodotti specifici sono coinvolti nell'evento. Se invii `purchase` senza `items`, GA4 sa che è stato venduto qualcosa per X euro, ma non sa cosa. I report di monetizzazione restano vuoti, le audience basate su categoria di prodotto sono impossibili, Smart Bidding di Google Ads non può ottimizzare sul valore reale dei prodotti.

L'oggetto items: la struttura corretta

L'array `items` è una lista di oggetti, uno per ogni prodotto coinvolto nell'evento. Per un `view_item` c'è un solo oggetto, per un `purchase` ce ne possono essere molti. La struttura minima è questa:

```javascript dataLayer.push({ event: "purchase", ecommerce: { transaction_id: "T-12345", value: 89.90, currency: "EUR", items: [{ item_id: "SKU-001", item_name: "T-shirt Nera", item_category: "Abbigliamento", item_variant: "M", price: 29.90, quantity: 3 }] } }); ```

Campi obbligatori: `item_id` o `item_name` (almeno uno), `price`, `quantity`. Campi consigliati: tutti gli altri di cui sopra, più `item_brand`, `item_category2`, `item_category3` se hai una tassonomia profonda. Regola d'oro: i tuoi `item_id` in GA4 devono coincidere con gli ID del Google Merchant Center se fai Performance Max o Shopping. Se non coincidono, l'integrazione tra GA4 e Google Ads salta su tutto il livello prodotto.

Errore numero uno che si vede sempre: `price` come stringa (`"29,90"` con virgola). GA4 lo legge come testo, non come numero, e nei report vedi un trattino dove dovrebbe esserci il valore. Sempre numero con punto decimale.

Setup via GTM: data layer dal CMS e tag GA4

L'architettura corretta in tre strati. Strato uno: il CMS (WooCommerce, Shopify, Magento, Prestashop) fa il push nel `dataLayer` con i dati del prodotto, su ognuno dei sette eventi della catena. Strato due: GTM legge dal `dataLayer` tramite variabili Data Layer e cattura gli eventi tramite trigger Custom Event. Strato tre: un tag GA4 Event per ognuno dei sette eventi, che invia i dati a GA4.

Il modo più pulito di farlo in GTM è creare una variabile `ecommerce` di tipo "Data Layer Variable" che cattura tutto l'oggetto `ecommerce`, e poi nel tag GA4 selezionare "Send Ecommerce data" con "Data source: Data Layer". GTM si occupa di mappare i campi automaticamente. Niente mapping manuale di 15 parametri, niente errori di battitura.

Importante: la variabile Data Layer in GTM va impostata su "Version 2" per leggere oggetti annidati. Se la lasci su Version 1 legge solo il primo livello e l'array `items` resta vuoto. È uno dei bug più frequenti che vedi in audit.

Setup nativo su Shopify, WooCommerce, Magento

Su Shopify la situazione è migliorata: dalla fine 2024 i tag GA4 di base sono nativi tramite l'integrazione "Google & YouTube" e gli eventi del checkout partono automaticamente. Il problema è che gli eventi precedenti al checkout (view_item, add_to_cart, view_item_list) richiedono ancora un'integrazione manuale via Shopify Pixels, o un'app dedicata, o codice custom nel tema. Per i checkout pages c'è un'ulteriore complicazione: se sei su Shopify Plus puoi mettere GTM, altrimenti devi usare i Pixels.

Su WooCommerce ci sono due plugin che funzionano davvero: "GA4 Server-Side Tracking" di WooCommerce stesso (se sei su WooCommerce 8.0+) e "GTM4WP" che fa push nel data layer di tutti gli eventi necessari. Il secondo è il più potente e quello che uso di solito nei progetti seri. Configurazione: installi GTM4WP, attivi gli eventi enhanced ecommerce, e in GTM costruisci i tag che leggono dal data layer popolato dal plugin.

Su Magento 2 c'è il modulo "Magento 2 GTM Google Tag Manager" di Weltpixel, oppure il modulo nativo Adobe che però richiede un po' di lavoro custom. Su PrestaShop l'integrazione è generalmente più friabile e va testata caso per caso.

Cosa si vede nei report Monetization

Quando l'`items` array è popolato bene, i report "Monetization" di GA4 si accendono. Vai su "Monetization > Ecommerce purchases" e vedi la lista dei prodotti più venduti, ordinati per revenue, con metriche granulari per ogni item: views, add_to_carts, purchases, conversion rate da view a purchase, AOV, revenue per item.

Ancora più potente è il report "Ecommerce purchases > Item-scoped dimensions" che ti permette di analizzare per categoria, brand, variant. Esempio operativo: vuoi capire se le tue varianti taglia L vendono meglio delle M, o se la categoria "Abbigliamento donna" ha un AOV superiore alla "Abbigliamento uomo". Senza `items` strutturato, questo lo decidi a sentimento. Con `items` strutturato, lo decidi sui dati.

C'è poi il report "Funnels" che ti permette di costruire il percorso `view_item > add_to_cart > begin_checkout > purchase` e vedere dove perdi gli utenti. Questo è il report dove scopri che il 60% degli utenti che aggiungono al carrello non arrivano nemmeno al checkout, ed è da lì che parte qualunque ottimizzazione di CRO seria.

Errori tipici sui parametri

Lista breve dei classici. `price` con virgola anziché punto (lo abbiamo visto). `quantity` come stringa ("3") anziché numero (3). `item_id` duplicato tra prodotti diversi (succede quando il CMS sta usando uno SKU di categoria invece di quello di prodotto). `currency` mancante o variabile (GA4 vuole codice ISO a tre lettere, "EUR" o "USD"). `transaction_id` mancante sull'evento purchase, o duplicato (se duplicato GA4 deduplica e tu perdi conversioni).

Errore subdolo: i prezzi con IVA inclusa in `price` ma `value` totale senza IVA, o viceversa. GA4 si aspetta coerenza: o tutto con IVA o tutto senza. Decidi e tieni la regola.

Test e debug del setup e-commerce

Tre check, in quest'ordine. Primo, durante lo sviluppo: apri Tag Assistant in Preview mode su GTM, naviga le pagine prodotto, aggiungi al carrello, fai un acquisto di test, e per ogni evento controlla che il payload nel pannello GTM contenga l'oggetto items popolato correttamente.

Secondo: DebugView di GA4. Attivi il debug mode (o tramite l'estensione Chrome "GTM/GA Debugger" o aggiungendo `?debug_mode=true` agli URL), poi su GA4 in DebugView vedi gli eventi in tempo reale con tutti i loro parametri. Per ogni evento e-commerce verifichi che l'array items sia presente e che i campi siano nel formato giusto.

Terzo: dopo 24 ore di traffico reale, vai su "Monetization > Ecommerce purchases" e controlla che i numeri di GA4 coincidano con il backend del CMS a meno del 5%. Se c'è uno scarto grosso, c'è un evento purchase che ogni tanto parte due volte o non parte affatto. Per la procedura completa di debug vedi debug GA4: cosa fare quando gli eventi non funzionano.

Le tre cose che si sbloccano con il tracking pulito

Smart Bidding con product feed: quando l'`items` array è pulito e gli `item_id` matchano il Google Merchant Center, Performance Max può ottimizzare al livello di singolo prodotto, dirottare il budget verso gli SKU che convertono di più, e fare bidding granulare. Senza items, gira a sentimento sul fatturato totale.

Audience comportamentali: puoi creare audience tipo "ha visto un prodotto della categoria X negli ultimi 7 giorni senza aggiungerlo al carrello", e usarle per remarketing in Google Ads e Meta. Il livello di precisione è tutto un altro pianeta rispetto al remarketing generico.

Attribution per prodotto: capisci quale prodotto sta tirando le conversioni e quale resta sugli scaffali digitali, e regoli il catalogo, le promozioni, il content marketing di conseguenza.

L'investimento per sistemare l'e-commerce tracking è di un paio di giornate di lavoro per la prima implementazione seria, più verifiche periodiche. Il ROI è uno dei più alti che si vedano nel marketing digitale, perché tutto quello che vince a valle (advertising, CRO, CRM) dipende da questi dati. Se vuoi parlare di setup e-commerce per il tuo store, 329 128 68 25 è la strada corta. Altrimenti tutto il resto è nelle categorie tracciamento e analytics e strumenti per l'advertising, e nei servizi di Google Ads e Meta e siti web SEO e AI.

Hai bisogno di un chiarimento?

Contattaci per ricevere indicazioni precise sul servizio piu adatto.