Zgody cookies w Google Tag Managerze należy ustawić na dwóch poziomach. Reguła określa, kiedy tag podejmuje próbę uruchomienia, a ustawienie zgody decyduje, czy w tym momencie tag może zadziałać albo jak ma się zachować. Najpierw CMP powinien ustawić domyślny stan zgody w zdarzeniu Consent Initialization, a po decyzji użytkownika natychmiast go zaktualizować. Następnie każdy tag trzeba przejrzeć pod kątem wbudowanych i dodatkowych mechanizmów zgody.
Nie twórz jednego własnego wyzwalacza „zgoda udzielona” i nie przypinaj go bez analizy do wszystkich tagów. Tagi Google, takie jak Google tag, GA4, Google Ads, Floodlight i Conversion Linker, mają wbudowaną obsługę Consent Mode. Zewnętrzny piksel lub Custom HTML może jej nie mieć i wtedy wymaga osobnej reguły. Ostateczna konfiguracja zależy także od tego, czy organizacja wybrała tryb Basic, czy Advanced.
CMP, Consent Mode i GTM odpowiadają za różne zadania
Te trzy elementy współpracują, ale nie są zamienne.
| Element | Główna odpowiedzialność | Czego sam nie zapewnia |
|---|---|---|
| CMP | pokazuje baner, zapisuje wybór, umożliwia zmianę decyzji i przekazuje stan | nie porządkuje automatycznie każdego taga dodanego dowolną metodą |
| Consent Mode | przekazuje usługom Google stan zgody i zmienia zachowanie obsługiwanych tagów | nie jest banerem ani rejestrem decyzji użytkowników |
| Google Tag Manager | zarządza tagami, regułami, zmiennymi i dodatkowymi wymaganiami zgody | nie uzyskuje ważnej zgody bez właściwego interfejsu i procesu CMP |
Najpierw ustal jedno źródło prawdy o decyzji użytkownika. Najczęściej jest nim CMP. GTM powinien otrzymać stan z tego systemu i konsekwentnie stosować go do tagów, zamiast tworzyć drugi, niezależny model zgód.
CookieStart może łączyć baner i kategorie z czterema sygnałami Consent Mode v2 oraz aktualizować je po zmianie preferencji. Nadal trzeba sprawdzić, jak skonfigurowano poszczególne tagi w GTM i czy żaden skrypt nie omija kontenera. Szczegóły działania integracji opisuje strona Consent Mode v2 w CookieStart.
Reguła uruchamiająca i kontrola zgody to nie to samo
Załóżmy, że tag GA4 ma regułę All Pages. Reguła oznacza, że GTM rozpatruje tag przy każdym wyświetleniu strony. Nie przesądza jeszcze, jakie dane tag może zapisać lub wysłać przy stanie denied, ponieważ tag Google może mieć wbudowane mechanizmy Consent Mode.
W przypadku tagu zewnętrznego sytuacja wygląda inaczej. Reguła Page View może zostać spełniona przed wyborem użytkownika, a sam tag może nie mieć żadnej wbudowanej obsługi zgody. Wtedy trzeba dodać wymaganie, które uniemożliwi uruchomienie do czasu przyznania odpowiedniego typu zgody, albo użyć udokumentowanej integracji dostawcy.
| Warstwa | Pytanie kontrolne |
|---|---|
| Reguła | Przy jakim zdarzeniu tag ma zostać rozpatrzony? |
| Wbudowany mechanizm zgody | Czy szablon taga sam zmienia zachowanie przy granted i denied? |
| Dodatkowy wymóg zgody | Czy GTM ma całkowicie zatrzymać tag, dopóki wszystkie wskazane typy nie będą przyznane? |
| Aktualizacja | Czy po zmianie decyzji tag otrzyma zdarzenie, przy którym powinien zareagować? |
Samo ustawienie „Wymagaj dodatkowej zgody” nie tworzy nowej reguły. Jeżeli Page View wystąpił przed akceptacją i został zablokowany, trzeba sprawdzić, czy integracja ponowi działanie po aktualizacji zgody. W niektórych wdrożeniach potrzebne jest zdarzenie przekazane przez CMP lub osobna, dobrze zdefiniowana reguła po zapisaniu preferencji.
Najpierw wybierz sposób działania tagów Google: Basic czy Advanced
Interpretacja kontenera zależy od wybranego wariantu Consent Mode.
| Obszar | Basic Consent Mode | Advanced Consent Mode |
|---|---|---|
| Tagi Google przed wyborem | pozostają zablokowane do interakcji z banerem | mogą załadować się z domyślnym stanem denied |
| Transmisja przed zgodą | brak danych do Google | mogą pojawić się ograniczone pomiary bez cookies |
| Dodatkowe blokowanie tagów Google | może być częścią świadomej konfiguracji Basic | mechaniczne dodanie wymogu może zatrzymać działanie przewidziane dla Advanced |
Interpretacja statusu Fired |
uruchomienie przed zgodą wymaga wyjaśnienia | Fired przy denied nie jest samodzielnym dowodem błędu |
Google opisuje oba warianty w dokumentacji Consent Mode. W Advanced tag może się uruchomić, ale ograniczyć zapisywanie identyfikatorów i sposób wysyłania danych. W Basic oczekiwane jest wcześniejsze zablokowanie tagów Google.
Nie zmieniaj jednego wariantu w drugi przypadkowym ustawieniem GTM. Wybór trybu, wartości domyślnych i zakresu blokowania powinien odpowiadać polityce organizacji oraz ocenie dla obsługiwanych rynków. Consent Mode jest mechanizmem technicznym i nie stanowi samodzielnej gwarancji zgodności prawnej ani odzyskania określonej części danych.
Krok 1. Zinwentaryzuj tagi i wszystkie miejsca ich instalacji
Eksport kontenera albo lista w sekcji Tagi to za mało. Ten sam skrypt może zostać dodany przez GTM, wtyczkę WordPress, motyw, kreator strony i kod aplikacji jednocześnie.
Dla każdego taga zapisz:
- nazwę i identyfikator usługi;
- cel biznesowy i kategorię zgody;
- typ taga oraz reguły;
- wbudowane mechanizmy sprawdzania zgody widoczne w GTM;
- planowany dodatkowy wymóg;
- zachowanie oczekiwane przed wyborem, po akceptacji i po odmowie;
- właściciela biznesowego oraz osobę odpowiedzialną technicznie;
- informację, czy druga kopia działa poza GTM.
Przykładowa macierz robocza:
| Tag | Cel | Wbudowane mechanizmy | Decyzja o dodatkowej zgodzie | Oczekiwane zachowanie |
|---|---|---|---|---|
| Google tag lub GA4 | analityka | sprawdź listę pokazaną w szablonie GTM | zgodnie z wybranym Basic lub Advanced | zachowanie zależne od analytics_storage i konfiguracji |
| Google Ads | pomiar reklam lub remarketing | tag Google obsługujący Consent Mode | zgodnie z przyjętym trybem i celem | reakcja na sygnały reklamowe |
| Conversion Linker | pomiar konwersji | mechanizmy wbudowane | nie dodawaj automatycznie kolejnej blokady | działanie zgodne ze stanem zgody |
| Meta Pixel | marketing | nie zakładaj obsługi Consent Mode Google | wymaga osobnej, udokumentowanej kontroli | brak uruchomienia bez właściwej decyzji, jeśli tak ustalono |
| narzędzie nagrywania sesji | analiza zachowania | zależne od konkretnego szablonu | oceń indywidualnie | zgodne z kategorią opisaną użytkownikowi |
| mechanizm bezpieczeństwa | ochrona formularza lub transakcji | zależne od wdrożenia | brak dodatkowego wymogu tylko po udokumentowaniu konieczności | działa w zakresie niezbędnym do funkcji |
Nie używaj ad_storage jako automatycznego przełącznika każdego zewnętrznego piksela tylko dlatego, że tag służy marketingowi. Jest to typ zgody zdefiniowany przez Google. GTM pozwala także na własne typy zgody, jeśli obsługuje je CMP. Mapowanie musi być udokumentowane i odpowiadać realnemu wyborowi użytkownika.
Krok 2. Ustaw stan domyślny w Consent Initialization
Każdy kontener internetowy GTM ma regułę Consent Initialization – All Pages. Uruchamia się ona przed zwykłą Initialization i przed pozostałymi regułami. Powinna służyć tagowi CMP lub szablonowi, który ustawia stan zgody.
Nie przypinaj do Consent Initialization tagów GA4, reklam, pikseli ani skryptów, które po prostu mają działać wcześnie. Google wyraźnie rozdziela tagi zarządzające zgodą od pozostałych tagów. Dla zwykłego kodu wymagającego wczesnego startu istnieje reguła Initialization.
Stan domyślny powinien obejmować co najmniej cztery parametry Consent Mode v2 używane przez Google:
ad_storage;analytics_storage;ad_user_data;ad_personalization.
Wartości muszą wynikać z przyjętej konfiguracji, a nie z uniwersalnego fragmentu znalezionego w poradniku. Google zaznacza, że właściwe stany zależą od zasad organizacji. Jeśli używasz reguł regionalnych, sprawdź kody regionów oraz zachowanie dla użytkowników nieobjętych żadnym wyjątkiem.
Przy gotowym szablonie CMP użyj jego udokumentowanej konfiguracji. Jeśli zespół tworzy własny szablon GTM, Google zaleca interfejsy setDefaultConsentState i updateConsentState. Polecenia gtag w szablonie są kolejkowane i mogą zostać obsłużone zbyt późno względem następnego zdarzenia. Szczegóły zawiera dokumentacja interfejsów zgody dla szablonów GTM.
Krok 3. Dopilnuj aktualizacji po każdej zmianie preferencji
Po akceptacji, odmowie albo zapisaniu własnego zestawu kategorii CMP powinien przekazać nowy stan na tej samej stronie. Aktualizacja wykonana dopiero po przeładowaniu lub przejściu pod inny adres może nie wpłynąć na zdarzenie, przy którym użytkownik dokonał wyboru.
Sprawdź co najmniej cztery sytuacje:
- Pierwsza wizyta bez zapisanej decyzji.
- Akceptacja wszystkich kategorii.
- Odrzucenie kategorii opcjonalnych.
- Zgoda tylko na analitykę przy odrzuconym marketingu.
Dodaj także zmianę wcześniejszej decyzji. Google obsługuje aktualizację zarówno z denied na granted, jak i z granted na denied. CMP powinien zapisać nowy wybór i odtworzyć go przy kolejnym widoku strony.
Sama aktualizacja stanu nie musi usuwać cookies utworzonych wcześniej. Funkcję usuwania lub dalszej obsługi identyfikatorów trzeba sprawdzić osobno w CMP, logice strony i dokumentacji konkretnego narzędzia.
Krok 4. Włącz Consent Overview i przejrzyj każdy tag
W GTM przejdź do ustawień kontenera i włącz przegląd ustawień uzyskiwania zgody. Następnie otwórz sekcję Tagi i ikonę Consent Overview. Google dzieli tagi na dwie grupy:
- nieskonfigurowane – pozostawione w stanie „Nie ustawiono”;
- skonfigurowane – oznaczone jako niewymagające dodatkowej zgody albo wymagające wskazanych typów.
Stan „Nie ustawiono” nie oznacza automatycznie błędu, ale nie potwierdza też, że ktoś świadomie ocenił tag. Przegląd jest narzędziem porządkowym: po analizie tag powinien otrzymać udokumentowaną decyzję.
W każdym tagu otwórz Ustawienia zaawansowane, następnie Ustawienia dotyczące wyrażania zgody i sprawdź dwie sekcje.
Wbudowane mechanizmy sprawdzania zgody
Pokazują typy zgody obsługiwane bezpośrednio przez szablon. Google wymienia między innymi Google tag, Google Analytics, Google Ads, Floodlight i Conversion Linker jako rozwiązania z wbudowanymi mechanizmami.
W trybie Advanced zwykle nie należy mechanicznie dodawać im dodatkowego wymogu tylko po to, aby „uwzględniały zgodę”. Wbudowana obsługa już zmienia zachowanie na podstawie stanu. Całkowite zablokowanie może przekształcić zamierzony wariant Advanced w zachowanie zbliżone do Basic.
Jeżeli organizacja świadomie wybrała Basic albo wymaga pełnego zatrzymania konkretnego taga, konfiguracja może wyglądać inaczej. Zapisz tę decyzję w macierzy, zamiast polegać na domyślnych założeniach.
Dodatkowe mechanizmy sprawdzania zgody
GTM oferuje trzy opcje:
- Nie ustawiono – nie wykonuje dodatkowego sprawdzania i pozostawia tag jako nieprzejrzany w Consent Overview.
- Brak wymogu uzyskania dodatkowej zgody – świadomie potwierdzasz, że poza mechanizmami wbudowanymi tag nie potrzebuje kolejnego warunku.
- Wymagaj dodatkowej zgody na uruchomienie tagu – tag może się uruchomić tylko wtedy, gdy wszystkie wskazane typy mają stan
grantedw chwili wywołania.
Trzecia opcja jest szczególnie przydatna dla tagów bez obsługi Consent Mode, ale nie zwalnia z testu. Trzeba potwierdzić, że CMP rzeczywiście ustawia wybrany typ zgody i że tag zostanie ponownie rozpatrzony po przyznaniu decyzji.
Krok 5. Skonfiguruj tagi zewnętrzne indywidualnie
Nie zakładaj, że Meta Pixel, TikTok Pixel, Microsoft Clarity, Hotjar, czat, mapa, film lub tag Custom HTML reagują na sygnały Google w ten sam sposób. Sprawdź szablon w GTM oraz oficjalną dokumentację producenta.
Dla każdego tagu bez wbudowanej kontroli ustal:
- która kategoria banera odpowiada jego rzeczywistemu celowi;
- jaki stan lub własny typ zgody udostępnia CMP;
- czy skrypt ma być całkowicie zablokowany, czy posiada własny tryb ograniczony;
- przy jakim zdarzeniu powinien się uruchomić po przyznaniu zgody;
- co ma się wydarzyć po późniejszym wycofaniu decyzji;
- czy kod nie ładuje się równolegle poza GTM.
Przykład hipotetyczny: piksel marketingowy ma regułę Page View i wymaga zgody marketingowej. Przy pierwszym Page View stan jest denied, więc tag zostaje zablokowany. Po akceptacji CMP aktualizuje stan, ale pierwotne Page View nie występuje ponownie. Jeśli tag ma rozpocząć działanie natychmiast, konfiguracja potrzebuje udokumentowanego zdarzenia po zmianie zgody albo innego mechanizmu przewidzianego przez integrację. To scenariusz projektowy, nie wynik testu konkretnego kontenera.
Krok 6. Sprawdź tagi działające poza Google Tag Managerem
GTM nie kontroluje kodu, którego nie uruchamia. Nawet idealnie skonfigurowany kontener nie zatrzyma drugiego GA4 dodanego przez wtyczkę, Meta Pixel w motywie ani skryptu czatu wklejonego przez builder.
Sprawdź:
- kod źródłowy strony;
- żądania w Network i ich kolumnę Initiator;
- wtyczki analityczne oraz reklamowe;
- Google Site Kit;
- ustawienia motywu i motywu potomnego;
- dodatki do nagłówka i stopki;
- Elementor Custom Code lub odpowiednik w innym kreatorze;
- kod aplikacji i zewnętrzne moduły sklepu;
- drugie kontenery GTM.
Jeżeli ten sam identyfikator występuje w dwóch miejscach, użytkownik może otrzymać dwa page_view, podwójną konwersję albo różne stany zgody. Najpierw wybierz jedno docelowe źródło każdego taga, a dopiero później usuwaj duplikaty.
Krok 7. Przetestuj konfigurację w Tag Assistant
Wprowadzenie ustawień w panelu nie dowodzi, że działają na stronie. Użyj Preview w GTM i rozpocznij nową sesję w Tag Assistant. Dla akceptacji, odmowy i zgody częściowej używaj osobnych, czystych sesji przeglądarki.
Sprawdź stan przed wyborem
- Połącz Tag Assistant ze stroną.
- Nie klikaj jeszcze banera.
- Wybierz najwcześniejsze zdarzenie Consent.
- W sekcji API Call albo kolumnie On-page Default sprawdź cztery sygnały v2.
- Potwierdź, że stan pojawia się przed zdarzeniami pomiarowymi.
- Otwórz tag i sprawdź wbudowane oraz dodatkowe wymagania.
Sprawdź aktualizację po akceptacji
Kliknij akceptację wszystkich kategorii, a następnie wybierz najnowsze zdarzenie Consent. W API Call albo On-page Update potwierdź zmianę zgodną z wyborem. Sprawdź też, które tagi się uruchomiły, jaki stan odczytały i czy nie pojawiły się duplikaty.
Wykonaj osobny test odmowy
W nowej sesji odrzuć kategorie opcjonalne. Dla tagów Google interpretuj wynik zgodnie z Basic lub Advanced. W Advanced status Fired może oznaczać działanie ograniczone przy denied, a nie pełne uruchomienie ze zgodą. Dla tagu zewnętrznego bez własnego mechanizmu sprawdź, czy rzeczywiście został zablokowany.
Sprawdź wybór częściowy i wycofanie
Zaakceptuj analitykę, odrzucając marketing. Oczekiwanym kierunkiem może być analytics_storage: granted przy sygnałach reklamowych pozostających jako denied. Następnie wykonaj oddzielny scenariusz, w którym najpierw akceptujesz wszystkie kategorie, a później je wycofujesz.
Google opisuje te miejsca kontroli w instrukcji debugowania Consent Mode w Tag Assistant.
Macierz testów kontenera GTM
| Scenariusz | Co sprawdzić | Warunek pozytywnego wyniku |
|---|---|---|
| pierwsza wizyta | najwcześniejsze Consent, kolejność i baner | stan domyślny istnieje przed tagami i odpowiada konfiguracji |
| brak interakcji | tagi Google i zewnętrzne | zachowanie jest zgodne z Basic lub Advanced oraz kategoriami |
| akceptacja wszystkiego | On-page Update i uruchomione tagi | wartości zmieniają się na tej samej stronie, bez duplikatów |
| odrzucenie | aktualizacja i zablokowane tagi | odmowa nie zostaje nadpisana przez inny kod |
| tylko analityka | mapowanie kategorii | analityka i marketing reagują niezależnie |
| wycofanie | nowa aktualizacja i kolejne zdarzenia | stan przechodzi z granted na denied |
| następna podstrona | utrwalenie wyboru | CMP odtwarza ten sam stan przed tagami |
| ponowna wizyta | zapis decyzji | nie pojawia się inny stan niż wcześniej zapisany |
| tag Google | mechanizmy wbudowane i transmisja | zachowanie odpowiada wybranemu trybowi |
| tag zewnętrzny | dodatkowe wymaganie i ponowne zdarzenie | nie uruchamia się bez wymaganej decyzji i działa po jej przyznaniu, jeśli tak zaprojektowano |
| kod poza GTM | Network, cookies i storage | zewnętrzna kopia nie omija zasad kontenera |
| publikacja | wersja kontenera i środowisko | testowana wersja jest tą, która trafiła na produkcję |
Do protokołu dopisz datę, domenę, wersję kontenera, wersję CMP, tryb Basic lub Advanced oraz identyfikatory testowanych usług. Dzięki temu kolejna kontrola po zmianie strony będzie porównywalna.
Najczęstsze błędy przy ustawianiu zgód w GTM
| Objaw | Możliwa przyczyna | Co sprawdzić |
|---|---|---|
| najwcześniejsze Consent jest puste | CMP nie ustawia stanu lub kontener jest zablokowany | tag CMP, Consent Initialization i obecność GTM |
| stan domyślny pojawia się po Page View | błędna reguła albo zbyt późne ładowanie | kolejność, szablon CMP i optymalizację skryptów |
| tylko dwa sygnały | pozostała konfiguracja sprzed Consent Mode v2 | ad_user_data i ad_personalization |
| wszystkie tagi są na Consent Initialization | pomylono wczesne ładowanie z zarządzaniem zgodą | pozostaw tam tylko mechanizm ustawiający zgodę |
| GA4 nie wysyła nic w Advanced | dodano zbędny dodatkowy wymóg | mechanizmy wbudowane i decyzję o trybie |
| GA4 wysyła żądanie przy odmowie | może to być oczekiwane w Advanced | stan, cookies, charakter żądania i wybrany tryb |
| piksel zewnętrzny działa przed zgodą | brak wbudowanej kontroli lub kod poza GTM | ustawienia dodatkowe, źródło skryptu i Network |
| tag nie startuje po akceptacji | pierwotna reguła nie występuje ponownie | zdarzenie CMP i regułę po aktualizacji |
| analityka przyznaje marketing | błędne mapowanie kategorii | wartości Update i ustawienia CMP |
| odmowa zmienia się na zgodę | drugie źródło default lub update |
GTM, kod strony i drugi CMP |
| zmiany działają tylko w Preview | nie opublikowano kontenera albo produkcja używa innego ID | wersję, środowisko i identyfikator GTM |
| zdarzenia są podwójne | tag działa w GTM i poza kontenerem | wtyczki, motyw, Source i Initiator |
Dobre praktyki utrzymania zgód w GTM
- Stosuj nazwy tagów zawierające usługę, cel i środowisko.
- Utrzymuj macierz tagów poza samym interfejsem GTM.
- Oznacz świadomie tagi niewymagające dodatkowej zgody, zamiast pozostawiać je jako nieprzejrzane.
- Zapisuj wersję kontenera i opisuj zmianę wpływającą na zgodę.
- Ogranicz liczbę osób publikujących bez przeglądu konfiguracji.
- Wykonuj test po zmianie CMP, szablonu taga, banera, GTM, cache lub sposobu instalacji analityki.
- Kontroluj nowe tagi także w Source, Network, Application i skanerze strony.
- Nie traktuj samego statusu
Firedjako końcowego kryterium odbioru.
Najczęstsze pytania
Czy tag GA4 trzeba uruchamiać dopiero po akceptacji cookies?
To zależy od wybranego trybu. W Basic tag Google jest blokowany do interakcji z banerem. W Advanced może ładować się z domyślnym stanem denied i wykonywać ograniczone pomiary bez cookies. Nie dodawaj dodatkowej blokady bez ustalenia, który wariant ma działać.
Czy każdy tag w GTM powinien mieć ustawioną dodatkową zgodę?
Każdy tag powinien zostać przejrzany, ale nie każdy potrzebuje dodatkowego warunku. Tagi Google mogą mieć mechanizmy wbudowane. Tag rzeczywiście niezbędny może zostać świadomie oznaczony jako niewymagający dodatkowej zgody. Tag zewnętrzny bez własnej obsługi zwykle wymaga udokumentowanej kontroli.
Czy reguła Consent Initialization powinna uruchamiać GA4?
Nie. Google przeznacza ją dla tagów ustawiających lub aktualizujących stan zgody, takich jak szablon CMP. Umieszczenie tam GA4 lub piksela tylko dlatego, że ma działać wcześnie, jest błędnym użyciem tej reguły.
Dlaczego tag zablokowany przed zgodą nie uruchamia się po akceptacji?
Dodatkowy wymóg sprawdza stan w chwili wywołania taga, ale nie musi powtórzyć wcześniejszego Page View. Sprawdź, czy CMP wysyła zdarzenie po zapisaniu decyzji i czy tag ma odpowiednią regułę dla tego zdarzenia.
Czy ad_storage może sterować Meta Pixel?
GTM technicznie pozwala wykorzystać różne typy zgody jako warunki, ale ad_storage opisuje przechowywanie związane z usługami reklamowymi Google. Nie zakładaj, że automatycznie steruje Meta Pixel. Użyj udokumentowanego mapowania CMP i konfiguracji właściwej dla danego dostawcy.
Czy Consent Mode zastępuje blokowanie tagów zewnętrznych?
Nie. Mechanizm obejmuje obsługiwane tagi Google. Skrypty innych dostawców trzeba kontrolować za pomocą ich integracji, dodatkowych wymagań GTM albo blokowania w CMP.
Czy opublikowanie zmian w GTM kończy wdrożenie?
Nie. Po publikacji wykonaj osobny test produkcyjny. Preview może korzystać z innej wersji, a na wynik produkcji wpływają cache, wtyczki, kod poza GTM, region użytkownika i zapisane preferencje.
Jeśli chcesz połączyć baner CMP, cztery sygnały Consent Mode v2 i odbiór tagów w GTM, umów wdrożenie Consent Mode v2 z CookieStart.