Google Tag Manager, Google Analytics en overige scripts instellen
Under construction!
Gebruikt jouw stichting Google Tag Manager, Google Analytics of andere externe scripts? Dan stel je die zo in dat ze pas actief worden nadat een bezoeker daar toestemming voor heeft gegeven. Dit artikel beschrijft de technische instellingen hiervoor.
⚠️ Let op
Deze instellingen zijn alleen nodig als jouw website Google Tag Manager, Google Analytics of losse externe scripts gebruikt. Werkt jouw stichting hier niet mee, dan hoef je hier niets voor in te stellen.
Welk onderdeel is op jou van toepassing?
- Gebruik je Google Tag Manager? Stel de container-ID in (zie hieronder).
- Gebruik je Google Analytics zonder Tag Manager, via een directe gtag-koppeling? Stel dan de gtag-instellingen in.
- Gebruik je andere externe scripts, zoals Google Translate of een chatwidget? Voeg die toe via de scriptenlijst.
Je kunt meerdere van deze onderdelen tegelijk instellen als dat op jouw site van toepassing is.
Google Tag Manager (GTM)
Gebruik GTM als je tags (Analytics, Ads, pixels, enz.) centraal in Tag Manager beheert.
Stap 1 — Container-ID in Plate zetten
Voeg onder runtime toe (of pas aan):
"gtm": {
"id": "GTM-XXXXXXX"
}
Vervang GTM-XXXXXXX door jullie echte container-ID.
Optioneel: als jullie in GTM een ander event gebruiken dan consent-update, kun je dat zo instellen:
"gtm": {
"id": "GTM-XXXXXXX",
"updateEventName": "jullie-event-naam"
}
Standaard is dat event consent-update.
Stap 2 — Consent Mode v2 inschakelen in GTM (verplicht)
Zonder deze stappen in Tag Manager werkt het cookiebeheer niet correct: tags kunnen te vroeg laden of cookies plaatsen vóór toestemming.
- Open Google Tag Manager.
- Kies de juiste container.
- Ga naar Beheerder → Containerinstellingen.
- Schakel Toestemmingsoverzicht (Consent overview) in.
- Controleer dat jullie tags Consent Mode v2 gebruiken:
- Bij nieuwe Google-tags (GA4, Google Ads): kies de ingebouwde tagtypes van Google; die ondersteunen toestemming.
- Bij oudere Custom HTML-tags: pas deze aan of vervang ze — die respecteren toestemming vaak niet vanzelf.
- Stel per tag in welke toestemming nodig is, bijvoorbeeld:
- Analytics →
analytics_storage - Advertenties →
ad_storage,ad_user_data,ad_personalization
- Analytics →
- Maak een trigger aan:
- Type: Aangepaste gebeurtenis (Custom Event)
- Eventnaam:
consent-update
- Koppel die trigger aan tags die opnieuw moeten laden nadat een bezoeker zijn voorkeuren wijzigt.
De website zet bij het laden standaard alle Google-toestemmingen op geweigerd. Pas na akkoord van de bezoeker worden de juiste waarden doorgegeven aan GTM.
Stap 3 — Controleren
- Open GTM Voorbeeld (Preview).
- Bezoek de website in een privévenster.
- Weiger eerst alle niet-noodzakelijke cookies → meet-tags mogen niet vuren.
- Accepteer statistieken/marketing → de bijbehorende tags mogen vuren.
- Open opnieuw cookievoorkeuren en wijzig een keuze → het event
consent-updatemoet opnieuw tags kunnen activeren.
Google Tag / gtag (direct, zonder GTM)
Gebruik dit als je geen Tag Manager wilt, maar direct Google Analytics of Google Ads via gtag.js.
"gtag": {
"id": "G-XXXXXXXXXX",
"category": "measurement"
}
| ID begint met | Meestal categorie | Product |
|---|---|---|
| G- | measurement | Google Analytics 4 |
| AW- / conversie-ID's | marketing | Google Ads, Floodlight |
Voorbeeld voor Analytics:
"gtag": {
"id": "G-XXXXXXXXXX",
"category": "measurement"
}
Ook hier regelt het systeem automatisch Consent Mode v2: standaard geweigerd, pas actief na toestemming in de juiste categorie.
GTM én gtag tegelijk?
Meestal kies je één van beide:
- Alleen GTM — Analytics staat als tag in de GTM-container.
- Alleen gtag — geen GTM-container op de site.
Gebruik je beide met dezelfde Analytics-property (G-…), dan meet je bezoekers mogelijk dubbel. Overleg met je developer of analist welke route jullie standaard zijn.
Overige scripts (runtime.scripts)
Voor tools die geen GTM of gtag zijn — bijvoorbeeld Google Translate of een chatwidget — gebruik je een lijst scripts.
Voorbeeld (Google Translate onder functioneel):
"scripts": [
{
"id": "google-translate-init",
"category": "functionality",
"target": "body",
"textContent": "function googleTranslateElementInit(){new google.translate.TranslateElement({pageLanguage:'nl',autoDisplay:false},'google_translate_element');}"
},
{
"id": "google-translate-element",
"category": "functionality",
"target": "body",
"src": "https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"
}
]
Velden per script
| Veld | Verplicht | Uitleg |
|---|---|---|
id | Ja | Unieke naam (alleen letters, cijfers, streepjes). Bijv. site-chat-widget |
category | Ja | Zie tabel cookiecategorieën hierboven |
src | Eén van twee | URL van het externe script |
textContent | Eén van twee | Kleine stukjes inline JavaScript (alleen als de leverancier dat zo voorschrijft) |
target | Nee | head (standaard) of body |
async | Nee | true als het script asynchroon mag laden |
defer | Nee | true om laden uit te stellen |
Regels:
- Elk script heeft een eigen
id. - Kies de categorie die past bij wat het script doet (niet alles onder marketing zetten "om het makkelijk te maken").
- Voeg geen testscripts toe op de live site.
- Voor ingewikkelde koppelingen: vraag een developer om hulp.
Wat hoort niet in runtime.scripts?
| Soort | Waar het wél geregeld wordt |
|---|---|
| YouTube- / Vimeo-video's op pagina's | Automatisch via de video-module + marketing-toestemming |
| GTM / Analytics | runtime.gtm of runtime.gtag |
Losse <script>-tags in Head injection | Verwijderen; via deze config laten lopen |
💡 Tip
Twijfel je of iets via GTM, gtag of de scriptenlijst moet? Kijk eerst of het script als tag in een bestaande Tag Manager-container staat. Zo ja, dan hoort het bijruntime.gtmen hoef je het niet apart toe te voegen bijruntime.scripts.