Vai al contenuto
Cristalroi

Tracciamento e analytics

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.

Portatile aperto con lo schermo illuminato accanto a una stampante: il banco di un piccolo negozio online

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.

StradaCome lavoraQuando convieneA cosa stare attento
GTM4WPScrive gli eventi nel data layer, i tag li gestisci in Tag ManagerNegozio che usa più piattaforme e vuole il controllo in un punto soloMolte opzioni sono spente di partenza
Google Analytics for WooCommerceEstensione che invia a GA4 con gtag, senza contenitoreServe solo GA4 e non hai un contenitore da gestireNon fornisce un banner: il consenso va gestito a parte
Data layer su misuraLo sviluppatore scrive gli eventi nel tema o in un plugin proprioCheckout molto personalizzato, regole particolariVa 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.

OpzioneA cosa serveCosa fare
Track e-commerceInterruttore di tutta l’integrazioneAttivarla
Do not flag orders as being trackedToglie il segno che impedisce un secondo acquisto alla ricarica della confermaLasciarla spenta, salvo che i doppioni li gestisca altro
Customer data in data layerAggiunge dati dell’account e l’oggetto user_data all’acquisto, ospiti compresiAttivarla se usi le conversioni avanzate
Order data in data layerMette i dati completi dell’ordine nella pagina di confermaAttivarla se servono al tag di conversione
Exclude tax from revenueToglie l’IVA dal valore inviatoDecidere e tenere una regola sola
Exclude shipping from revenueToglie la spedizione dal valore, ma continua a inviarla a parteCome sopra
Use SKU instead of IDUsa lo SKU come codice prodottoAttivarla 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.

Donna che chiude un pacco al banco, con il portatile accanto e altre scatole: un piccolo negozio online

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.

CasoChe cosa succedeCosa puoi fare
Pagamento esterno senza ritornoIl cliente paga e chiude: la conferma non si apre e l’acquisto non parteScegliere gestori che riportano alla conferma, poi misurare quanti ordini mancano
Ordine creato a manoNato dal pannello di WooCommerce, non ha un cliente sul sitoTenerlo fuori dal confronto, oppure inviarlo dal server
RimborsoGA4 mantiene l’acquisto finché non riceve un evento refundInviare refund dal server, con lo stesso transaction_id
Annullamento dopo l’ordineL’acquisto è già stato contatoCome 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

Gennaro Napoletano, esperto di digital analytics e Google Tag Manager, sorride nella sede Google di Dublino

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.