Tracciamento WooCommerce con Google Tag Manager: plugin o codice?
Per molti negozi il plugin è la scelta giusta. Il punto è sapere cosa attivare, cosa spegnere e quali ordini il browser non vedrà mai, qualunque sia la strada.
Di Gennaro Napoletano · 9 minuti di lettura
Scritto con l'aiuto dell'AI, riletto da Gennaro Napoletano.

In breve
Per collegare Google Tag Manager a WooCommerce basta spesso un plugin come GTM4WP, che scrive nel data layer eventi, prodotti e dati dell’ordine. Il codice su misura serve quando il checkout è molto personalizzato. In entrambi i casi vanno controllati doppioni fra plugin, pagamenti esterni, ordini manuali e rimborsi, perché il tag nel browser non li vede tutti.
Quali sono le strade per tracciare WooCommerce?
Le strade sono tre, e la scelta dipende da quante piattaforme devi alimentare e da quanto è standard il tuo negozio.
| Strada | Come lavora | Quando conviene | A cosa stare attento |
|---|---|---|---|
| GTM4WP | Scrive gli eventi nel data layer, i tag li gestisci in Tag Manager | Negozio che usa più piattaforme e vuole il controllo in un punto solo | Molte opzioni sono spente di partenza |
| Google Analytics for WooCommerce | Estensione che invia a GA4 con gtag, senza contenitore | Serve solo GA4 e non hai un contenitore da gestire | Non fornisce un banner: il consenso va gestito a parte |
| Data layer su misura | Lo sviluppatore scrive gli eventi nel tema o in un plugin proprio | Checkout molto personalizzato, regole particolari | Va rivisto a ogni aggiornamento del negozio |
Un plugin basta quando tema e checkout sono vicini a quelli standard, le varianti sono ordinate e non ci sono flussi d’acquisto insoliti. Il codice serve se il plugin non vede un passaggio che per te è importante, non per principio.
Le tre strade non vanno sommate. Il problema più comune nasce proprio qui: due sistemi attivi insieme che mandano lo stesso acquisto.
Cosa devi attivare in GTM4WP?
Installarlo non basta: l’interruttore principale parte spento, e finché è spento da WooCommerce non arriva nulla nel data layer. Queste sono le opzioni che contano, secondo la documentazione del plugin.
| Opzione | A cosa serve | Cosa fare |
|---|---|---|
| Track e-commerce | Interruttore di tutta l’integrazione | Attivarla |
| Do not flag orders as being tracked | Toglie il segno che impedisce un secondo acquisto alla ricarica della conferma | Lasciarla spenta, salvo che i doppioni li gestisca altro |
| Customer data in data layer | Aggiunge dati dell’account e l’oggetto user_data all’acquisto, ospiti compresi | Attivarla se usi le conversioni avanzate |
| Order data in data layer | Mette i dati completi dell’ordine nella pagina di conferma | Attivarla se servono al tag di conversione |
| Exclude tax from revenue | Toglie l’IVA dal valore inviato | Decidere e tenere una regola sola |
| Exclude shipping from revenue | Toglie la spedizione dal valore, ma continua a inviarla a parte | Come sopra |
| Use SKU instead of ID | Usa lo SKU come codice prodotto | Attivarla se il feed usa gli SKU |
L’ultima riga decide se Google Ads riesce a collegare le vendite ai prodotti: il codice nel tag deve coincidere con quello del feed. L’opzione sui dati del cliente, invece, ha un nome poco chiaro ed è un motivo frequente per cui le conversioni avanzate non mandano nulla senza dare errori.
Controlla anche la versione. Le pagine di carrello e checkout a blocchi, oggi predefinite in WooCommerce, non generano i vecchi eventi: la serie 2 del plugin le gestisce. E guarda gli stati dell’ordine che fanno partire l’acquisto: di norma sono In lavorazione, In sospeso e Completato. Se accetti il bonifico, un ordine in sospeso conta come vendita anche se il pagamento non arriverà mai.

Il tuo WooCommerce racconta tutti gli ordini?
Ospiti, varianti, valore netto, doppioni e consenso: i dettagli che un plugin non controlla da solo. Si parte confrontando ordini e report, per capire subito dove sta il problema.
Da dove nascono i doppioni tra plugin?
Nascono da due sistemi che lavorano senza sapere l’uno dell’altro. Su WooCommerce capita spesso perché il plugin di un servizio si installa in un clic e nessuno lo ricorda più.
- Estensione più contenitore. L’estensione per GA4 invia l’acquisto con
gtag, e un tag nel contenitore lo manda di nuovo. - Tema con il codice dentro. Un vecchio tag scritto nel tema resta attivo dopo il passaggio a Tag Manager.
- Plugin di una piattaforma pubblicitaria. Manda il proprio pixel, mentre lo stesso è presente nel contenitore.
- Segno dell’ordine tolto. Con il controllo disattivato, la ricarica della conferma fa ripartire l’acquisto.
Per vedere chi manda cosa, apri la conferma d’ordine su una copia del sito e guarda le richieste di rete: lì compare anche ciò che non passa da Tag Manager. La documentazione dell’estensione per GA4 lo dice chiaramente: più istanze del codice di tracciamento sulla stessa pagina causano problemi. Come trovare e togliere il resto è spiegato in conversioni doppie.
Che ordini non vede il tag nel browser?
Non vede tutto ciò che non passa dal browser del cliente, sulla pagina di conferma. Il tag nel browser non ha nessuna pagina su cui partire, quindi questi casi si coprono solo dal server. Per i rimborsi, GTM4WP dalla versione 2.1 del 5 novembre 2026 offre un invio dal server con la Data Manager API di Google, come funzione sperimentale.
| Caso | Che cosa succede | Cosa puoi fare |
|---|---|---|
| Pagamento esterno senza ritorno | Il cliente paga e chiude: la conferma non si apre e l’acquisto non parte | Scegliere gestori che riportano alla conferma, poi misurare quanti ordini mancano |
| Ordine creato a mano | Nato dal pannello di WooCommerce, non ha un cliente sul sito | Tenerlo fuori dal confronto, oppure inviarlo dal server |
| Rimborso | GA4 mantiene l’acquisto finché non riceve un evento refund | Inviare refund dal server, con lo stesso transaction_id |
| Annullamento dopo l’ordine | L’acquisto è già stato contato | Come sopra, se conta nei tuoi numeri |
L’invio dal server a GA4 si fa con il Measurement Protocol, che serve a integrare i tag e non a sostituirli. Gli eventi si collegano alla visita tramite il client_id, che quindi va conservato al momento dell’ordine. Il Measurement Protocol resta attivo, senza piani di dismissione, ma per le nuove integrazioni da server a server Google consiglia la Data Manager API.
Per il tuo conto economico questi casi contano più del tag: un rimborso che GA4 non vede gonfia il fatturato del prodotto che viene reso di più. Il confronto completo è in perché GA4 e il gestionale danno numeri diversi, e l’effetto sul guadagno in quanto costano davvero i resi.
Quando serve scrivere il codice, e come si presenta?
Serve quando il negozio ha regole che un plugin non può conoscere: un checkout fatto su misura, un valore calcolato in un modo particolare, flussi d’acquisto fuori dalle pagine standard. Il prezzo da pagare è la manutenzione, perché ogni aggiornamento va ricontrollato.
Il cuore è poco: leggere l’ordine e scriverlo nel data layer una volta sola. Questo schema mostra l’idea, compreso il controllo che ferma la ricarica. Qui il valore è il totale meno le imposte, quindi con la spedizione dentro: è una scelta da dichiarare.
add_action( "woocommerce_thankyou", function ( $order_id ) {
$order = wc_get_order( $order_id );
if ( ! $order || $order->get_meta( "_acquisto_inviato" ) ) {
return; // Ordine già inviato: la ricarica non riparte.
}
$dati = [
"event" => "purchase",
"ecommerce" => [
"transaction_id" => $order->get_order_number(),
"value" => (float) $order->get_total() - (float) $order->get_total_tax(),
"currency" => $order->get_currency(),
],
];
// Qui il tema stampa $dati con dataLayer.push(), con gli articoli dell'ordine.
$order->update_meta_data( "_acquisto_inviato", 1 );
$order->save();
} );
È uno schema, non un pezzo da incollare: manca l’elenco degli articoli, e il segno sull’ordine scatta quando la pagina viene generata. Una cache di pagina può cambiare il risultato, quindi va esclusa la conferma d’ordine. Quali parametri servono è spiegato nell’evento purchase di GA4.
Una scelta intermedia spesso regge meglio di tutte: GTM4WP per gli eventi standard e un’aggiunta su misura solo per il caso che manca.
Che cosa controllare prima di dire che funziona?
Controlla i casi che i plugin non segnalano, su una copia del sito e mai con dati veri sul negozio aperto.
- Ordine da ospite e ordine da cliente registrato.
- Prodotto con varianti: l’ID nel tag è lo stesso del feed?
- Ogni metodo di pagamento attivo, soprattutto quelli che escono dal sito.
- Ricarica della pagina di conferma.
- Il valore: l’IVA è dentro o fuori? Coincide con quello degli altri tag?
- L’indirizzo della conferma contiene la chiave dell’ordine: non deve finire in GA4 o presso terzi.
- Le prove con il banner accettato e rifiutato.
Questi controlli, uno per uno, sono il lavoro sul tracciamento WooCommerce. E quando i dati sono a posto, il portale può importare le vendite direttamente dal negozio e usarle accanto ai dati di Google per mostrare il margine di ogni prodotto. Per la parte che riguarda Google Ads, cioè valore, ID transazione, consenso e verifica, c’è la guida al tracking e-commerce per Google Ads.
Domande frequenti
GTM4WP è gratuito?
Sì, il plugin è pubblicato gratis nella directory di WordPress. I costi veri sono il tempo per configurarlo e controllarlo, e l’eventuale contenitore server.
Posso tenere insieme GTM4WP e l’estensione ufficiale per GA4?
Puoi farlo solo se una delle due non manda gli eventi a GA4. Se entrambe inviano l’acquisto alla stessa proprietà, ogni vendita rischia di essere contata due volte.
Il plugin invia anche i rimborsi?
Non darlo per scontato: i rimborsi nascono nel pannello e non nel browser. GTM4WP, dalla versione 2.1, può inviarli dal server con la Data Manager API, come funzione sperimentale; secondo le sue note di rilascio, oggi GA4 elabora solo il primo di più rimborsi sullo stesso ordine. Fai un rimborso di prova su una copia del sito e guarda se GA4 riceve l’evento refund.
Le pagine a blocchi cambiano il tracciamento?
Sì, carrello e checkout a blocchi non generano gli eventi classici, quindi un plugin datato può perderli. Aggiorna il plugin e prova il percorso completo dopo ogni aggiornamento di WooCommerce.
Fonti
- GTM4WP: riferimento delle impostazioni per WooCommerce
- GTM4WP: che cosa cambia con la versione 2.0
- WooCommerce: documentazione di Google Analytics for WooCommerce
- WooCommerce: elenco degli hook
- WooCommerce: la classe WC_Order
- Google Analytics: misurare l'e-commerce, compresi i rimborsi
- Google Analytics: Measurement Protocol
- GTM4WP: changelog (versione 2.1)
- GA4 Measurement Protocol: inviare gli eventi

Gennaro Napoletano
Esperto di digital analytics e Google Tag Manager, da oltre 15 anni lavora sui dati degli e-commerce. Nel 2023 Google lo ha invitato nella sua sede di Dublino per i risultati di alcuni e-commerce gestiti da lui. Ha realizzato il portale di marginalità per e-commerce e aiuta aziende e agenzie a fidarsi dei propri numeri. Scopri chi è.
Continua a leggere
Evento purchase in GA4: come configurarlo bene con Google Tag Manager
Parametri, transaction_id, IVA e spedizione nel valore: il codice di esempio, la scelta da dichiarare e la prova per scoprire gli acquisti doppi.
Conversioni doppie: come trovarle e toglierle da GA4 e Google Ads
Pagina di conferma ricaricata, due tag, plugin più GTM: come scoprire i doppioni e perché un ROAS gonfiato può nascondere una campagna in perdita.
Quanto costano davvero i resi: come calcolarne l’impatto sul margine
La formula del costo per reso, il tasso per prodotto e una tabella che mostra quanto i resi spostano il CPA massimo e il ROAS di pareggio.
Se i numeri non tornano
Un tracciamento di cui ti puoi fidare
Consulenza su Google Tag Manager, client-side e server-side: si controlla ciò che c’è e si sistema ciò che non misura bene.