Cookiebanner, consent & adblockers
Meten wat je pixel niet meer ziet
Toestemming, adblockers en browserbeperkingen halen bij veel sites tientallen procenten uit je meting. Roots leest je bestaande cookiebanner uit, meet cookieloos wanneer dat moet, draait first-party op je eigen domein en herstelt de rest server-side - ontdubbeld.
Waar je meting vandaag lekt
20-40%
Adblockers
Op B2B- en tech-doelgroepen blokkeert een fors deel van je bezoek gtag.js en fbevents.js. Die sessies bestaan simpelweg niet in je platformrapportage.
Safari + Firefox
ITP en ETP
Safari kapt client-side gezette first-party cookies af op 7 dagen (of 24 uur bij een link met click-ID). Je view-through en je langere funnel verdampen.
30-60%
Geweigerde consent
Sinds CMP's verplicht een weigerknop tonen, kiest een groot deel 'alleen noodzakelijk'. Consent Mode v2 modelleert dat gat, maar modelleren is geen meten.
0 klikken
Offline conversies
Telefoontjes, showroombezoek en deals die weken later in het CRM landen, komen zonder terugkoppeling nooit in de biedalgoritmes terecht.
Percentages verschillen sterk per branche en doelgroep. Daarom rapporteert Roots het verlies gemeten op jouw eigen verkeer, in plaats van een branchegemiddelde.
Consent
Wat we per toestemmingsstatus wel en niet doen
| Status | Meting in Roots | Doorgifte naar platforms |
|---|---|---|
Toestemming gegevengranted | Volledige meting: visitor-ID in first-party localStorage, click-ID's, touchpoint-historie. | Server-side CAPI inclusief gehashte e-mail/telefoon (SHA-256) voor betere match rates. |
Marketing geweigerddenied | Cookieloze meting: geen persistente identifier, sessie in geheugen, geaggregeerde bronrapportage. | Geen doorgifte van identifiers naar advertentieplatforms. Alleen jouw eigen dashboard. |
Geen CMP gedetecteerdunknown | Behandeld als 'nog niet gegeven': cookieloos tot de banner een keuze doorgeeft. | Doorgifte staat uit tot de status granted wordt. |
Banners die we automatisch herkennen
- · Google Consent Mode v2 (dataLayer, ad_storage / ad_user_data)
- · Cookiebot (Cookiebot.consent.marketing)
- · CookieYes (getCkyConsent categories.advertisement)
- · IAB TCF v2 (__tcfapi, purpose 7 - meten van advertentieprestaties)
- · Eigen banner via window.SR_CONSENT = 'granted' | 'denied'
Gebruik je iets anders? Eén regel volstaat om de status door te geven aan de pixel.
<!-- eigen banner koppelen -->
<script>
// bij accepteren van marketing
window.srAttribution.consent('granted');
// bij weigeren
window.srAttribution.consent('denied');
</script>Techniek
Waarom onze meting overeind blijft waar platformpixels sneuvelen
First-party script en endpoint
Je zet een CNAME (bijv. metrics.jouwdomein.nl) naar Roots. Script én collect-endpoint draaien dan op je eigen origin. Filterlijsten richten zich op bekende third-party hosts; die matchen hier niet.
Neutrale naamgeving
Geen /collect?pixel=fb of /gtag/js in het pad. Geen bekende tracker-URL's, geen herkenbare querystrings die EasyPrivacy afvangt.
Geen third-party cookies
De visitor-ID staat in first-party localStorage. Wordt storage geblokkeerd, dan valt de pixel terug op een sessie-ID in geheugen - dan verlies je herhaalbezoek, niet de conversie zelf.
sendBeacon met fetch-fallback
Events vertrekken via navigator.sendBeacon, met keepalive fetch als terugval. Ook bij een snelle exit of een redirect naar de bedankpagina komt het event binnen.
Meting van het verlies zelf
Een bait-element plus een netwerkprobe detecteren adblockers; UA- en API-signalen detecteren ITP, ETP, Edge-preventie en de Chrome Privacy Sandbox. Je ziet dus per browser hoeveel je mist.
Server-side herstel met ontdubbeling
Elke conversie krijgt een dedup-ID. Dat ID gaat mee naar Meta CAPI, Google Enhanced Conversions, LinkedIn CAPI en TikTok Events API, zodat browser- en serverevent als één conversie tellen.
De hele installatie, in twee stappen
- 1. Zet een CNAME van metrics.jouwdomein.nl naar Roots. Wij regelen het certificaat en verifiëren automatisch.
- 2. Plak het script in je head. Formulieren, tel:- en mailto:-kliks worden meteen als conversie herkend; eigen events voeg je toe met één data-attribuut.
Minder dan 6 kB, asynchroon, geen invloed op je Core Web Vitals - en geen server-container die je zelf moet beheren.
<script async
src="https://metrics.jouwdomein.nl/sr.js"
data-key="sr_live_xxx"></script>
<!-- eigen conversie -->
<button data-sr-event="offerte_aanvraag"
data-sr-value="450"
data-sr-currency="EUR">
Offerte aanvragen
</button>Wat het je oplevert
Van 'ons rapport klopt niet' naar 'wij sturen op bewijs'
Je biedalgoritmes worden weer gevoed
Smart Bidding en Advantage+ optimaliseren op wat ze binnenkrijgen. Herstel je 25% van de ontbrekende conversiesignalen, dan verandert niet alleen je rapport - je CPA verandert mee, omdat het algoritme op een completer signaal traint.
Je stopt met discussies over 'welk cijfer klopt'
Eén onafhankelijke bron van waarheid naast GA4, Ads en Meta. Je ziet direct welk platform zichzelf rijk rekent en hoeveel overlap er zit tussen de claims.
Compliance is een verkoopargument, geen rem
Verwerkersovereenkomst, EU-hosting, instelbare bewaartermijn, verwijderverzoeken en een auditlog. Je legal- of privacy officer krijgt antwoord in plaats van een discussie.
Implementatie in een middag, niet in een kwartaal
Eén scriptregel, één CNAME. Geen GTM server-container die je zelf moet hosten en onderhouden, geen Cloud Run-rekening die met je verkeer meegroeit.
Häufig gestellte Fragen
- Moeten we onze cookiebanner aanpassen?
- Nee. Roots leest de bestaande banner uit. Wil je expliciet zijn richting bezoekers, dan noem je Roots in je cookieverklaring onder statistieken/marketing - dat is netjes en meestal voldoende.
- Is meten zonder toestemming toegestaan?
- Wij meten zonder toestemming cookieloos en geaggregeerd, zonder persistente identifier en zonder doorgifte naar advertentieplatforms. Dat is de modus die past bij 'alleen noodzakelijk'. De juridische eindafweging blijft bij jou als verwerkingsverantwoordelijke; wij zijn verwerker en leveren de DPA.
- Omzeilen jullie adblockers?
- We verstoppen niets voor de gebruiker: we respecteren consent en we sturen zonder toestemming niets naar advertentieplatforms. Wat we wél doen is je eigen meting op je eigen domein zetten, zodat een generieke filterlijst niet bepaalt of jij je eigen websitestatistieken hebt.
- Hoe voorkomen jullie dubbeltellingen bij server-side events?
- Elk event draagt een dedup-ID dat zowel de browser als de server meestuurt. Meta, TikTok en LinkedIn ontdubbelen daarop; bij Google gebruiken we conversie-ID's met dezelfde logica.
- Wat als iemand JavaScript volledig uitzet?
- Dan meet niemand iets, ook wij niet. Daarom bieden we daarnaast een server-side API en CRM-webhook, zodat conversies die in je backend ontstaan alsnog met de juiste bron binnenkomen.
Weet binnen een week hoeveel je mist
Zet de pixel op één site en bekijk na een paar dagen je eigen signaalverlies per browser, per consentstatus en per kanaal. Daarna zet je het server-side herstel aan.