Skip to content

GTM opsætning

Indsæt dette som det allerførste i <head>:

<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
functionality_storage: 'denied',
personalization_storage: 'denied',
security_storage: 'granted',
wait_for_update: 500
});
</script>
<!-- Google Tag Manager -->
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');
</script>
<!-- End Google Tag Manager -->
<script src="https://consent.cookiepopup.net/cookiepopup.js" data-language="xx" async></script>

Udskift disse værdier før brug:

  • GTM-XXXXXXX med jeres eget GTM-container-id
  • data-language="xx" med det sprog, banneret skal starte på, for eksempel da eller en

Det vigtige er både placering og rækkefølge:

  1. Hele blokken skal ligge som det første i <head>.
  2. Sæt default consent først.
  3. Load derefter GTM.
  4. Load til sidst CookiePopup.net scriptet.

Så starter Google i en sikker standardtilstand, indtil CookiePopup.net har læst eller indsamlet brugerens samtykke.

Den første blok sætter Google Consent Mode til denied som default for alt, der ikke er strengt nødvendigt. security_storage sættes til granted, og wait_for_update: 500 giver lidt tid til, at consent kan blive opdateret, før tags når at affyre.

Den næste blok loader Google Tag Manager på normal vis og bruger dataLayer, som også er det lag CookiePopup.net senere sender consent-data til.

Den sidste blok loader CookiePopup.net banneret. Når banneret har anvendt consent, pushes et fælles event til dataLayer:

cookiepopup_consent_ready

Det er det event, jeres GTM-tags bør reagere på.

Hvis I vil holde integrationen enkel, så brug denne model:

  • CookiePopup.net styrer brugerens samtykke
  • GTM lytter kun på cookiepopup_consent_ready
  • jeres statistik- og marketingtags affyres kun, når den relevante kategori er true

Det betyder, at I ikke skal håndtere forskellige custom events for førstegangsaccept og senere sidevisninger. I får ét ensartet flow hver gang consent er klar.

Når consent er klar og anvendt, pushes dette event til dataLayer:

{
event: "cookiepopup_consent_ready",
cookiepopupConsent: {
consentId: "...",
categories: {
necessary: true,
statistics: true,
marketing: false
}
}
}

Det betyder, at GTM kan læse de aktuelle consent-værdier direkte fra cookiepopupConsent.categories.

Hvis I sætter det hele op manuelt, er dette nok til at komme videre:

  1. Opret en Custom Event trigger med navnet cookiepopup_consent_ready.
  2. Opret Data Layer Variables for de kategorier, I vil bruge.
  3. Kobl jeres tags på triggeren.
  4. Begræns hvert tag med den relevante consent-kategori.

Typiske variabler er:

  • cookiepopupConsent.categories.necessary
  • cookiepopupConsent.categories.statistics
  • cookiepopupConsent.categories.marketing

Et statistik-tag skal for eksempel kun køre, når cookiepopupConsent.categories.statistics er true.

Hvis I vil slippe for det manuelle grundarbejde, kan I hente et færdigt starter kit her:

Starter kittet er en GTM container-export med:

  • en mappe til CookiePopup.net-elementer
  • Data Layer Variables til necessary, statistics og marketing
  • færdige triggers, der lytter på cookiepopup_consent_ready

Det er tænkt som et hurtigt udgangspunkt. Importér det i GTM, og kobl derefter jeres egne tags på de relevante triggers.

Hvis I bruger Google Consent Mode, er anbefalingen stadig den samme:

  • indsæt scriptblokken som det første i <head>
  • sæt default consent før GTM loader
  • lad CookiePopup.net opdatere consent bagefter
  • brug cookiepopup_consent_ready til jeres GTM-triggerlogik

Det holder jeres opsætning enkel og gør den lettere at fejlfinde.

Hvis noget ikke virker, så kontroller disse punkter først:

  1. at hele scriptblokken ligger som det første i <head>
  2. at default consent-scriptet ligger før GTM-scriptet
  3. at cookiepopup_consent_ready faktisk vises i GTM Preview
  4. at den relevante Data Layer Variable læser den forventede værdi
  5. at tagget kun kører, når kategorien matcher true

I browserens konsol kan I også kontrollere den seneste consent-data:

window.dataLayer

og finde eventet:

window.dataLayer.filter((entry) => entry && entry.event === "cookiepopup_consent_ready")

Når opsætningen er på plads, får I et hurtigt og forudsigeligt setup:

  • Google starter med sikre standardværdier
  • CookiePopup.net opdaterer consent, når brugeren har taget stilling
  • GTM får cookiepopup_consent_ready, når consent er klar
  • jeres tags kan reagere direkte på de relevante kategorier

Det er den hurtigste vej til en udviklervenlig integration mellem CookiePopup.net og Google Tag Manager.