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)
- GTM → Admin
- Container Settings
- Zaznacz Enable consent overview (jeśli dostępne)
- Save

Dzięki temu łatwo sprawdzisz, które tagi mają jakie wymagania zgód.
2) Dodaj szablon Cookiebot CMP do GTM
- GTM → Templates (po lewej)
- W sekcji Tag Templates kliknij Search Gallery
- Wyszukaj: Cookiebot
- Wybierz Cookiebot CMP
- 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”
- GTM → Tags → New
- Tag Configuration → wybierz Cookiebot CMP
- W polu Cookiebot ID wklej:
4be000f9-e64f-4c2b-ae7c-ae8ea669aa7a - 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) - Nazwij tag np. Cookiebot CMP
- 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_storage → Denied ✅
- ad_user_data → Denied ✅
- ad_personalization → Denied ✅
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.
- GTM → Triggers → New
- Typ: Custom Event
- Event name: cookie_consent_update
- Fires on: All Custom Events
- Nazwa triggera: np. CE – cookie_consent_update
- 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:
- jaki trigger ma Google Tag
- 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_storage→ REQUIRED
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
- 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.

- Zaznaczam zgody przy wszystkich typach cookies – klikam „Zezwól na wszystkie”

- Uruchamia się tag „cookie_consent_update” zmieniający stan cookies z „Denied” na „Granted” – czyli działa zgodnie z intencja użytkownika (prawidłowo).
