Blog
Tagging lato server per un negozio Shopify o WooCommerce: cosa si attiva, cosa no, e cosa installare
Pubblicato · 4 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 sette eventi, e l’unica cosa che hanno in comune
GA4 definisce sette eventi per un funnel di acquisto: view_item_list, view_item, add_to_cart, remove_from_cart, begin_checkout, add_payment_info e purchase. I nomi sono di GA4, non di una piattaforma: gli stessi sette 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_payment_info o purchase.
Quei tre arrivano da un Custom Pixel. La sandbox dei pixel di Shopify espone gli eventi del checkout (checkout_started, 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 i sette 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
Di’ alla procedura guidata che il sito è un negozio e aggiungerà al tuo container web un attivatore evento personalizzato e un tag evento GA4 per ciascuno dei sette eventi: quattordici entità, tutte con 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. Scegliere «nessun negozio online» lascia fuori le quattordici entità e non cambia altro: visualizzazioni di pagina, scroll e il resto degli eventi standard passano comunque dal container.
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 destinazioni Meta Conversions API e TikTok Events API, se le colleghi, mappano da sole gli stessi sette nomi; un purchase diventa un Purchase per Meta e un CompletePayment per TikTok, 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. 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, 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.
