CookieGuard
← All articles
·8 min read·GTM · Wdrożenie

Jak wdrożyć CMP przez Google Tag Manager (poprawnie)

Krok po kroku: szablon Consent Mode v2 w GTM, default deny, listener tag, gating per-tag i trzy pułapki, które wyciszają połowę Twoich tagów na wieki.

Większość developerów wkleja tag <script> CMP bezpośrednio w head strony i kończy temat. Działa — ale jeśli i tak już używasz Google Tag Managera, wpięcie przez GTM jest znacznie czystsze: dostajesz gating per-tag, łatwy debug i jeden source of truth dla całego stacku trackingu. Tu jest plan, jak to zrobić poprawnie.

Krok 1 — Powiedz GTM o Consent Mode

W GTM → Container Settings → włącz Consent Overview. To odblokowuje sekcję „Consent settings” per-tag, której będziemy potrzebować w kroku 4.

Krok 2 — Zainstaluj szablon GTM od CMP

Większość CMP-ów (CookieGuard, Cookiebot, Iubenda) publikuje darmowy szablon GTM w Community Templates. Dodaj go z Tag → New → Template Gallery. Szablon:

  • Wykona gtag('consent', 'default', …) ze wszystkim ustawionym na denied.
  • Zaciągnie loader skryptu CMP.
  • Nasłuchuje na update event z CMP i wykonuje gtag('consent', 'update', …).

Ustaw trigger na Consent Initialization — All Pages(nie zwykły page-view trigger). Consent Initialization odpala się przed wszystkim innym, co jest krytyczne.

Krok 3 — Skonfiguruj zmienne specyficzne dla CMP

Zwykle wypełniasz trzy pola szablonu:

  1. Domain ID — identyfikator, który dał Ci CMP.
  2. Consent version — zwiększ przy każdej zmianie bannera lub listy vendorów.
  3. Region behavior — strict EOG, opt-out California, soft elsewhere.

Krok 4 — Bramka per tag

Otwórz każdy istniejący tag (GA4, Floodlight, Meta Pixel itd.) i ustaw consent settings:

TagWymagana zgoda
GA4 Configurationanalytics_storage
GA4 Eventanalytics_storage
Google Ads Conversionad_storage, ad_user_data
Google Ads Remarketingad_storage, ad_personalization
Meta Pixelad_storage, ad_user_data, ad_personalization
LinkedIn Insightad_storage, ad_user_data
Hotjar / FullStoryanalytics_storage

Z bramkami GTM kolejkuje te tagi do momentu zgody, a potem je wykona — automatycznie, bez pisania custom triggerów.

Krok 5 — Zweryfikuj w Tag Assistant

Otwórz tagassistant.google.com, połącz się ze swoim dev URL i obserwuj:

  • Panel Consent powinien pokazać defaulty załadowane PRZED pierwszym hitem GA4.
  • GA4 hity przed zgodą powinny być cookieless — bez _ga w żądaniu.
  • Po kliknięciu „Akceptuję” powinieneś zobaczyć Consent update event oraz kolejne GA4 hity z pełnym payload.

Trzy pułapki

Pułapka 1: GTM ładowane przed Consent Initialization

Jeśli Twój CMS wstawia gtm.js w <head>, ale loader CMP zaczyna się gdzieś niżej — masz race condition. Naprawa: blok default-consent CMP musi być przed snippetem GTM, nawet jeśli reszta CMP ładuje się później. CookieGuard rozwiązuje to przez tiny loader stub, który rekomendujemy wkleić zaraz nad snippetem GTM.

Pułapka 2: Brak wait_for_update

Bez wait_for_update: 500 w Twoim default consent, Google zakłada, że użytkownik już miał czas na decyzję i denied jest finalny. To psuje consent modeling. Zawsze wpisuj.

Pułapka 3: Traktowanie Consent Mode jako zamiennika gating-u tagów

Consent Mode mówi Google, jaką masz zgodę. Nie zatrzymuje Twoich innych tagów (Meta, LinkedIn, TikTok) przed odpaleniem. Wciąż musisz bramować te tagi przez GTM-owe consent settings per tag albo przez warunki triggera. Zapomnienie tego było przyczyną wpadki niemieckiego Federalnego Sądu na początku 2024 r.

Skrót

Szablon GTM CookieGuard ma wszystkie powyższe presety gatingu. Zainstaluj, wpisz Domain ID, gotowe.