GA4 meet e-commerce niet vanzelf: je webshop moet elke stap zelf als event doorgeven [1]. Meet minstens purchase, met een uniek transactie-ID, een items-lijst, een value als getal en de valuta. Geef terugbetalingen door met refund, zet betaalpagina's bij de ongewenste verwijzingen en leg je GA4-omzet elke maand naast die van je webshop.
Of je het zelf opzet, aan je webbouwer vraagt of een Google Analytics bureau inschakelt: de keuzes zijn dezelfde. De belangrijkste is wat je in value zet, want GA4, Google Ads en je eigen rapportage moeten hetzelfde getal gebruiken.
Welke events heb je nodig?
Begin met purchase en voeg daarna de stappen ernaartoe toe. Gebruik de namen die Google aanbeveelt: GA4 vult er automatisch rapporten mee, zoals E-commerceaankopen [1].
| Event | Wanneer het vuurt |
|---|---|
view_item | Een bezoeker bekijkt een productpagina |
add_to_cart | Een product gaat in het winkelmandje |
begin_checkout | De checkout start |
purchase | De bestelling is geplaatst |
refund | Een bestelling wordt geheel of gedeeltelijk terugbetaald |
Met de eerste vier zie je waar bezoekers afhaken. Google heeft er nog meer, onder meer voor productlijsten, verzend- en betaalinformatie en interne promoties [2]. Werk je met Shopify, dan meet de Shopify-pixel sommige events automatisch: controleer welke, zodat ze niet dubbel vuren naast je eigen tags [1].
Welke parameters horen bij een aankoop?
Voor purchase zijn twee parameters verplicht, en de rest bepaalt of je omzetcijfers bruikbaar zijn [2].
| Parameter | Verplicht? | Wat erin hoort |
|---|---|---|
transaction_id | Ja | Een uniek ID per bestelling, zoals je ordernummer, zonder gegevens die naar een klant verwijzen [3] |
items | Ja | De gekochte artikelen, elk met minstens een item_id of een item_name |
value | Ja, met voorbehoud | De som van prijs maal aantal van alle artikelen, als getal |
currency | Ja, zodra je value meegeeft | De valuta in drie letters, voor Belgische webshops EUR |
tax, shipping | Nee | Belasting en verzendkosten, als aparte getallen |
Een getal betekent zonder valutateken: 72.05, niet "€ 72,05" [4]. Optioneel zijn onder meer coupon en customer_type (new of returning), waarvoor Google een venster van 540 dagen aanraadt [2].
Wat zet je in value?
Google raadt value exclusief verzending en belasting aan; die geef je apart door in shipping en tax [2]. Voor een Belgische webshop die prijzen inclusief btw toont, is dat een bewuste keuze.
Beide kunnen werken, zolang je één definitie gebruikt. Wissel je per maand, of gebruikt Google Ads een andere waarde dan GA4, dan stuurt je biedstrategie op een ander getal dan het getal waarop jij rapporteert.
Zo stuur je een aankoop door
Met Google Tag Manager duwt je webshop de gegevens naar de datalaag, en een GA4-tag stuurt ze door. Maak het vorige e-commerce-object eerst leeg, zodat gegevens van een eerdere stap niet meelopen [5]:
dataLayer.push({ ecommerce: null });
dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: 'BE-10482',
value: 59.50,
tax: 12.50,
shipping: 4.95,
currency: 'EUR',
items: [{
item_id: 'SKU-231',
item_name: 'Tuinhandschoenen leder',
price: 29.75,
quantity: 2
}]
}
});
Hier zijn de prijzen exclusief btw: value is 2 x 29,75 = 59,50 euro. In de GA4-eventtag vink je onder More Settings › Ecommerce de optie Send Ecommerce data aan, en een Custom Event-trigger op purchase laat de tag vuren [5].
Vraag je webbouwer of platform dat de events exact de namen van Google volgen, en dat purchase pas vuurt als de bestelling geplaatst is, niet bij de klik op "Bestellen". Test elke wijziging in DebugView: in de gewone rapporten kan het tot 24 uur duren voor e-commercegegevens verschijnen [1].
Dubbele aankopen en terugbetalingen
Het transactie-ID beschermt je tegen dubbele aankopen, bijvoorbeeld als een klant de bevestigingspagina herlaadt: GA4 ontdubbelt aankopen met hetzelfde ID, maar alleen voor webstreams [3]. Stuur nooit een leeg of vast ID, want dan filtert GA4 echte bestellingen weg [3]. Hoe je dubbele of onbekende transacties opspoort, lees je in (not set), spam en dubbele aankopen in GA4 oplossen.
Een terugbetaling geef je door met refund, met hetzelfde transactie-ID en de terugbetaalde artikelen in de items-lijst [1], [5]. Aankoopopbrengst trekt terugbetalingen af, Bruto-aankoopopbrengst niet [6]. Omdat een terugbetaling meestal in de backoffice gebeurt, vraag je je webbouwer uitdrukkelijk hoe het refund-event verstuurd wordt.
Betaalpagina's als ongewenste verwijzing
Betaalt een klant op de pagina van een betaalprovider of zijn bank, dan kan GA4 zijn terugkeer zien als een nieuw bezoek vanuit dat domein. De betaalprovider krijgt dan de verkoop, niet de campagne die de klant bracht; Google noemt dit voorbeeld zelf [7]. Zet die domeinen bij de ongewenste verwijzingen in de taginstellingen van je webstream, tot 50 per stream [7].
Welke domeinen dat zijn, lees je af in je rapport Verkeersacquisitie. Test daarvoor een betaling met elke betaalmethode die je aanbiedt.
Omzet controleren en naar Google Ads sturen
GA4 en je webshop tonen nooit exact hetzelfde. De vraag is of het verschil verklaarbaar en stabiel is.
| Oorzaak | Wat er gebeurt | Wat je doet |
|---|---|---|
| Toestemming | Wie weigert, ontbreekt in GA4 of wordt alleen gemodelleerd | Aanvaarden als blijvend verschil |
| Definitie van value | GA4 zonder btw, je boekhouding met, of omgekeerd | Hetzelfde getal uit je webshop nemen |
| Terugbetalingen | Zonder refund-event blijft de volle omzet staan | Refund instellen, of vergelijken met Bruto-aankoopopbrengst [6] |
| Onbetaalde bestellingen | purchase telt een betaling per overschrijving al voor ze betaald is | Vergelijken met geplaatste bestellingen |
| Tijd | GA4 volgt de tijdzone van je property, en gegevens kunnen tot 24 uur later komen [1], [8] | Property op Brussel zetten, niet op de dag zelf vergelijken |
Een verschil dat maand na maand even groot blijft, is meestal toestemming. Een plotse sprong na een update van je webshop, thema of banner wijst op een fout.
Om campagnes op omzet te sturen, maak je van purchase een conversie in Google Ads; conversies vanuit GA4 staan standaard op secundair [9]. Hoe je die keuze maakt, lees je in GA4 key events en conversies: het verschil uitgelegd. Voor Shopping-campagnes moet die waarde kloppen: zie Google Shopping-campagne opzetten: stappenplan voor webshops.
Twijfel je of je e-commercemeting klopt? De gratis tracking-audit kijkt na welke events vuren, welke parameters ze meegeven en of aankopen één keer tellen.
Veelgestelde vragen
Welke e-commerce-events heb ik nodig in GA4?
Minstens purchase, want dat meet je omzet. Google raadt daarnaast een reeks events aan die de weg van productlijst tot aankoop volgen, zoals view_item, add_to_cart en begin_checkout, plus refund voor terugbetalingen. Met die events zie je waar bezoekers afhaken.
Welke parameters zijn verplicht bij een aankoop?
Google vraagt bij het purchase-event een uniek transaction_id en een items-lijst waarin elk artikel een item_id of item_name heeft. Zonder value en currency krijg je geen bruikbare omzetcijfers, en wie value meegeeft, moet ook currency meegeven. Belasting en verzendkosten geef je apart door met tax en shipping.
Moet de value in GA4 inclusief btw en verzending zijn?
Google raadt aan om value gelijk te stellen aan de som van prijs maal aantal van alle artikelen, zonder verzendkosten en belasting. Die geef je apart mee in shipping en tax. Belangrijker dan de keuze zelf: gebruik dezelfde definitie in GA4, in Google Ads en in je eigen rapportage.
Waarom verschilt de omzet in GA4 van die in mijn webshop?
Omdat GA4 alleen ziet wat de browser doorstuurt. Bezoekers zonder toestemming ontbreken of worden gemodelleerd, en terugbetalingen tellen pas mee met een refund-event. Ook de definitie van value, dubbele aankopen en onbetaalde bestellingen spelen mee. Je webshop blijft de bron van waarheid.
Hoe verwerk ik terugbetalingen in GA4?
Met het refund-event, met hetzelfde transaction_id als de oorspronkelijke aankoop. Google raadt aan om de terugbetaalde artikelen mee te geven in de items-lijst, met item_id en aantal, zowel bij een volledige als bij een gedeeltelijke terugbetaling. De maatstaf Aankoopopbrengst trekt terugbetalingen af, Bruto-aankoopopbrengst niet.
Bronnen
- [GA4] E-commercegebeurtenissen instellen — Analytics Help, geraadpleegd op 27 sep 2026
- Recommended events (referentie voor ontwikkelaars) — Google for Developers, 16 sep 2026, geraadpleegd op 27 sep 2026
- Minimize duplicate key events with transaction IDs — Analytics Help, geraadpleegd op 27 sep 2026
- Fix missing revenue data — Analytics Help, geraadpleegd op 27 sep 2026
- Measure ecommerce — Google for Developers, 19 aug 2026, geraadpleegd op 27 sep 2026
- Analytics dimensions and metrics — Analytics Help, geraadpleegd op 27 sep 2026
- Identify unwanted referrals — Analytics Help, geraadpleegd op 27 sep 2026
- Set up Analytics for a website and/or app — Analytics Help, geraadpleegd op 27 sep 2026
- Create Google Ads conversions based on Google Analytics key events — Analytics Help, geraadpleegd op 27 sep 2026