Torna al blog

Blog

Tagging lato server per un negozio Shopify o WooCommerce: cosa si attiva, cosa no, e cosa installare

Pubblicato · Aggiornato · 5 min di lettura

Un container server non fa sì che un negozio riporti gli acquisti. Inoltra ciò che il browser invia, dal tuo nome host invece che da quello di Google, e ne vale la pena: ad blocker e Safari, insieme, eliminano una quota significativa delle conversioni di un negozio. Ma l’acquisto deve prima essere inviato, e sulle due piattaforme su cui gira la maggior parte dei negozi, di serie non lo invia nulla. Questo è l’articolo che avremmo voluto consegnare a ogni cliente il primo giorno.

I nove eventi, e l’unica cosa che hanno in comune

GA4 definisce nove eventi per un funnel di acquisto: view_item_list, view_item, add_to_cart, remove_from_cart, view_cart, begin_checkout, add_shipping_info, add_payment_info e purchase. I nomi sono di GA4, non di una piattaforma: gli stessi nove funzionano per Shopify, WooCommerce e per un negozio che hai costruito da solo.

Ciò che condividono è un meccanismo. Ciascuno è un push nel dataLayer della pagina, esattamente con quel nome, con un oggetto ecommerce nella forma di GA4. Un attivatore di Tag Manager ascolta il nome; un tag evento GA4 legge l’oggetto ecommerce e lo invia. Sbaglia il nome, annida l’oggetto un livello troppo in profondità, o invialo nella pagina sbagliata, e il tag resta lì per sempre senza un errore. Ecco come appare un push di acquisto:

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'purchase',
  ecommerce: {
    transaction_id: 'ORD-10442',
    value: 89.90,
    currency: 'EUR',
    items: [
      { item_id: 'SKU-118', item_name: 'Trail jacket', price: 89.90, quantity: 1 }
    ]
  }
});

Il push preliminare di ecommerce: null non è decorativo. Senza di esso, gli articoli dell’evento precedente possono infiltrarsi in quello successivo, e un view_item di tre pagine fa compare dentro un purchase.

Shopify: il tema non vede il checkout

Un container installato in un tema Shopify si carica nella vetrina: pagine prodotto, collezioni, carrello. Non si carica nel checkout né nella pagina di ringraziamento, che Shopify serve dal proprio dominio e con i propri template. Un container installato nel tema può quindi inviare view_item e add_to_cart e non invierà mai, con nessuna configurazione, begin_checkout, add_shipping_info, add_payment_info o purchase.

Quei quattro arrivano da un Custom Pixel. La sandbox dei pixel di Shopify espone gli eventi del checkout (checkout_started, checkout_shipping_info_submitted, payment_info_submitted, checkout_completed) e consente a un pixel di inviare a un proprio dataLayer: un piccolo script mappa ciascuno sul nome e sulla forma dell’evento GA4 vista sopra. Gli eventi della vetrina continuano ad arrivare dal tema, quindi una configurazione completa ha entrambi: un’app per il dataLayer o uno snippet nel tema per la metà di navigazione, un Custom Pixel per la metà del checkout.

Un’altra decisione. Il canale Google e YouTube di Shopify può inviare eventi GA4 direttamente, al di fuori di qualsiasi container. Se lì colleghi una proprietà GA4 E fai passare la stessa proprietà dal tuo container, ogni acquisto viene contato due volte. Scegli una strada. Se l’obiettivo è la raccolta first-party, la strada è il container, e la connessione Analytics del canale resta spenta.

WooCommerce: il core non invia nulla

WooCommerce di per sé non scrive alcun dataLayer. Lo fa un plugin — GTM4WP è quello a cui ricorre la maggior parte — e la sua opzione e-commerce GA4 produce questi eventi nella forma giusta nelle pagine giuste: view_item su un prodotto, add_to_cart sul pulsante, begin_checkout nella pagina di pagamento, purchase nella pagina di ordine ricevuto.

Il classico difetto di WooCommerce è un acquisto duplicato, e ha una causa precisa: la pagina di ordine ricevuto si ricarica. Un visitatore la aggiorna, vi torna da un fornitore di pagamento, o il tema la attraversa due volte con un redirect, e purchase viene inviato di nuovo con lo stesso transaction_id. GA4 deduplica gli acquisti per transaction_id all’interno di una sessione, il che intercetta la maggior parte dei casi, ma non un ricaricamento il giorno dopo. L’impostazione del plugin «attiva una sola volta per ordine» merita di essere accesa: tiene il contrassegno lato server, dove un ricaricamento non può azzerarlo.

Cosa costruisce SignalHost per te

Ogni container SignalHost ha, nel suo container web, un attivatore evento personalizzato e un tag evento GA4 per ciascuno dei nove — e anche per i sette di cui ha bisogno un sito senza negozio: registrazioni, prove gratuite e lead. Hanno tutti il prefisso SH, così da non entrare mai in collisione con ciò che hai già. Ogni tag invia l’oggetto ecommerce direttamente dal dataLayer, così items, value, currency e transaction_id passano senza una variabile per campo, e ciascuno indica esplicitamente il tuo ID misurazione invece di ereditarlo.

Sul tuo negozio non viene installato nulla. Gli attivatori ascoltano; i push sono del plugin o del pixel. Se il tuo container invia già uno di questi eventi a GA4 con un tuo tag — per esempio un plugin che ha portato il proprio tag di acquisto — SignalHost gli lascia quell’evento e non costruisce un secondo tag, così nessun ordine viene contato due volte. Ogni tag passa inoltre l’event_id che invii con l’evento, così una piattaforma pubblicitaria che riceve lo stesso evento anche dal proprio pixel lo conta una sola volta.

Lato server non c’è nulla per singolo evento. Il tag GA4 del container server inoltra ogni evento che riceve, comunque si chiami, quindi un nuovo evento sul tuo sito non richiede alcuna modifica sul nostro. Le piattaforme pubblicitarie che colleghi — Google Ads, Meta, TikTok, Reddit, Pinterest, Snapchat, LinkedIn — ricevono gli stessi eventi: un purchase diventa un Purchase per Meta e TikTok, con i suoi prodotti e il suo valore, e ogni piattaforma riceve gli eventi che le servono, dallo stesso push.

Verificarlo con un ordine di prova

Effettua un ordine reale in modalità test, o uno economico che poi rimborsi, e osserva l’elenco degli eventi nella pagina del container. In sequenza dovresti vedere view_item, add_to_cart, begin_checkout, add_payment_info e purchase, ciascuno una volta, con view_cart e add_shipping_info in mezzo se la tua configurazione li invia. Un purchase mancante su Shopify significa che il Custom Pixel non è installato o non invia; un begin_checkout mancante su WooCommerce di solito significa che l’evento di checkout del plugin è disattivato.

Se fai passare le conversioni Google Ads dal container, purchase è l’evento di conversione, a meno che tu non ne scelga un altro, e valore, valuta e ID transazione vengono letti da quello stesso oggetto ecommerce. Un push di acquisto senza value registra una conversione che vale zero: un numero reale in un report, e quello sbagliato.

Se dopo GA4 conta ancora meno ordini del tuo negozio, ecco perché GA4 conta di meno e cosa si può recuperare.

Smetti di perdere dati per gli ad blocker

Inizia gratis. Il primo container è pronto in pochi minuti.