E-commerce

Eventi analytics che servono davvero in un ecommerce

Cinque eventi coprono un negozio: vista prodotto, aggiunta al carrello, inizio checkout, acquisto e ricerca a vuoto. Il resto è rumore da mantenere ogni mese.

In sintesi

  • Cinque eventi bastano: view_item, add_to_cart, begin_checkout, purchase, search senza risultati.
  • L'acquisto va contato una volta sola, con un controllo su transaction_id.
  • Il loader GA4 misurato l'1 novembre 2026 pesa 157.500 byte compressi, 446.036 non compressi.
  • Consenso e blocchi degli script riducono i dati raccolti: il numero assoluto non è il fatturato.

Cinque eventi coprono un ecommerce: vista prodotto, aggiunta al carrello, inizio checkout, acquisto e ricerca senza risultati. Il resto è rumore che costa byte e manutenzione.

I cinque eventi

EventoQuando parteParametri minimi
view_itemLa scheda prodotto è visibileitem_id, item_name, value, currency
add_to_cartClic sul pulsante di aggiuntaitem_id, quantity, value, currency
begin_checkoutIl primo campo del checkout riceve il focusvalue, currency, items
purchaseLa conferma d'ordine viene mostratatransaction_id, value, currency, items
search_no_resultsLa ricerca restituisce zero risultatisearch_term

Cinque eventi danno l'imbuto completo: chi guarda, chi aggiunge, chi inizia il pagamento, chi compra e cosa cerca senza trovare. Ogni evento in più va mantenuto, rinominato e riconciliato con il fatturato: dieci eventi non documentati valgono meno di cinque verificati.

Il codice: un solo punto di invio

const sent = new Set();

export function track(name, params) {
  if (name === "purchase") {
    const id = params.transaction_id;
    if (!id || sent.has(id)) return;
    sent.add(id);
  }
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({ event: name, ...params });
}

Il controllo su transaction_id evita il doppio conteggio quando il cliente ricarica la pagina di conferma o torna indietro. Lo stesso controllo serve lato server, se l'acquisto viene inviato anche da lì: l'identificativo unico è la sola difesa contro due acquisti identici nella stessa giornata.

Quanto pesa il tag

# peso del loader GA4, compresso e non compresso
curl -s --compressed -o /dev/null -w "%{size_download}\n" \
  "https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"

curl -s -o /dev/null -w "%{size_download}\n" \
  "https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"

Il peso misurato è quello del loader, non dell'intera strumentazione: le richieste successive partono dopo. Se il loader viene caricato su ogni pagina, la spesa si paga su ogni visita; se lo carichi solo dove serve, il resto del sito resta leggero.

Il limite da dichiarare

I numeri assoluti non sono il fatturato. Blocchi degli script e scelte di consenso tolgono una parte delle visite, e la parte mancante non è distribuita in modo uniforme: chi blocca gli script non è un campione casuale dei tuoi clienti. Per questo gli eventi vanno letti come indicatori di direzione e riconciliati con gli ordini del gestionale.

Dove continuare

I punti di invio stanno nelle pagine reali: product-detail-01 per la vista prodotto, checkout-01 per l'inizio del pagamento, dentro la libreria commerCN. Per il confronto fra analytics ospitato e in casa leggi Vercel Analytics e self-hosted, per la misura lato browser PerformanceObserver e per la reattività INP in pratica.

Domande frequenti

Quali eventi GA4 servono per un ecommerce?

Cinque: view_item, add_to_cart, begin_checkout, purchase e una ricerca senza risultati. Sono quelli che descrivono l'imbuto e il vuoto di catalogo; gli altri si aggiungono solo quando c'è una domanda a cui rispondono.

Meglio eventi lato client o lato server?

L'acquisto lato server, gli altri lato client. Il server vede l'ordine vero e non dipende dal browser; le viste e i clic si misurano meglio nel browser, dove accadono.

Come evito gli acquisti contati due volte?

Con un identificativo unico per ordine e un controllo prima dell'invio. Se lo stesso transaction_id arriva due volte, il secondo invio viene scartato: senza questo controllo il ricaricamento della pagina di conferma produce un doppione.

Il banner cookie blocca gli eventi?

Riduce i dati, non li azzera. Con il consenso negato la maggior parte delle configurazioni non invia eventi di marketing, mentre gli eventi necessari al servizio restano possibili. Il confronto va fatto con gli ordini, non con i dati dell'anno prima.

Quanto pesa Google Analytics sulla pagina?

Il solo loader gtag/js, misurato l'1 novembre 2026, pesa 157.500 byte compressi e 446.036 non compressi. Il peso totale dipende dalle richieste successive e da quante altre integrazioni caricano lo stesso strumento.