Kamran Arshad
Praktijknotities  /  Server-side

U installeerde CAPI en uw omzet verdubbelde. Niet echt.

Dubbele aankopen na het installeren van de Conversions API betekenen bijna altijd één ding: de browser en de server sturen verschillende event_id-waarden voor dezelfde aankoop. Meta dedupliceert op een overeenkomende event_name plus event_id. Verschillen de ID's, dan kan Meta niet weten dat de twee events dezelfde bestelling zijn, dus telt het ze allebei.

De gevaarlijke variant is de omgekeerde fout, waarbij ID's botsen en u ongemerkt echte verkopen verliest.

De Conversions API installeren is de juiste beslissing. Browsertracking verliest events door adblockers, trackingbescherming, verbroken sessies en afgebroken paginaladingen, en een server-side feed haalt een flink deel daarvan terug. Bijna iedereen zou beide moeten gebruiken.

Maar “beide gebruiken” betekent dat Meta nu twee meldingen van elke aankoop ontvangt, en het enige wat voorkomt dat elke aankoop dubbel wordt geteld, is een gedeelde identificator. Zit die identificator de ene kant op fout, dan verdubbelt uw omzet op papier. Zit hij de andere kant op fout, dan halveert uw omzet ongemerkt.

Hoe deduplicatie echt werkt

Meta koppelt op twee velden samen: event_name en event_id. Beide moeten overeenkomen.

✗ Dubbel geteld
Browser:
  event_name: "Purchase"
  event_id:   "a91f-2026-08-12"

Server:
  event_name: "Purchase"
  event_id:   "1047"
✓ Gededupliceerd tot één
Browser:
  event_name: "Purchase"
  event_id:   "order_1047"

Server:
  event_name: "Purchase"
  event_id:   "order_1047"

De regel is eenvoudig uit te leggen en in de praktijk makkelijk te breken, omdat de twee kanten meestal door verschillende systemen op verschillende momenten zijn gebouwd. Het browserevent wordt gemaakt door een thema of een tagmanager; het serverevent door een app, een middlewaredienst of uw eigen code. Niets dwingt ze om overeen te komen, en niets waarschuwt u als ze dat niet doen.

Een identificator kiezen die niet kan afwijken

De identificator moet uniek per bestelling zijn en identiek op beide paden. Die twee eisen sluiten het meeste uit waar mensen als eerste naar grijpen.

KandidaatUniek per bestelling?Gelijk aan beide kanten?Oordeel
Bestel-ID / bestelnummerJaJa, als beide de bestelling uitlezenGebruik deze
Willekeurig gegenereerde UUIDJaAlleen als hij één keer wordt gegenereerd en doorgegevenRiskant
Checkout-IDNiet altijdWijkt vaak af van de bestel-IDVermijden
Sessie-IDNeeNeeNooit
TijdstempelNeeBijna nooitNooit

Tijdstempels zijn de grootste boosdoener en het verleidelijkst, omdat ze uniek lijken. Dat zijn ze niet: twee bestellingen in dezelfde seconde botsen, en de klok van de browser is niet de klok van uw server. Een UUID is alleen prima als hij één keer wordt gegenereerd en dan aan de andere kant wordt doorgegeven; genereert elke kant zijn eigen, dan heeft u een dubbeltelmachine gebouwd.

De subtielere fout: ongemerkt verlies

Iedereen maakt zich zorgen over dubbeltellingen omdat die zichtbaar zijn. De ergere bug is een identificator die niet uniek is: een checkout-ID die bij meerdere bestellingen terugkomt, of een waarde die zich herhaalt. Dan dedupliceert Meta terecht twee echt verschillende aankopen tot één, en verdwijnt er echte omzet uit uw rapportage zonder dat er ergens een foutmelding is.

Dubbeltellingen lijken goed nieuws en worden onderzocht. Ongemerkt verlies lijkt een langzame daling en krijgt de advertenties de schuld.

Bewijzen dat het werkt: niet aannemen dat het werkt

Ingesteld is niet hetzelfde als werkend. Dit is de test die het beslist, en hij kost ongeveer een kwartier.

  1. Plaats één echte bestellingEen echte aankoop via de echte checkout, geen testlink. Noteer het bestelnummer.
  2. Leg de event-ID van de browser vastOpen DevTools vóór het afrekenen, filter de Network-tab op facebook, rond de bestelling af en lees de eventID in het Purchase-verzoek.
  3. Leg de event-ID van de server vastZoek in de logs van uw CAPI-integratie, of in Events Manager, het server-side event voor diezelfde bestelling en lees de event_id.
  4. Vergelijk ze teken voor tekenNiet vergelijkbaar. Identiek. Een voorvoegsel aan één kant (order_1047 tegenover 1047) is een fout, geen detail.
  5. Controleer de deduplicatierapportageOpen in Events Manager het Purchase-event en kijk hoe het binnenkomt. Een correct gededupliceerde opzet toont browser en server als bronnen voor hetzelfde event, niet twee aparte eventtotalen.
  6. Stem een volledige week afVergelijk het aantal bestellingen in uw webshop met de aankopen in Events Manager voor een afgesloten week. Duidelijk boven uw aantal bestellingen betekent dubbeltelling. Duidelijk eronder betekent verlies.

Het cijfer dat u vertelt dat het werkt

Zodra de deduplicatie klopt, is de metric die u in de gaten wilt houden de Event Match Quality. Die geeft weer hoeveel identificerende informatie u met elk event meestuurt (gehasht e-mailadres, telefoon, naam, locatie, klik-ID's) en bepaalt hoe goed Meta een conversie kan toeschrijven aan de persoon die de advertentie zag.

Hier bewijst de Conversions API haar waarde. Uw server kent het e-mailadres en telefoonnummer van de klant, omdat die net iets heeft gekocht. De browser vaak niet. Die gegevens server-side versturen, correct gehasht, levert meestal meer op dan het terughalen van de geblokkeerde events zelf.

Hash het, en controleer dat u dat deed

Klantidentificatoren moeten met SHA-256 worden gehasht voordat ze worden verstuurd. Dat is geen prestatiedetail: het is het verschil tussen Meta een hash sturen en Meta de ruwe persoonsgegevens van uw klanten sturen. Bouwt u de integratie zelf, controleer de hashing dan op een echte payload voordat u live gaat, want een fout hier is een datalek en geen trackingbug.

Wat ik niet beweer

Ik heb u geen doelscore voor Event Match Quality gegeven en geen verwachte verbetering door CAPI. Beide hangen volledig af van welke klantgegevens u rechtmatig kunt verzamelen, uw checkout en uw verkeer, en elke gepubliceerde benchmark die ik heb gezien komt van een leverancier wiens product precies het gemeten cijfer verbetert.

Meet vóór de wijziging uw eigen uitgangssituatie, meet opnieuw nadat het een volledig attributievenster heeft gedraaid, en vergelijk met uzelf. Die vergelijking is meer waard dan welk gepubliceerd gemiddelde ook.

Weet u niet zeker of uw deduplicatie werkt?

Het is een controle van een kwartier en de meeste opzetten falen erop. Stuur me de URL van uw webshop en ik vertel u wat ik vind.

Vraag een gratis trackingaudit aan →