Google Tag Manager, Google Analytics en overige scripts instellen

Inhoudsopgave

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.

  1. Open Google Tag Manager.
  2. Kies de juiste container.
  3. Ga naar Beheerder → Containerinstellingen.
  4. Schakel Toestemmingsoverzicht (Consent overview) in.
  5. 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.
  6. Stel per tag in welke toestemming nodig is, bijvoorbeeld:
    • Analytics → analytics_storage
    • Advertenties → ad_storage, ad_user_data, ad_personalization
  7. Maak een trigger aan:
    • Type: Aangepaste gebeurtenis (Custom Event)
    • Eventnaam: consent-update
  8. 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

  1. Open GTM Voorbeeld (Preview).
  2. Bezoek de website in een privévenster.
  3. Weiger eerst alle niet-noodzakelijke cookies → meet-tags mogen niet vuren.
  4. Accepteer statistieken/marketing → de bijbehorende tags mogen vuren.
  5. Open opnieuw cookievoorkeuren en wijzig een keuze → het event consent-update moet 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 metMeestal categorieProduct
G-measurementGoogle Analytics 4
AW- / conversie-ID'smarketingGoogle 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

VeldVerplichtUitleg
idJaUnieke naam (alleen letters, cijfers, streepjes). Bijv. site-chat-widget
categoryJaZie tabel cookiecategorieën hierboven
srcEén van tweeURL van het externe script
textContentEén van tweeKleine stukjes inline JavaScript (alleen als de leverancier dat zo voorschrijft)
targetNeehead (standaard) of body
asyncNeetrue als het script asynchroon mag laden
deferNeetrue 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?

SoortWaar het wél geregeld wordt
YouTube- / Vimeo-video's op pagina'sAutomatisch via de video-module + marketing-toestemming
GTM / Analyticsruntime.gtm of runtime.gtag
Losse <script>-tags in Head injectionVerwijderen; 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 bij runtime.gtm en hoef je het niet apart toe te voegen bij runtime.scripts.

Heb je extra hulp nodig?

Heb je extra ondersteuning nodig bij het inrichten van je website of een technisch probleem? Stuur een bericht in via onze servicedesk.