GA4 Measurement ID verbergen via server-side GTM: hoe werkt de stealth-aanpak?
Door je echte GA4 Measurement ID te maskeren via een server-side GTM Client Template voorkom je dat spammers en scrapers jouw property rechtstreeks kunnen targeten. De techniek vervangt een nep-ID in de browser door het echte ID op de server, zodat aanvallers nooit het werkelijke GA4-eindpunt te zien krijgen. Let op: de aanpak is nog niet productie-klaar en er zijn meldingen van mogelijke problemen met de Google Ads-integratie.
Het probleem: GA4 Measurement IDs zijn vindbaar
GA4-properties zijn minder kwetsbaar voor willekeurige spam dan Universal Analytics, waar property-IDs oplopend en dus voorspelbaar waren. Maar dat betekent niet dat je veilig bent. Scrapers crawlen websites en lezen Measurement IDs uit het netwerkverkeer. Wie jouw ID kent, kan rechtstreeks hits sturen naar Google's servers, buiten elke server-side filtering om. GA4 biedt zelf nauwelijks ingebouwde filters om dit te blokkeren.
De aanpak: een nep-ID in de browser, het echte ID op de server
De kern van de oplossing is een Server-Side GTM Client Template die werkt als tussenschakel. In de browser-container en het GTM-laadsnippet gebruik je een fictief GTM-ID en een fictief Measurement ID — zichtbaar voor iedereen die het netwerkverkeer inspecteert. De server-side container ontvangt de hits, herkent het nep-ID via de Client Template, vervangt de &tid-parameter door het echte Measurement ID en stuurt het verzoek door naar Google. Aanvallers zien nooit het werkelijke ID en kunnen daarmee ook niet rechtstreeks GA4-servers targeten om jouw filters te omzeilen.
Wat je hiervoor nodig hebt
De benodigde Client Template is beschikbaar als open-source project (GTM/GA4 Stealth Mode Client Template op GitHub, van Analytics Debugger). Na installatie in de server-container configureer je de koppeling tussen het nep-ID en het echte ID. Het GTM-laadsnippet op de website wijs je aan op je eigen server-side eindpunt, met een aangepast pad (/s/gtm.js) omdat sGTM standaard geen claims ondersteunt op de bekende GTM/GA-eindpunten. De auteur gebruikt de template op zijn eigen blog, maar beschouwt deze nog niet als productie-klaar.
Aanvullende spam-filtering op de server
Het verbergen van het Measurement ID is één laag. Omdat je toch al via sGTM werkt, kun je op de server aanvullende filters inbouwen: controle op User Agent, toetsing van het IP-adres aan ASN-databases om datacenter- en VPN-verkeer te herkennen, gebruik van publieke IP-lijsten van cloudproviders, geo-filtering en throttling op basis van een zelfgebouwd IP-score-systeem. Hits met een verdachte score kunnen worden getagd — bijvoorbeeld via de &tt=-parameter — in plaats van direct verwijderd, zodat je het patroon nog kunt analyseren.
Wat GA4- en sGTM-beheerders nu moeten weten
Controleer eerst of jouw GA4 Measurement ID zichtbaar is in het client-side netwerkverkeer — dat is bij de meeste standaard GTM-implementaties het geval. Overweeg je dit op te lossen via de stealth-aanpak, dan heb je een werkende sGTM-setup nodig als fundament. De template is nog in ontwikkeling; de auteur meldt een openstaand rapport over mogelijke verstoring van de Google Ads-integratie, zonder dat daar al een oplossing voor is. Implementeer dit dus niet kritiekloos in een productie-omgeving zonder die afhankelijkheid eerst te testen. Voor wie sGTM al draait en spam een aantoonbaar probleem is, biedt de aanpak een zinvolle extra verdedigingslaag naast bestaande filters.