Ga naar inhoud
InloggenGratis uitproberen

Commerce-tracking

MetriXs volgt commerce voor elke site hetzelfde, of u nu Shopify, een zelfgebouwde storefront of een server-side checkout gebruikt. Er zijn geen commerce-specifieke kolommen: commerce is gewoon een set aangepaste events met een paar afgesproken eigenschapsnamen. Als u commerce op een site inschakelt, toont het dashboard Omzet, gemiddelde orderwaarde (AOV), conversieratio, een checkout-trechter en een top-producten-uitsplitsing, allemaal aangedreven door die events.

  1. Ga naar Instellingen → Sites in het dashboard.
  2. Zoek uw site en schakel Commerce naar Aan.
  3. Kies optioneel een weergavemunteenheid (standaard EUR; zie hieronder).

Shopify-sites hebben commerce standaard aan (de MetriXs-webpixel vuurt de events voor u); de schakelaar en munteenheid zijn er nog steeds als u commerce wilt uitschakelen of de weergavemunteenheid wilt wijzigen. Andere sites schakelen het hier in en vuren de events zelf. Een kopieer-plak event-snippet verschijnt op de Installeren & verifiëren-pagina van de site zodra commerce aan is.

Drie aangepaste events vormen de commerce-trechter. Stuur ze vanuit uw checkout in deze volgorde:

Event-naam Wanneer afvuren Vereiste props
checkout_started Bezoeker betreedt checkout total, currency
payment_submitted Betalingsgegevens ingediend (geen)
order_completed Bestelling is geplaatst (bedankpagina / bevestiging) total, currency

Voor order_completed kunt u ook een items-eigenschap met de per-product uitsplitsing sturen, zodat het Top producten-panel omzet per product kan uitsplitsen.

  • total (number), het order-/winkelwagentotaal.
  • currency (string, ISO 4217, bijv. EUR, USD, GBP), de munteenheid waarin total is. MetriXs converteert het naar EUR (zie hieronder).
  • items (string), een JSON-gecodeerde array van { title, quantity, price } (een object per regelitem).
  • order_id (string, optioneel), uw interne order-ID, ter referentie.

MetriXs slaat alle omzet op in EUR. Als een commerce-event binnenkomt met een niet-EUR currency, converteert de ingestion-pipeline total (en elke item price) naar EUR met dagelijkse ECB-referentiekoersen voor opslag, en registreert de oorspronkelijke munteenheid als currency_original. De opgeslagen total is dus altijd EUR, zodat omzet en AOV consistent zijn, ook voor multi-munteenheid-winkels.

  • Als u currency weglaat, neemt MetriXs aan dat het bedrag al EUR is (geen conversie).
  • Onbekende munteenheden worden als-is gelaten (behandeld als EUR) zodat een typefout nooit stilletjes uw omzet op nul zet.
  • De koersen zijn de dagelijkse ECB-referentiekoersen, automatisch elke dag ververst (een cron haalt de officiële ECB-feed op en cachet de koersen in Redis). Als de fetch faalt of de cache koud is, valt MetriXs terug op een statische referentietabel in het image, zodat EUR-normalisatie nooit breekt bij een upstream-storing. Referentiekoersen zijn geen live handelskoersen.

Terwijl omzet in EUR wordt opgeslagen, kunt u per site een andere weergave-munteenheid kiezen. MetriXs converteert de in-EUR-opgeslagen bedragen naar uw weergavemunteenheid in het dashboard met dezelfde dagelijkse ECB-koersen, zodat Omzet, AOV, het omzetdiagram, de trechter, Top producten en de omzetkolom in de Bronnen-/Locaties-/Apparaten-panels allemaal in uw gekozen munteenheid worden getoond.

  • Standaard: EUR (geen conversie).
  • Stel het per site in onder Instellingen → Sites naast de commerce-schakelaar. De lijst dekt de gangbare munteenheden (USD, GBP, CHF, SEK, NOK, DKK, PLN, CZK, CAD, AUD, JPY, INR, CNY, BRL en meer).
  • Dit is een weergave-instelling; het verandert niet wat wordt opgeslagen of hoe u events stuurt. Stuur altijd currency op het event voor een accurate EUR-conversie.

Events afvuren vanuit een browser-checkout

Section titled “Events afvuren vanuit een browser-checkout”

Nadat het tracker-script is geinstalleerd, is de globale window.metrixs(name, { props })-functie beschikbaar. Vuurt de events af vanuit uw checkout-flow:

// bezoeker betreedt checkout
window.metrixs('checkout_started', { props: { total: 49.99, currency: 'EUR' } })
// betalingsgegevens ingediend
window.metrixs('payment_submitted', { props: {} })
// bestelling geplaatst
window.metrixs('order_completed', {
props: {
total: 49.99,
currency: 'EUR',
items: JSON.stringify([
{ title: 'T-shirt', quantity: 2, price: 24.99 },
]),
},
})

Gebruik keepalive: true (of een navigator.sendBeacon-fallback) op de order_completed-aanroep als uw bedankpagina snel lost.

Events server-side afvuren (na een betalings-webhook)

Section titled “Events server-side afvuren (na een betalings-webhook)”

Op redirect gebaseerde checkouts (Stripe, Mollie, iDEAL, etc.) bereiken vaak nooit betrouwbaar een browser “bedank”-status. In dat geval, stuur order_completed vanuit uw backend nadat de webhook van de betalingsprovider de bestelling bevestigt.

  1. Ga in het dashboard naar Instellingen → Sites, vouw API-sleutels onder de site uit, en maak een site-begrensde sleutel aan. Kopieer deze direct (hij wordt eenmaal getoond).
  2. POST naar /api/event met de sleutel als Bearer-token. De body is JSON. Let op dat items een JSON-gecodeerde string is (een array geserialiseerd naar een string), omdat MetriXs alle event-props als strings opslaat:
{
"n": "order_completed",
"u": "https://yourdomain.com/thanks",
"d": "yourdomain.com",
"p": {
"total": 49.99,
"currency": "EUR",
"items": "[{\"title\":\"T-shirt\",\"quantity\":2,\"price\":24.99}]"
}
}

Equivalente curl:

Terminal window
curl -X POST https://app.metrixs.eu/api/event \
-H "Authorization: Bearer mtx_live_yourapikey" \
-H "Content-Type: text/plain" \
-d '{"n":"order_completed","u":"https://yourdomain.com/thanks","d":"yourdomain.com","p":{"total":49.99,"currency":"EUR","items":"[{\"title\":\"T-shirt\",\"quantity\":2,\"price\":24.99}]"}}'

Vereisten voor het server-side pad:

  • De API-sleutel moet site-begrensd zijn tot de site die het event stuurt (het d-domein). De API weigert het verzoek als de site van de sleutel niet overeenkomt met d.
  • u (pagina-URL) en d (domein) zijn vereist en moeten overeenkomen met een geverifieerde site op uw account.
  • Content-Type is text/plain (vermijdt een CORS-preflight op het browser-pad; de API parst de body als JSON ongeacht).
  • Het browser-botdetectie-token wordt overgeslagen voor API-sleutel-geauthenticeerde verzoeken, omdat een server geen browser-fingerprint kan produceren en de sleutel al bewijst dat de beller de backend van de site-eigenaar is.
  • Dezelfde per-IP snelheidsbeperking als het browser-pad is nog steeds van toepassing.

Zodra commerce aan is en events stromen, toont het dashboard van de site:

  • Omzet, som van total op order_completed-events (getoond in uw weergavemunteenheid; opgeslagen in EUR).
  • AOV, omzet / aantal order_completed-events.
  • Conv. rate, order_completed-aantal / unieke bezoekers × 100.
  • Conversietrechter, bezoekers → checkout_startedpayment_submittedorder_completed.
  • Top producten, omzet en hoeveelheid per producttitel (uit items).
  • Omzet per bron / locatie / apparaat, de Omzet-kolom verschijnt ook in deze panels, zodat u omzet aan een campagne of kanaal kunt toewijzen.

Als u al GA4 e-commerce-events via de dataLayer afvuurt, zijn de eigenschapsvormen vergelijkbaar maar de event-namen verschillen. De minimale mapping:

GA4-event MetriXs-event
begin_checkout checkout_started
add_payment_info payment_submitted
purchase order_completed

De items-array gebruikt { title, quantity, price } in plaats van GA4’s { item_name, quantity, price }, dus hernoem item_name naar title als u uw bestaande dataLayer-push aanpast.