Aggiornamento: il 24 agosto 2022 il tag Evento GA4 in Google Tag Manager è stato aggiornato, ed ora permette di caricare i dati Ecommerce direttamente da dataLayer (se si utilizza GA4 schema) oppure da un variabile JavaScript personalizzata (o da un template personalizzato) purché restituiscano un oggetto accettato dal GA4 Schema
Quest’articolo fa parte di una più ampia guida a Google Analytics 4, finora abbiamo affrontato come installare e testare GA4 e come creare e testare eventi e conversioni. Qui ci occuperemo di come tracciare i dati ecommerce in Google Analytics 4 con l’aiuto di Google Tag Manager e della documentazione ufficiale. Nel dettaglio, analizzeremo il nuovo modello dati in una prospettiva di implementazione e avanzeremo passo passo nella sua configurazione.

Perché un articolo specifico sul tracciamento per l’ecommerce?
Google Analytics 4 (GA4) è una piattaforma ancora nuova e la sua integrazione con Google Tag Manager è solo agli inizi, motivo per cui la sua configurazione dipende ancora molto dalle impostazioni che scegliamo e da una corretta strutturazione del dataLayer.

Difference tra Universal Analytics e Google Analytics 4 ecommerce
Come potreste sapere, la vecchia versione di GA, nota come Universal Analytics o UA, disponeva di un modello dati detto Enhanced Ecommerce o Ecommerce avanzato. Cominciamo col segnalare le principali differenza con il nuovo approccio proposto da Google Analytics 4.
Azioni disponibili in google analyitics 4 ecommerce
Abbiamo affrontato la differenza tra gli eventi di GA4 e quelli di UA in questo articolo. Senza ripeterci in questa sede, ci sembrava comunque utile proporre un’adeguata corrispondenza tra le vecchie azioni di Universal Analytics ed i nuovi eventi di GA4, nel caso che stiate leggendo questo guida a ridosso dell’eliminazione dei vecchi account UA .
Nella colonna Eventi GA4 troverete il nome evento o event_name da configurare e l’azione equivalente in UA
Non preoccupatevi, più sotto forniamo anche delle istruzioni per migrare da UA a GA4.
| Nome evento GA4 | Corrispondenza con Enhanced Ecommerce (UA) | Descrizione |
|---|---|---|
| view_promotion | promoView | Visualizzazione promozioni |
| select_promotion | promoClick | Clic su una promozione |
| view_item_list | impressions | Visualizzazioni di un item in una lista |
| select_item | click | Clic su un item in una lista |
| view_item | detail | Visualizzazione dei dettagli di un item |
| add_to_cart | add | Aggiunta al carrello |
| add_to_wishlist | N/A | Aggiunta alla wishlist |
| remove_from_cart | remove | Rimozione dal carrello |
| view_cart | N/A | Visualizzazione del carrello |
| begin_checkout | checkout* | Inizio checkout |
| add_shipping_info | checkout_option* | Aggiunta dei dati di spedizione |
| add_payment_info | checkout_option* | Aggiunta dei dati di pagamento |
| purchase | purchase | Acquisto |
| refund | refund | Rimborso |
* Il checkout funnel funziona in modo leggermente diverso in Google Analytics 4. Non ci sono più dei passaggi standard del percorso di conversione, invece GA4 ci propone il percorso di acquisto più comune per i nostri utenti fino a quando non inseriscono i dati di spedizione e di acquisto.
Sono stati però aggiunti dei dati che mancavano in Universal analytics, ovvero add_to_wishlist e view_cart
Dati prodotto
Il modello dati per i prodotti ha anch’esso subito dei cambiamenti. Il concetto di liste di prodotti è stato ampliato, includendo degli ID per le liste e categorie di prodotto multilivello.
| Parametro GA4 | Corrispondenza con Enhanced Ecommerce (UA) | Descrizione |
|---|---|---|
| item_id | id | ID / SKU del prodotto |
| item_name | name | Name prodotto |
| item_list_name | list | Nom lista prodotto |
| item_list_id | N/A | ID della lista prodotto |
| index | position | Posizione dle prodotto nella lista |
| item_brand | brand | Brand del prodotto |
| item_category | category | Categoria del prodotto (I livello) |
| item_category2 | category | Categoria del prodotto (II livello o alternativa) |
| item_category3 | category | Categoria del prodotto (III livello o alternativa) |
| item_category4 | category | Categoria del prodotto (IV livello o alternativa) |
| item_category5 | category | Categoria del prodotto (V livello o alternativa) |
| item_variant | variant | Variante del prodotto |
| affiliation | N/A | Affiliaizione store per questo evento |
| discount | N/A | Sconto associato al prodotto |
| coupon | coupon | Coupon associato al prodotto |
| price | price | Prezzo del prodotto |
| currency | N/A | Valuta d’acquisto |
| quantity | quantity | Quantita’ del prodotto, deve essere un numero intero |
Come in Enhanced Ecommerce, per ciascun prodotto è sempre necessario specificare almeno item_id o item_name. Tutti gli altri parametri sono opzionali.
Alcuni, come affiliation e currency, sono stati spostati dal livello azioni a quello di prodotto, il che ci permette finalmente di avere i dati corrispondenti per prodotto.
Dati delle promozioni
Anche in G4 è possibile raccogliere dati sulle promozioni. Purtroppo, le cose non sono migliorate molto (almeno al momento in cui scriviamo) rispetto ad UA, visto che sono inclusi anche i dati di eventuali banner o comunque fonti non necessariamente collegate a prodotti specifici.
| Parametro GA4 | Corrispondenza con Enhanced Ecommerce (UA) | Descrizione |
|---|---|---|
| promotion_id | id | ID della promozione |
| promotion_name | name | Nome della promozione |
| creative_name | creative | Nome della creatività associata alla promozione |
| creative_slot | position | Nome dello slot dove è stata visualizzata la promozione |
| location_id | N/A | Posizione della promozione sulla pagina quando è stata visualizzata |
Così come per i prodotti, anche in questo caso abbiamo dei parametri obbligatori: promotion_id o promotion_name devono sempre essere specificati.
Altre azioni misurabili
Di seguito tutte le altre azioni misurabili nel vostro Ecommerce con Google Analytics 4. A ciascuna corrisponde un parametro.
| Parametro GA4 | Corrispondenza con Enhanced Ecommerce (UA) | Descrizione |
|---|---|---|
| transaction_id | id | ID univoco della transazione. Obbligatorio per gli eventi purhcase e refund |
| affiliation | affiliation | Lo store o affiliato che ha generato la transazione |
| value | revenue | Valore associato all’evento |
| currency | currencyCode | Valuta locale associata all’acquisto. Obbligatorio per gli eventi purchase. |
| tax | tax | Tasse incluse nel valore della transazione. |
| shipping | shipping | Costi di spedizione inclusi nel valore della transazione. |
| items | products/impressions/promotions | Prodotti associati all’evento. |
| shipping_tier | option | Fascia di spedizione associata a add_shipping_info. |
| payment_type | option | Metodo di pagamento passato con add_payment_info. |
| coupon | coupon | Coupon associato all’evento. |
| promotion_id | N/A | ID della promozione associata all’evento. |
| promotion_name | N/A | Nome della promozione associata all’evento. |
| creative_name | N/A | Name of a promotion creative associated with the event. |
| creative_slot | N/A | Nome delle creatività associata all’evento. |
| location_id | N/A | ID della posizione della creatività sulla pagina. |
| item_list_name | N/A | Nome della lista associata all’evento. |
| item_list_id | N/A | ID della lista associata all’evento. |
Configurazione di Google Analytics 4 ecommerce tramite Google Tag Manager
Aggiornamento: il 24 agosto 2022 il tag Evento GA4 in Google Tag Manager è stato aggiornato, ed ora permette di caricare i dati Ecommerce direttamente da dataLayer (se si utilizza GA4 schema) oppure da un variabile JavaScript personalizzata (o da un template personalizzato) purché restituiscano un oggetto accettato dal GA4 Schema.
Google Tag Manager è senza dubbio lo strumento migliore per configurare l’ecommerce di Google Analytics 4, tuttavia al momento non esiste ancora alcuna tag specifica per questo scopo, le uniche tag ufficiali sono quella di configurazione e la tag evento, di cui abbiamo parlato negli articoli precedenti sull’installazione di GA4 e la creazione di eventi personalizzati.
Al momento, occorre servirsi del tag evento e inserire manualmente i parametri.

Speriamo di poter aggiornare presto questo articolo annunciando il rilascio di tag specifici.
Un’altra problematica che abbiamo riscontrato è relativa all’utilizzo della variabile personalizzata JavaScript (anche nota come custom template), che tanto ci aiutava con l’Enhanced Ecommerce in UA. In GA4 possiamo ancora utilizzare questo metodo per mappare tutti i gli items che vogliamo, ma saremo comunque costretti ad aggiungere manualmente tutti gli altri parametri come campi individuali nel tag evento. Anche in questo caso speriamo di poter avere presto a disposizione un’unica variabile per raccogliere tutti gli eventi, in modo da minimizzare il numero di tag attivate.
Come migrare da Enhanced Ecommerce a Google Analytics 4 ecommerce
Prima di cominciare e riscrivere gli oggetti nel vostro dataLayer, considerate che Google Analytics 4 supporta il modello dati di Enhaced Ecommerce, almeno in certa misura.
Il modo più semplice per eseguire una migrazione non è creare dei nuovi items in GA4. Piuttosto, conviene impostare il valore dei parametri degli items nel tag usando le variabili impressions, promotions o products che usavamo negli oggetti Enhanced Ecommerce. GA4 dovrebbe essere in grado di mappare i nomi dei parametri degli oggetti products di Enhanced Ecommerce sui parametri corrispondenti di Google Analytics 4.
Le differenze maggiori sono quelle evidenziate nelle tabelle presentate sopra, ovvero che non esiste alcun omologo in UA per l’item_list_id di GA4 e che la categoria prodotto è ora divisa in 5 livelli differenti invece di una unica stringa separata da /.
Importante: non è obbligatorio eseguire una migrazione. Considerando la quantità di nuove funzioni già disponibili e quelle che sicuramente saranno rilasciate in futuro, potreste voler abbandonare completamente la vostra vecchia struttura dati e crearne una nuova per GA4.
Se volete procedere con la migrazione, esistono diversi modelli di tag nella galleria di template di Google Tag Manager, molti dei quali vi permettono di mappare i prodotti, le impression o le promozioni di UA direttamente in GA4.
Nomi Evento
Una delle principali caratteristiche di Google Analytics 4 è il suo utilizzo degli event name ed il loro accresciuto valore semantico. Per una lista completa dei nomi evento disponibili per l’Ecommerce di GA4, tornate su.

Ogni volta che configuriamo un tag per inviare dati a GA4, dobbiamo assicurarci che il campo Nome evento contenga il valore corretto. Qualsiasi refuso o differenza tra il nome dell’evento nel tag ed il parametro accettato da GA4 genererà degli errori nel vostro dataset che non saranno correggibili retroattivamente.
Configurazione dei campi del tag evento in GA4
Per creare un tag ecommerce in Google Tag Manager useremo l’unico tag attualmente disponibile, lo stesso Evento Google Analytics 4 descritto precedentemente nell’articolo su gli eventi e le conversioni in GA4. Per prima cosa. Per prima cosa occorre indicare quale sia il tag di configurazione cui il tag evento fa riferimento. Abbiamo affrontato l’argomento in questo articolo sull’installazione di GA4.
Quindi dobbiamo impostare il Nome Evento, o Event Name. Sia che utilizziate una variabile o che lo scriviate direttamente nel codice, è comunque buona norma fare riferimento ai nomi evento riservati da GA4.

Per aggiungere parametri è sufficiente aprire la sezione del tag Parametri Evento e creare una nuova riga per ogni parametro. Nella maggior parte dei casi sarà sufficiente aggiungere il parametro items, ma per alcune azioni, come ad esempio l’acquisto, richiederanno parametri aggiuntivi.
Nel caso in cui usiate una variabile nel data layer per eseguire un pull di un array di items, fate attenzione al merge ricorsivo. Sarebbe in questo caso opportuno impostare la vostra variabile in modo che utilizzi sempre la 1a versione del Data Layer per non perdere dati da un oggetto all’altro.
Attivatore o trigger
Come sopra, assicuratevi di identificare per il vostro tag evento un trigger che si attivi quando e solo quando il dataLayer riceve l’oggetto e-commerce che vi interessa.

Il vostro obiettivo dovrebbe essere di progettare il data set in modo che ogni azione di interesse sul vostro ecommerce abbia un tag evento dedicato con il proprio trigger personalizzato.
Consigli per un tagging lato server
Una delle possibili alternative per migrare da Enhanced Ecommerce di Universal Analytics a GA4 è il tagging lato server.
Non è un’opzione praticabile da tutti considerati i costi, ma permette di passare il flusso dati di Universal Analytics attraverso il container nel server direttamente all’endpoint di UA ma anche di GA4 allo stesso tempo.
Quando inviamo un evento di ENhanced Ecommerce UA al server, il client UA lo spezza e genera un event data object come questo:

Come vedete, il payload di Enhanced Ecommerce è diviso nella Measurement Protocol Request, generando due parametri standard. Nello specifico, notiamo come le dimensioni del product scope non sono mappate nel items array.
A questo punto è possibile attivare il tag GA4 nel container sul server attraverso il client UA ed inviare un evento pulito a GA4. E’ solo necessario modificare event_name, altrimenti ci ritroveremo page_view con come nome per l’acquisto, ed aggiungere l’ID di misurazione corretto.

La sfida è creare una mappatura personalizzata dell’array items, visto che il Server container non permette al momento di eseguire variabili JavaScript.
In teoria potremmo configurare un modello di tag personalizzata per il tagging lato server, ma è probabilmente più saggio attendere che Google evolva le opzioni per la migrazione.
Catalogo azioni google analytics 4 ecommerce
Quali azioni sono tracciabili in GA4 e come si configurano nel dataLayer?
I paragrafi che seguono mostrano degli esempi di configurazione del dataLayer e delle tag GTM per la misurazione degli eventi Ecommerce in GA4. Per ciascuno, forniamo un esempio di migrazione dal Universal Analytics a GA4.
View_Promotion
L’evento view_promotion è attivato quando l’utente visualizza una o più oggetti promotion sulla pagina. Le promozioni utilizzano un modello dati diverso dal resto di GA4 Ecommerce, poiché non contemplano i prodotti ma piuttosto banner, campagne etc.
Composizione del data layer
Un esempio di view_promotion nel dataLayer potrebbe essere come segue:
"window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'view_promotion',
ecommerce: {
items: [{
promotion_id: 'estate_2022',
promotion_name: 'campagna_estate_2022',
creative_name: 'famiglia_al_mare_1',
creative_slot: 'featured_items',
location_id: 'hero_banner'
},{
promotion_id: 'inverno_2023',
promotion_name: 'winter_campaign_2020',
creative_name: 'famiglia_in_montagna_1',
creative_slot: 'featured_items_2',
location_id: 'hero_banner'
}]
}
});
I parametri necessari sono promotion_id o promotion_name
Migrazione da Enhanced Ecommerce
Se proprio volete usare l’array promotions i Enhanced Ecommerce invece di creare nuovi items, vi servirà questa variabile:
- Tipo: Data Layer Variable
- Nome Variabile: ecommerce.promoView.promotions
- Versione Data Layer: Version 2
La variabile andrà aggiunta al tag evento view_promotion come valore nel campo items.
Configurazione del tag
Il tag per view_promotion è questo:

Impostiamo il campo Event Name o Nome evento come view_promotion. Assicuriamoci di puntare il parametro items ad una variabile del Data Layer che contenga l’array di items . Ad esempio:
- ecommerce.items, se seguite l’esempio suggerito sopra, oppure
- ecommerce.promoView.promotions, se state migrando da Enhanced Ecommerce
Ricordiamoci anche di impostare un trigger personalizzato che passi il valore di event nell’oggetto trasmesso all dataLayaer. (nell’esempio di cui sopra sarebbe view_promotion).
Select_promotion
L’evento select_promotion è inviato ogni volta che l’utente fa clic o seleziona una delle promozioni che ha visualizzato.
Composizione del data layer
Ecco un esempio di composizione del dataLayer per select_promotion
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'select_promotion',
ecommerce: {
items: [{
promotion_id: 'estate_2022',
promotion_name: 'campagna_estate_2022',
creative_name: 'famiglia_al_mare_1',
creative_slot: 'featured_items',
location_id: 'hero_banner'
}]
}
});
I parametri obbligatori sono promotion_id o promotion_name.
Migrazione da Enhanced Ecommerce
Per usare l’array promotions di Enhanced Ecommerce invece di creare un nuovo oggetto items, avremo bisogno di questa variabile:
- Tipo: Data Layer Variable
- Nome Variabile: ecommerce.promoClick.promotions
- Versione Data Layer: Version 2
La variabile va aggiunta al vostro evento GA4 select_promotion come valore del campo items .
Configurazione del tag
Ecco un esempio di configurazione per il tag select_promotion:

Assicuriamoci che il campo Event Name sia select_promotion, e che il parametro items sia impostato su una variabile che contiene l’array di items , ad esempio:
- ecommerce.items, se seguite l’esempio suggerito sopra, oppure
- ecommerce.promoClick.promotions, se state migrando da Enhanced Ecommerce.
Il trigger dovrà essere un evento personalizzato con il valore di configurato sull’oggetto event che trasmettiamo al data layer (nel nostro esempio select_promotion).
View_item_list
L’evento view_item_list si attiva quando l’utente visualizza gli oggetti in una determinata lista di prodotti. Un esempio di lista di prodotti potrebbe essere i risultati di ricerca, i prodotti in evidenza, i prodotti in upsell, etc.
Composizione del data layer
Ecco un esempio di composizione del dataLayer per view_item_list :
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'view_item_list',
ecommerce: {
items: [{
item_name: 'sciarpa_24',
item_id: 'mp1122',
price: '31.10',
item_brand: 'marcasciarpe',
item_category: 'Apparel',
item_category2: 'Accessori',
item_category3: 'Sciarpe',
item_category4: 'Unisex',
item_variant: 'Navy blue',
item_list_name: 'Prodotti in evidenza',
item_list_id: 'FI1',
index: 1,
quantity: '1'
},{
item_name: 'sciarpa_26',
item_id: 'sp2323',
price: '92.00',
item_brand: 'marcasciarpe',
item_category: 'Apparel',
item_category2: 'Accessori',
item_category3: 'Sciarpe',
item_category4: 'Unisex',
item_variant: 'Black',
item_list_name: 'Prodotti in evidenza',
item_list_id: 'FI1',
index: 2,
quantity: '1'
}]
}
});
I parametri obbligatori sono item_name oppure item_id. Consigliamo di provare sempre a popolare il campo item_list_name, così da avere il dato di quale prodotto è stato effettivamente visualizzato.
Migrazione da Enhanced Ecommerce
Per usare l’array impressions di Enhanced Ecommerce invece di creare un nuovo oggetto items, avremo bisogno di questa variabile:
- Tipo: Data Layer Variable
- Nome Variabile: ecommerce.impressions
- Versione Data Layer: Version 2
Creata la variabile sarà possibile aggiungerla al tag evento GA4 view_item_list come valore del campo items.
Attenzione: se associate ad impressions altre azioni Enhanced Ecommerce, la variabile non funzionerà, perché ha bisogno dell’array di products .
Configurazione del tag
La configurazione per view_item_list è come segue:

Assicuriamoci che il nome evento sia view_item_list e che il parametro items punti ad una variabile con l’array di items :
- ecommerce.items, se seguite l’esempio suggerito sopra, oppure
- ecommerce.impressions, se state migrando da Enhanced Ecommerce.
E come al solito impostiamo un trigger personalizzato impostato sul valore dell’event che mandiamo al dataLayer (nel nostro esempio view_item_list).
Select_item
L’evento select_item è generato ogni volta che un utente fa clic o seleziona un prodotto dopo averlo visualizzato in una lista.
Composizione del data layer
Ecco un esempio di composizione del dataLayer per select_item :
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'select_item',
ecommerce: {
items: [{
item_name: 'sciarpa_24',
item_id: 'mp1122',
price: '31.10',
item_brand: 'marcasciarpe',
item_category: 'Apparel',
item_category2: 'Coats',
item_category3: 'Parkas',
item_category4: 'Unisex',
item_variant: 'Navy blue',
i

