De meeste webshoptracking die ik zie meet heel veel en beantwoordt heel weinig. Tientallen events, drie dashboards, en niemand vertrouwt het omzetcijfer.

Ik begin liever bij één vraag: wat is er echt verkocht, en waar kwamen die verkopen vandaan. Welke producten, welke kanalen, welke campagnes. Als je tracking dat betrouwbaar beantwoordt, worden de meeste andere keuzes een stuk makkelijker.

Begin bij de vraag, niet bij de tool

Schrijf voordat je iets instelt op wat je elke maand wilt weten. Voor de meeste shops komt dat neer op een kort lijstje:

  • Welke producten en categorieën de meeste omzet opleveren.
  • Welke kanalen bestellingen opleveren: organisch zoeken, Google Ads, Meta, e-mail, direct.
  • Welke campagnes terugverdienen wat ze kosten.
  • Waar mensen afhaken tussen een product bekijken en het kopen.

Alles wat je trackt, moet helpen een van die vragen te beantwoorden. Doet een event dat niet, dan hoeft het er waarschijnlijk niet te zijn. Minder tracking die klopt is beter dan meer tracking die niemand gelooft.

De GA4-ecommerce-events die ertoe doen

GA4 heeft een set aanbevolen ecommerce-events. Je hebt ze niet allemaal op dag één nodig, maar vier vormen de ruggengraat:

  • view_item als iemand een productpagina bekijkt.
  • add_to_cart als een product in de winkelwagen gaat.
  • begin_checkout als het afrekenen begint.
  • purchase als de bestelling rond is.

Met die vier zie je de basistrechter en waar die lekt. view_item_list, view_cart, add_shipping_info en add_payment_info vullen de details in als je die nodig hebt.

De naam van het event is het makkelijke deel. Wat de data bruikbaar maakt, is wat je meestuurt:

  • items: de producten, met minimaal een item-ID of naam, prijs en aantal. Voeg merk, categorie en variant toe als je productrapporten wilt die iets zeggen.
  • value: het totaalbedrag van dat event, als getal.
  • currency: altijd, als code van drie letters zoals EUR of GBP. Zonder valuta kan GA4 de waarde niet goed verwerken.
  • transaction_id: bij het purchase-event, het ordernummer uit je shop.

Bepaal op tijd of de waarde inclusief btw en verzendkosten is, en houd dat overal gelijk. Veel "GA4 klopt niet met de shop"-problemen komen doordat het ene systeem btw meetelt en het andere niet.

Tel elke bestelling één keer

Dubbele aankopen zijn een van de meest voorkomende trackingfouten die ik tegenkom. De bedankpagina stuurt het purchase-event, de klant ververst de pagina of opent de link in de bevestigingsmail, en de bestelling wordt nog een keer geteld.

Een paar dingen helpen:

  • Stuur altijd het echte ordernummer mee als transaction_id. GA4 gebruikt dat om dubbele aankopen met hetzelfde ID eruit te filteren.
  • Stuur het purchase-event maar één keer per bestelling, bijvoorbeeld door aan jouw kant te checken of het al verstuurd is.
  • Let op twee setups die tegelijk draaien, zoals een Shopify-app en een handmatige GTM-tag die allebei aankopen doorgeven.

Dan het omgekeerde probleem. Bij betaalmethodes als iDEAL, PayPal of Klarna verlaten klanten je site om te betalen. Sommigen komen nooit terug op de bedankpagina, dus de bestelling is er wel, maar de browser meldt hem nooit. Server-side purchase-tracking, of een platformkoppeling die de bestelling vanuit de backend doorstuurt, dicht het grootste deel van dat gat.

De basis van consent mode

In de EU heb je toestemming nodig voordat je analytics- en advertentiecookies plaatst. Een deel van je bezoekers zegt dus nee, en je data is onvolledig. Dat is normaal en prima, zolang je het weet.

Met Google's consent mode respecteren je tags die keuze. Weigert iemand, dan plaatsen de tags geen cookies. Google Ads en GA4 kunnen een deel van de ontbrekende conversies dan schatten met modellering. Consent mode v2 voegde daar signalen voor advertentiedata en personalisatie aan toe, die Google verplicht stelt om te adverteren richting gebruikers in de EER.

In de praktijk:

  • Gebruik een goede cookiebanner die de keuze doorgeeft aan je tags.
  • Test het. Weiger alles, plaats een testbestelling en kijk wat er echt afgaat.
  • Reken erop dat GA4 minder bestellingen laat zien dan je shop. Dat verschil komt door consent, adblockers en browsers die tracking beperken.

Leg GA4 naast je shopbackend

Je shopbackend is de bron van de waarheid voor bestellingen en omzet. GA4 is er om uit te leggen waar ze vandaan kwamen. Vergelijk ze dus regelmatig.

Pak een hele maand en zet drie dingen naast elkaar: bestellingen en omzet in de shop, en aankopen en aankoopomzet in GA4. Een verschil is normaal. Waar je op let, is of het ongeveer gelijk blijft van maand tot maand. Springt het ineens, dan is er iets kapot, vaak na een thema-update, een nieuwe checkout-app of een aanpassing in de cookiebanner.

Check ook een paar losse bestellingen. Zoek het ordernummer op in GA4 en kijk of bedrag, producten en valuta kloppen.

Attributie: een bruikbaar verhaal, niet de waarheid

Als de data klopt, komt de volgende vraag: welk kanaal krijgt de credits. Daar helpt het om realistisch te zijn.

GA4 gebruikt standaard data-driven attributie en verdeelt de credits over de contactmomenten die het ziet. Google Ads en Meta rapporteren conversies elk volgens hun eigen regels en tijdvensters, en claimen allebei met plezier dezelfde bestelling. Tel je de conversies van alle platforms bij elkaar op, dan kom je meestal uit op meer bestellingen dan je echt had.

Dus ik gebruik elke bron waar die goed in is. De shopbackend voor de echte omzet. GA4 om kanalen met dezelfde regels te vergelijken. De advertentieplatforms om campagnes binnen dat platform bij te sturen. En af en toe een nuchtere check: als je advertentiebudget omhoog ging en de totale shopomzet niet, dan vertelt het dashboard van het platform niet het hele verhaal.

Geef de advertentieplatforms goede conversies

Advertentieplatforms leren van de conversies die je ze stuurt. Foute of dubbele aankopen betekenen dat ze op het verkeerde sturen.

  • Voor Google Ads importeer je het purchase key event uit GA4 of gebruik je de Google Ads-conversietag, en kies je er één als hoofdconversie. Enhanced conversions kunnen de matching verbeteren.
  • Voor Meta gebruik je de pixel samen met de Conversions API, en stuur je vanuit allebei hetzelfde event-ID, zodat Meta dubbele events eruit haalt.
  • Stuur bij aankoopconversies altijd waarde en valuta mee, zodat je op omzet kunt bieden en rapporteren, niet alleen op aantallen.

Een korte setup-checklist

  • Schrijf op welke vragen de tracking moet beantwoorden.
  • Zet view_item, add_to_cart, begin_checkout en purchase op, met items, value en currency.
  • Stuur het echte ordernummer mee als transaction_id.
  • Bepaal of de waarde inclusief btw en verzending is, en houd dat consequent.
  • Zorg dat elke bestelling één keer telt, en test wat er gebeurt als je de bedankpagina ververst.
  • Vang bestellingen op waarbij klanten extern betalen en niet terugkomen.
  • Koppel consent mode aan je cookiebanner en test het met alles geweigerd.
  • Kies per advertentieplatform één hoofdconversie voor aankopen, met waarde.
  • Vergelijk GA4 elke maand met je shopbackend.
  • Fix eerst de tracking, trek daarna pas conclusies.

Waar begin je

Weet je niet zeker of je cijfers kloppen? Leg dan één maand aan shopbestellingen naast de aankopen in GA4. Die vergelijking vertelt je in een halfuur al een hoop.

Tracking en analytics horen bij wat ik doe, meestal samen met ads en conversiewerk, en ik check ze bij elke livegang in mijn proces. Wil je hulp om je cijfers op orde te krijgen? Bespreek je project.