Match-rate = het percentage server-side events dat vendors (Meta, TikTok, LinkedIn) kunnen koppelen aan een echte user in hun eigen database. Lagere match-rate = minder attribution, lagere ROAS, zwakkere audience-builds.
Target per vendor:
- Meta — ≥80% is gezond, <70% = probleem
- TikTok — ≥70% gezond, <60% = probleem
- LinkedIn — ≥60% gezond, <50% = probleem
De 5 match-rate drivers
1. Vendor-specifieke PII hashing
Meta wil emails lowercase + trim, TikTok wil SHA-256 hex, LinkedIn wil base64 SHA-256. Onze sGTM CAPI templates doen dit automatisch via de hashFor{vendor} helpers. Check dat de dataLayer email_plain pusht, niet al pre-hashed (dan hash je dubbel).
2. Event ID dedup (browser + server)
Zelfde event mag zowel via browser pixel ALS via server CAPI komen — zolang beide dezelfde event_id hebben. Vendors dedupen op dat ID. Zonder: dubbele tellingen én kapot delta-reporting.
event-id-template.ts genereert een crypto.randomUUID per dataLayer push, propageert automatisch naar browser pixel + sGTM CAPI. Installed standaard in elke sGTM deploy sinds Spoor A.3. Cookie propagatie (fbp/fbc/gclid/_ga)
Server ziet geen cookies van client behalve als je ze expliciet doorstuurt. Onze sGTM cookie-variables template leest _fbp, _fbc, _gcl_au, _gid uit request headers en voegt ze toe aan user_data.
Check via Events Manager test-events: zie je fbp in de user_data? Zo nee → cookies missen.
4. First-party user_id
Bij consent-granted users: cross-device matching via een stabiele user_id is de grootste booster. Spoor C's first-party UID template zet een _sf_uid cookie bij login/register events en propageert die naar GA4 + alle 6 CAPIs alsexternal_id.
5. Consent quality
Elke consent-denied event stuurt niks naar de vendor. Als je TCF bridge niet correct werkt, wordt alles als denied gezien. Check:
- TCF policy version = 4 (v2.2). Lager = Google negeert je signals. Zie TCF v2.2 migratie.
- Post
/monitoring/tcf-audit/:clientIdmet echte TC string → checkconsentModeSignals. - Op dashboard: verwacht >60% "granted" in de consent-state breakdown.
Troubleshooting-flow per lage match-rate
Meta < 70%
- Open Events Manager → Events tab → test events ontvangen?
- Klik op een Purchase → zie je email + phone + fbp in user_data? Missen ze? → PII hashing/cookie issue.
- Match Quality score per event checken. <6 = actie nodig.
- Event Match Keys overview → zie je
external_id? Zo niet: first-party UID nog niet live.
TikTok < 60%
Vaak: cookie _ttp niet doorgegeven. TikTok Events API heeft naast email/phone een ttp cookie nodig voor device-matching.
LinkedIn < 50%
LinkedIn werkt ook zonder cookies goed als je li_fat_id uit de click-URL plakt. Onze template leest dat automatisch; check dat je Ads destination URL's de li_fat_id param hebben.
Hoe check je actuele match-rate?
Op klant-detail pagina → "Match rates" badge per vendor. Komt uit dagelijkse cron (06:00 UTC) die de vendors' Events Manager APIs poll.
API: GET /ga4/clients/:id/match-rates?refresh=true voor live re-fetch (rate-limited 1/5min).
Target benchmarks (2026)
| Vendor | Gezond | Alert threshold |
|---|---|---|
| Meta | ≥80% | <70% |
| TikTok | ≥70% | <60% |
| ≥60% | <50% | |
| ≥70% | <60% | |
| Snapchat | ≥65% | <55% |
| ≥50% | <40% |