Ga naar hoofdinhoud
GA4WEBSHOP

GA4 e-commerce tracking — de events die je omzet kloppend maken.

GA4 e-commerce is geen los purchase-event maar een funnel met een gedeelde items-structuur. Goed gedaan krijg je product- en funnelrapportage; fout gedaan klopt je omzet niet.

Door Mink HelwigOnderdeel van Tracking operations

Bij de meeste webshops staat er één e-commerce event: purchase. Dat geeft je omzet, maar laat de rest van het beeld liggen — welke producten worden bekeken, waar in de checkout mensen afhaken, welke categorie converteert. GA4 is gebouwd op een reeks samenhangende e-commerce events die allemaal dezelfde items-structuur delen. Pas als die consistent is, werkt product- en funnelrapportage.

Deze gids loopt de aanbevolen events langs, de gedeelde items-array, hoe je een purchase correct (en zonder dubbeltellingen) opbouwt, en de Shopify-specifieke valkuilen waar bureaus het vaakst op stuklopen.

De aanbevolen e-commerce funnel.

GA4 kent een set aanbevolen e-commerce events met vaste namen. Gebruik exact die namen — alleen dan vult GA4 de standaard e-commerce rapporten. De funnel van breed naar diep:

  • view_item_list / select_item — productlijst of categorie bekeken, en een klik daarop.
  • view_item — productdetailpagina bekeken.
  • add_to_cart / remove_from_cart / view_cart — winkelwagen-interacties.
  • begin_checkout — checkout gestart.
  • add_shipping_info / add_payment_info — verzend- en betaalstap.
  • purchase — bestelling voltooid (de belangrijkste, sectie 03).
  • refund — terugbetaling (vaak vergeten, maar nodig voor netto-omzet).

Deze lijst is niet uitputtend — GA4 kent ook add_to_wishlist, view_promotion en select_promotion voor wishlists en promoties — maar dit is de kern-funnel.

Je hoeft niet alles in één keer te implementeren. view_item, add_to_cart, begin_checkout en purchase vormen de minimale, bruikbare funnel; de rest verdiept het beeld.

Eén structuur, overal hetzelfde.

Elk e-commerce event draagt een items-array mee: een lijst van producten met hun eigenschappen. Dezelfde velden, in elk event, met dezelfde waarden — dat is de hele truc. De meest gebruikte velden per item:

  • item_id en item_name — minstens één is verplicht; gebruik in de praktijk altijd allebei, en houd item_id identiek aan je product-ID in Merchant Center / je feed.
  • price en quantity — prijs per stuk en aantal.
  • item_brand, item_category (tot item_category5 voor subcategorieën), item_variant — voor product-segmentatie in rapporten.
  • item_list_name / item_list_id en index — welke lijst en welke positie, voor lijst-attributie.

De grootste bron van rommelige e-commerce data is inconsistentie: een item_id die in add_to_cart anders is dan in purchase, of een naam die per pagina verschilt. Leg de items-structuur één keer vast in je dataLayer en hergebruik die overal.

Het belangrijkste event — zonder gaten.

De purchase is waar omzet en advertentie-optimalisatie op draaien. De vereiste en belangrijke parameters:

  1. transaction_id — uniek per bestelling. GA4 gebruikt dit om duplicaten te dedupliceren: vuurt het event twee keer (bijv. door een refresh van de bedankpagina), dan telt de bestelling dankzij hetzelfde id maar één keer. Stuur nooit een lege string mee — GA4 dedupliceert álle lege transaction_id’s samen tot één bestelling.
  2. currency — de ISO-4217-code (bijv. EUR). Verplicht zodra je value meestuurt; zonder geldige currency kan GA4 de omzet niet correct toerekenen.
  3. value — de orderwaarde. Spreek expliciet af of dit in- of exclusief verzendkosten en btw is, en hou dat consistent.
  4. items — de gekochte producten, met dezelfde structuur als sectie 02.
  5. tax en shipping — optioneel maar nuttig om value en je werkelijke omzet te laten rijmen.

Geen of een niet-uniek transaction_idis veruit de meest voorkomende oorzaak van “GA4 telt te veel omzet”. Fix dat eerst voordat je naar attributie kijkt.

Het platform met de meeste eigenaardigheden.

Shopify is voor veel bureaus de standaard, maar de checkout is grotendeels afgeschermd. Wat je moet weten:

  • De checkout is beperkt aanpasbaar. Buiten Shopify Plus draait de checkout op Shopify’s eigen omgeving; je kunt daar niet zomaar GTM-tags injecteren. De purchase vuurt op de order-status- of bedankpagina.
  • Web Pixels / Customer Events is de juiste route. De moderne manier om tracking toe te voegen is via Shopify’s Customer Events (Web Pixels API), niet via de oude checkout.liquid additional scripts. Die worden uitgefaseerd: Plus-stores zijn afgesloten sinds 28 augustus 2025, niet-Plus heeft tot 26 augustus 2026, met automatische upgrades vanaf januari 2026. Via de Web Pixels API abonneer je op events als checkout_completed en map je die naar GA4.
  • Server-side is hier extra waardevol. Omdat de checkout afgeschermd en cookie-gevoelig is, geeft een server-side route (Shopify’s GA4-koppeling of een eigen server-GTM) een betrouwbaardere purchase dan alleen browser-tags. Zie onze server-side GTM-gids.

Waar e-commerce data stukgaat.

  1. Inconsistente item_id. Anders in add_to_cart dan in purchase → product-rapporten en Google Ads-feeds matchen niet.
  2. Dubbele purchase. Geen of niet-uniek transaction_id → omzet wordt overschat bij elke herlaad van de bedankpagina.
  3. Ontbrekende currency. Value zonder geldige currency → GA4 kan de omzet niet correct toerekenen, zonder foutmelding.
  4. Omzet-mismatch. value inclusief btw/verzending terwijl je backend exclusief rekent → GA4 wijkt structureel af van je werkelijke omzet.
  5. Testbestellingen en intern verkeer. Eigen test-orders die meelopen → vervuilde conversiedata. Sluit ze uit via een data-filter.

Hoe weet je of het klopt?

Voordat je op deze data stuurt, valideer je:

  • DebugView. Doorloop de funnel met debug-modus aan en controleer dat elk event de items-array correct meestuurt (open een event en bekijk de parameters).
  • Realtime. Plaats een testbestelling en kijk of purchase met de juiste value en transaction_id binnenkomt.
  • Reconciliatie. Vergelijk de GA4-omzet over een periode met je Shopify- of backend-cijfers. Een paar procent verschil is normaal (consent, adblockers); tientallen procenten is een implementatiefout.

Samenvatting.

  1. Gebruik de aanbevolen event-namen; minimaal view_item → add_to_cart → begin_checkout → purchase.
  2. Eén consistente items-array (met stabiele item_id) in elk event.
  3. Purchase: uniek transaction_id (dedup), verplichte currency bij value, plus items.
  4. Shopify: via Web Pixels / Customer Events, en server-side voor betrouwbaarheid.
  5. Valideer met DebugView + Realtime en reconcilieer met je backend-omzet.

// NIEUWSBRIEF

Stuur me toekomstige artikelen.

Eén mail per maand over tracking operations — nieuwe artikelen, updates over het product, bureau-lessen. Uitschrijven kan altijd.

Geen spam. Uitschrijven kan altijd via elke mail. Zie ons privacybeleid.

// EN NU?

E-commerce tracking dat over al je shops klopt?

SignumCore standaardiseert de GA4 e-commerce setup — events, items-array en deduplicatie — over je hele klantportfolio, zodat omzet en funnel kloppen.