Instrukcja wdrożenia Cookiebot na stronie www

Instrukcja wdrożenia Cookiebot przez Google Tag Manager (GTM) dla Twojej strony + jak ustawić wyzwalacze i zgody tak, żeby tagi odpalały się poprawnie po wyborze użytkownika.

Link do dokumentacji: https://support.cookiebot.com/hc/en-us/articles/360003793854-Google-Tag-Manager-deployment

Zakładam że posiadasz:

  • Konto Cookiebot z Domain Group ID: XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX
  • Google Tag Manager jest na stronie (kontener działa)

Wybierz jedną metodę ładowania Cookiebota:

  • GTM (ta instrukcja) → Cookiebot ładuje się z GTM
  • ❌ Nie dokładaj równolegle skryptu Cookiebot bezpośrednio w HTML (nawet odkomentowanego), bo grozi to podwójnym uruchomieniem i dziwnymi efektami.

1) Włącz “Consent Overview” w GTM (opcjonalne, ale polecam)

  1. GTM → Admin
  2. Container Settings
  3. Zaznacz Enable consent overview (jeśli dostępne)
  4. Save

Dzięki temu łatwo sprawdzisz, które tagi mają jakie wymagania zgód.

2) Dodaj szablon Cookiebot CMP do GTM

  1. GTM → Templates (po lewej)
  2. W sekcji Tag Templates kliknij Search Gallery
  3. Wyszukaj: Cookiebot
  4. Wybierz Cookiebot CMP
  5. Kliknij Add to workspace → potwierdź Add

Zaakceptuj komunikat:

Cookiebot CMP powinien pojawić się w Tag Templates:

3) Utwórz tag Cookiebot CMP i ustaw go jako “Consent Initialization”

  1. GTM → TagsNew
  2. Tag Configuration → wybierz Cookiebot CMP
  3. W polu Cookiebot ID wklej:
    4be000f9-e64f-4c2b-ae7c-ae8ea669aa7a
  4. Trigger: wybierz Consent Initialization – All Pages
    (u Ciebie już widać trigger “Initialization – All Pages”, ale tutaj wybierasz dokładnie Consent Initialization – All Pages w kontekście consent; GTM ma osobny typ uruchamiania pod Consent Mode)
  5. Nazwij tag np. Cookiebot CMP
  6. Save

Ten tag ma ładować się zanim jakikolwiek tracking wystartuje.

Poprawnie ustawiony tag:

Tag type: Cookiebot CMP (Usercentrics)
✔️ Dokładnie ten szablon, który powinien być użyty

Cookiebot ID
✔️ 4be000f9-e64f-4c2b-ae7c-ae8ea669aa7a
– poprawny format i pasuje do Twojej domeny

Language: Default (auto-detect)
✔️ OK – Cookiebot sam dobierze język na podstawie przeglądarki / strony

Enable Google Consent Mode
✔️ ZAZNACZONE – bardzo dobrze
To jest kluczowe dla integracji z GA4 / Google Tag / Ads

Trigger: Consent Initialization – All Pages
✔️ IDEALNIE
Cookiebot MUSI odpalić się przed wszystkimi innymi tagami

4) Ustaw “Default consent state” (Google Consent Mode) w tagu Cookiebot

W konfiguracji taga Cookiebot CMP znajdziesz sekcję domyślnych zgód.

Rekomendacja (bez kombinowania regionalnego na start):

Kliknij „Add region”

Uzupełnij poniższe:

🔹 Region

  • Zostaw PUSTE

To oznacza:

reguła globalna – obowiązuje wszystkich użytkowników, dopóki nie dodasz wyjątków regionalnych.

🔹 Preferences

(functionality_storage + personalization_storage)
➡️ Denied

Ustawiasz to poprawnie – dotyczy:

  • ustawień funkcjonalnych (np. zapamiętanie wyborów),
  • personalizacji.

Jeśli później okaże się, że jakaś funkcja strony musi działać „bez zgody” – wtedy ją rozwiązuje się inaczej (nie tutaj).

🔹 Statistics

(analytics_storage)
➡️ Denied

To jest kluczowe dla GA4.
Oznacza:

  • brak cookies analitycznych
  • brak page_view dopóki użytkownik nie wyrazi zgody.

🔹 Marketing

  • ad_storageDenied
  • ad_user_dataDenied
  • ad_personalizationDenied

To blokuje:

  • Google Ads
  • remarketing
  • personalizację reklam
    — do momentu zgody.

🔹 security_storage

✔️ NIC NIE RUSZASZ
To jest:

  • „necessary”
  • zawsze dozwolone
  • Cookiebot i GTM obsługują to automatycznie

Finalny widok:

Jeśli chcesz później różnicować regionami (np. poza EU = granted), to dodasz reguły “Add region”, ale najpierw zrób stabilny baseline.

Podsumowując:

⏱️ Wait for update = 2000 ms

✔️ Zostaw

  • Standard Cookiebot / Google
  • Daje czas na ustalenie zgody zanim tagi „ruszą”

🎯 Redact ads data = Dynamic (match ad_storage)

✔️ Bardzo dobrze

  • Gdy ad_storage = denied → dane reklamowe są redagowane
  • Gdy granted → pełne dane
  • Najlepsza i rekomendowana opcja

🔗 Enable URL passthrough

Wyłączone – SUPER

  • Nie będziesz mieć _gl=... w URL-ach
  • Zero bałaganu w adresach i SEO

📢 Advertiser Consent Mode

✔️ Włączone

  • Wymagane, jeśli kiedykolwiek:
    • Google Ads
    • remarketing
    • konwersje
  • Nawet jeśli teraz nie używasz → warto mieć

5) Zrób trigger, który odpala tagi PO podjęciu decyzji użytkownika

To kluczowy krok, żeby tagi nie “przegapiły” pierwszego pageviewu po wyrażeniu zgody.

  1. GTM → TriggersNew
  2. Typ: Custom Event
  3. Event name: cookie_consent_update
  4. Fires on: All Custom Events
  5. Nazwa triggera: np. CE – cookie_consent_update
  6. Save

6) Skonfiguruj swoje tagi (GA4 / Google Tag / inne), żeby respektowały zgodę

6A) Google Tag / GA4 (page_view)

Dotychczas tag Google Tag odpalany na Initialization – All Pages.

Decyzję Basic vs Advanced podejmujesz właśnie teraz – w konfiguracji Google Tag, a konkretnie poprzez dwie rzeczy naraz:

  1. jaki trigger ma Google Tag
  2. czy dodasz mu dodatkowe Consent Settings (analytics_storage)

🟦 Advanced Consent Mode (domyślne zachowanie Google)

To się dzieje, gdy:

  • Google Tag ładuje się zawsze (np. Initialization – All Pages)
  • Cookiebot tylko aktualizuje stan zgody później

Efekt:

  • tag się ładuje przed zgodą
  • Google wysyła „cookieless pingi” (modelowanie)
  • technicznie coś idzie do Google, choć bez cookies

👉 To jest OK prawnie w wielu przypadkach, ale nie jest „zero trackingu”

🟩 Basic Consent Mode (zero trackingu przed zgodą)

To się dzieje, gdy:

  • Google Tag NIE ładuje się w ogóle przed zgodą
  • odpala się dopiero po cookie_consent_update
  • ma ustawione wymaganie analytics_storage

Efekt:

  • nic nie idzie do Google przed zgodą
  • brak page_view
  • brak modelowania
  • pełna zgodność z „twardą” interpretacją GDPR

🔴 Najważniejsze zdanie

O tym, czy masz Basic czy Advanced Consent Mode, decyduje TRIGGER Google Tag, a nie sam Cookiebot.

Cookiebot:

  • ustawia stan zgody

Google Tag:

  • decyduje czy w ogóle się załadować

Decyduję się ostatecznie na wersję Basic:

W tym celu ustawiam:

  • W sekcji Additional Consent Checks -> Require additional consent for tag to fire i wpisuję „analytics_storage”
  • Jako trigger dla Google Tag ustawiam Cookie Consent Update

🎯 Efekt końcowy – co faktycznie się teraz dzieje

Masz teraz:

  • 0 requestów do Google przed zgodą
  • ❌ brak page_view
  • ❌ brak modelowania
  • ✅ Google Tag ładuje się natychmiast po „Akceptuj statystyki”
  • ✅ jeśli user kliknie „Odrzuć” → tag się nigdy nie uruchomi
  • ✅ jeśli user miał już zgodę z poprzedniej wizyty → tag odpali się od razu

To jest czysty, twardy Basic Consent Mode 🔒


🟡 Dwie ważne informacje (bez zmian)

1️⃣ Built-in consent ≠ additional consent

To, że widzisz inne consent types u góry nie znaczy, że Google Tag ich wymaga.
Wymaga tylko tego, co dodałeś niżej → analytics_storage.


2️⃣ Page_view tylko raz

Ponieważ:

  • trigger = cookie_consent_update
  • firing = once per event

➡️ page_view poleci:

  • raz po zgodzie
  • nie poleci automatycznie przy kolejnych przejściach SPA
    (jeśli to strona SPA, to temat na osobny krok)

Dla klasycznej strony hotelowej → idealnie.

6B) Tagi GA4 Event

W swojej konfiguracji tagów posaidam 2 eventy powiazane z GA4:

  • “Opinie gosci view – GA4 – Event”
  • “Opinie slider click – GA4 – Event”

Dla nich w ustawieniach powielamy czynność – to jest ustawiamy Additional consent check:

Finalny widok:

6C) Tag do chatbota

GTM → Tags → kliknij AskSuite Tag

Zmieniamy Trigger

Było:

  • All Pages

Ma być:

  • ❌ usuń All Pages
  • ✅ dodaj Cookie Consent Update (Custom Event)

Uznajemy że zgodnie z dobrą praktyką działanie chatbota winno być warunkowane wyrażeniem zgody na Cookies funckcjonalne, dlatego dla tagu dodajemy warunek:

6D) Google Ads

1️⃣ Usuwamy kod z panelu admina strony

<!-- Global site tag (gtag.js) - Google Ads: 970689362 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-970689362"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'AW-970689362');
</script>

Po wdrożeniu w GTM:

  • ❌ NIE może być już tego kodu w HTML
  • ❌ NIE może być drugiego gtag.js dla Ads
  • ✅ jedynym miejscem Ads = GTM

2️⃣ Co bierzemy z Google Ads

Z Google Ads potrzebujesz tylko:

A) ID konwersji

AW-970689362

Jakie tagi robimy w GTM (minimum)

🔹 Tag 1: Google Ads – Conversion Linker

  • Typ: Conversion Linker
  • Trigger: Cookie Consent Update
  • Consent:
    • ad_storageREQUIRED

To jest obowiązkowe przy Ads.

🔹 Tag 2: Google Ads – Conversion Tracking (Purchase)

Potrzebujemy:

  • Conversion ID → będzie 970689362 (to wyciagamy z kodu, z panelu)
  • Conversion label

Bez labela NIE DA SIĘ poprawnie wysłać Purchase.

Jak uzyskać powyższe? Wykonaj poniższe kroki.

Wybieram właściwa kampanię:

Po kliknięciu, u dołu rozwijam Tag setup.

W trzeciej zakładce mamy potrzebne parametry:

Majac wszystkie informacje definiujemy tag Google Ads – Conversion Tracking

Od razu po wpisaniu Conversion ID pojawia się komunikat

🔶 Komunikat, który widzisz

“No Google tag found in this container”

Co to oznacza?

GTM mówi:

„Nie widzę w tym kontenerze Google Tag (czyli bazowego taga gtag.js), do którego mógłbym logicznie ‘podpiąć’ konwersję Ads”.

ALE 👇
➡️ W Twoim setupie to jest NORMALNE i POPRAWNE.


🔑 Dlaczego to się pojawia u Ciebie

Ty masz:

  • Google Tag (GA4) → skonfigurowany w Basic Consent Mode
  • uruchamiany dopiero po cookie_consent_update
  • nie ładuje się globalnie na All Pages

W takim układzie:

  • GTM nie widzi „zawsze dostępnego” Google Tag
  • więc pokazuje ostrzeżenie

➡️ To NIE blokuje wysyłania konwersji Google Ads
➡️ To NIE jest błąd konfiguracji


✅ Co zrobić TERAZ (konkretnie)

1️⃣ Zignoruj ten komunikat

Nie klikaj:

  • Create tag
  • Learn more

Nie twórz nowego Google Tag tylko po to, żeby zniknęło ostrzeżenie — zepsułoby to Consent Mode.

Na tym etapie kończę implementację – Tagi Google Ads Conversion Purchase oraz Conversion Linker zostają spauzowane – zostaną być może wykorzystane w ramach zbiorczej konfiguracji GTM dedykowanego dla części Booking Engine aka Profitroom.

Finalny widok tagów

Test powdrożeniowy

  1. W momencie wejścia na stronę jako pierwszy jest uruchamiany tag „Consent initialization” i blokuje wszystkie typy cookies – parametr regionSettings (ustawia wartość cookies na „denied”).

Strona czeka na wybór cookies przez użytkownika.

  1. Zaznaczam zgody przy wszystkich typach cookies – klikam „Zezwól na wszystkie”
  1. Uruchamia się tag „cookie_consent_update” zmieniający stan cookies z „Denied” na „Granted” – czyli działa zgodnie z intencja użytkownika (prawidłowo).

Podobne wpisy