Niestandardowe tagi reklamowe HTML w GTM nie mają wbudowanej funkcji sprawdzania zgody. Żeby uruchomić piksel, skrypt remarketingowy lub narzędzie do śledzenia odwiedzających dopiero po tym, jak użytkownik zaakceptuje reklamowe pliki cookie w CookieYes, potrzebujesz konfiguracji opartej na wyzwalaczach, która nasłuchuje zdarzeń wyraźnej zgody – a nie domyślnej kombinacji „Wszystkie strony + Raz na stronę”, która po nieudanej próbie uruchomienia po prostu milczy.
Table of Contents
Najważniejsze wnioski
- CookieYes zapisuje wybory użytkownika dotyczące zgody w
cookieyes-consentplik cookie; GTM odczytuje je za pomocą zmiennej pliku cookie pierwszej strony - Prawidłowym wyzwalaczem jest zdarzenie niestandardowe na
cookie_consent_updatez warunkiem sprawdzającym, czyadvertisement:yespojawia się w wartości pliku cookie - Połączenie opcji „Wszystkie strony” z „Raz na stronę” sprawia, że GTM traktuje zablokowaną próbę załadowania strony jako moment wyzwolenia – tag nigdy nie uruchamia się po tym, jak użytkownik kliknie „Akceptuj”
- Wymagaj
ad_storage,ad_user_dataoraz opcję „ad”personalizationw zaawansowanych ustawieniach zgody tagu jako dodatkowy poziom weryfikacji - To podejście dotyczy wyłącznie niestandardowych tagów HTML; natywne tagi Google Ads i GA4 mają własne zachowanie w trybie zgody
Dlaczego niestandardowe tagi HTML same w sobie nie uwzględniają trybu zgody

Niestandardowe tagi HTML w GTM nie odczytują sygnałów z trybu zgody Google. Kiedy wkleisz fragment kodu Meta Pixel, tag LinkedIn Insight lub dowolny skrypt remarketingowy innej firmy do niestandardowego tagu HTML, ten tag uruchamia się za każdym razem, gdy zadziała jego wyzwalacz. Nie ma on świadomości adstorage aduser_data – te sygnały automatycznie wpływają tylko na natywne tagi Google (konwersje Google Ads, GA4).
Zgodnie z dokumentacją Google dotyczącą trybu zgody, sygnały zgody, takie jak ad_storage i ad_user_data regulują zachowanie wyłącznie tagów należących do Google. Skrypty stron trzecich wklejone do tagów „Custom HTML” znajdują się poza tą warstwą kontroli; uruchamiają się niezależnie od statusu zgody, chyba że sam wyzwalacz temu zapobiega.
To istotna różnica dla każdej witryny działającej zgodnie z RODO, CCPA lub podobnymi przepisami. Skrypty stron trzecich dodane jako „Custom HTML” mogą ustawiać reklamowe pliki cookie już w momencie ich uruchomienia, więc uruchomienie się wyzwalacza przed wyrażeniem zgody stanowi ryzyko związane z naruszeniem przepisów, a nie tylko problem z dokładnością śledzenia.
Błąd wyzwalania „raz na stronę”
Kiedy dodasz „Wszystkie strony” jako wyzwalacz i ustawisz opcje uruchamiania na „Raz na stronę”, GTM sprawdza tag przy każdym zdarzeniu załadowania strony. Jeśli CookieYes uruchomi swoją inicjalizację zgody, zanim użytkownik wyrazi zgodę, GTM może w tym momencie próbować uruchomić tag. Sprawdzanie zgody blokuje faktyczne uruchomienie tagu, ale GTM i tak rejestruje tę ocenę jako jedyne dozwolone uruchomienie dla tej sesji na stronie.
Wynik: użytkownik otwiera baner, klika „Zaakceptuj wszystko”, CookieYes wysyła aktualizację zgody do warstwy danych (dataLayer), ale nic się nie dzieje. Skrypt reklamowy milczy przez całą sesję, bo GTM wykorzystał już slot „Raz na stronę” podczas zablokowanej próby załadowania strony.
To nie jest błąd, który pojawia się regularnie podczas testów. W trybie podglądu GTM wszystko może wyglądać poprawnie, jeśli załadujesz podgląd po wyczyszczeniu plików cookie i wyrazisz zgodę, zanim uruchomią się jakiekolwiek tagi. Problem pojawia się w środowisku produkcyjnym, gdy baner CookieYes ładuje się i inicjuje, zanim inne kontenery GTM zdążą przetworzyć kolejkę zdarzeń.
Dlaczego wystarczy użyć tylko niestandardowego wyzwalacza, żeby to rozwiązać
Jeśli jedynym wyzwalaczem tagu jest cookie_consent_update zdarzenie niestandardowe, GTM w ogóle nie ocenia tego tagu podczas ładowania strony. Nie ma żadnych zablokowanych prób, nie marnuje się miejsca na wywołanie. Tag jest brany pod uwagę do wywołania dopiero wtedy, gdy wystąpi zdarzenie niestandardowe, co ma miejsce, gdy CookieYes przesyła zmianę stanu zgody do warstwy danych (dataLayer). W tym momencie, jeśli zarówno warunek dotyczący plików cookie, jak i sprawdzanie zgody zakończą się pomyślnie, tag działa bez problemów.
Krok 1: Skonfiguruj CookieYes dla trybu zgody Google v2
CookieYes musi być skonfigurowane tak, żeby z jednej strony zainicjować domyślne ustawienia trybu zgody Google, zanim uruchomią się inne tagi, a z drugiej – wysyłać zdarzenia do dataLayer, gdy zmieni się stan zgody użytkownika.
W panelu CookieYes włącz obsługę trybu zgody Google v2. To ustawienie sprawia, że CookieYes wstawia gtag('consent', 'default', {...}) wywołanie przed załadowaniem kontenera GTM, ustawiając domyślne wartości dla wszystkich sygnałów zgody.
Ustaw domyślny stan zgody na sygnały reklamowe na „odmowa”:
ad_storage: deniedad_user_data: deniedad_personalization: denied
Gdy użytkownik zaakceptuje kategorię „Reklamy”, CookieYes wywołuje gtag('consent', 'update', {...}) i zmienia wszystkie trzy na granted. Wysyła też cookie_consent_update zdarzenie do warstwy dataLayer – to właśnie na to zdarzenie będzie nasłuchiwał twój wyzwalacz GTM.
Wyzwalacz tagu CMP „CookieYes” w GTM
W GTM tag CMP CookieYes musi uruchamiać się przy wyzwalaczu „Inicjalizacja zgody – Wszystkie strony”, a nie przy standardowym wyzwalaczu „Wszystkie strony”. To rozróżnienie ma znaczenie: wyzwalacz „Inicjalizacja zgody” uruchamia się przed każdym innym typem wyzwalacza, co gwarantuje, że CookieYes ustawi wartości domyślne, zanim jakikolwiek tag zdąży się wykonać po załadowaniu strony. Jeśli użyjesz standardowego wyzwalacza „Wszystkie strony” dla tagu CookieYes, domyślne ustawienia zgody mogą pojawić się zbyt późno, a inne tagi mogą się uruchomić, zanim zostaną ustawione sygnały GCM.
Plik cookie „cookieyes-consent”
CookieYes zapisuje pełną decyzję użytkownika dotyczącą zgody w pliku cookie pierwszej kategorii o nazwie cookieyes-consent. Typowa zaakceptowana wartość wygląda tak:
consent:yes,analytics:yes,functional:yes,advertisement:yesStan odrzucenia lub częściowego zaakceptowania może wyglądać na przykład tak:
consent:yes,analytics:no,functional:yes,advertisement:noGTM odczytuje ten ciąg znaków z pliku cookie, żeby sprawdzić, czy spełniony jest warunek wyświetlenia reklamy.
Krok 2: Utwórz zmienną GTM
Utwórz nową zmienną w GTM, która odczyta cookieyes-consent wartość pliku cookie. Ta zmienna jest używana w warunku wyzwalacza.
| Miejsce akcji | Wartość |
|---|---|
| Typ zmiennej | Pliki cookie pierwszej strony |
| Nazwa zmiennej | Zgoda na pliki cookie – „Tak” |
| Nazwa pliku cookie | cookieyes-consent |
| Dekodowanie pliku cookie za pomocą URI | Nie |
Ta zmienna zwraca pełny ciąg znaków pliku cookie jako wartość w postaci zwykłego tekstu. Nie trzeba niczego przetwarzać w JavaScript – warunek wyzwalający sam zajmuje się dopasowywaniem podciągów.
Krok 3: Utwórz wyzwalacz zdarzenia niestandardowego

Ten wyzwalacz nasłuchuje zdarzenia, które CookieYes wysyła do warstwy dataLayer przy każdej zmianie statusu zgody: przy pierwszym załadowaniu zgody, jej zaakceptowaniu, odrzuceniu lub aktualizacji szczegółowej kategorii.
| Miejsce akcji | Wartość |
|---|---|
| Typ spustu | Wydarzenie niestandardowe |
| Nazwa wyzwalacza | CookieYes: Reklama zatwierdzona |
| Nazwa wydarzenia | cookie_consent_update |
| Włącz światło | Kilka zdarzeń niestandardowych |
| Zmienna stanu | {{CookieYes Consent}} |
| Operator warunkowy | zawiera |
| Wartość warunku | reklama:tak |
Wartość warunku to dokładnie advertisement:yes. Nie wpisuj słowa „zawiera” w polu wartości – to operator wybrany z listy rozwijanej, a nie część ciągu znaków.
Ten wyzwalacz uruchamia się przy każdej zmianie statusu zgody, gdy wynikowa wartość pliku cookie zawiera advertisement:yes. Jeśli użytkownik odrzuci pliki cookie związane z reklamami, plik cookie będzie zawierał advertisement:no, warunek nie zostanie spełniony, a wyzwalacz się nie uruchomi.
Nie wiesz, co tak naprawdę robi twój kontener GTM?
Błąd „Once per page” to tylko jeden z dziesiątek ukrytych problemów, które znajdujemy w konfiguracjach GTM: tagi uruchamiające się przed uzyskaniem zgody, piksele, które przestały działać już miesiące temu, oraz sygnały zgody, które nigdy nie docierają do tagów, które powinny kontrolować. Każdy z nich to albo ryzyko związane z nieprzestrzeganiem przepisów, albo utrata danych o konwersjach.
Nasz audyt strony WordPress obejmuje pełną analizę Twojego kontenera GTM, procesu uzyskiwania zgody oraz sposobu działania każdego tagu, a także listę poprawek uszeregowanych według priorytetów, które możesz wprowadzić jeszcze w tym samym tygodniu.
Krok 4: Skonfiguruj tag reklamowy
Po skonfigurowaniu zmiennej i wyzwalacza utwórz lub zaktualizuj swój tag reklamowy.
Rodzaj znacznika i ustawienia wystrzału
Ustaw typ tagu na „Custom HTML” i wklej swój skrypt reklamowy w treści. W sekcji „Ustawienia zaawansowane” ustaw opcję „Wywoływanie tagu” na „Raz na stronę”.
Jako wyzwalacz przypisz tylko „CookieYes: Wyrażona zgoda na reklamy”. Nie dodawaj obok niego ani wyzwalacza „Wszystkie strony”, ani żadnego innego wyzwalacza związanego z wyświetleniem strony. Opcja „Raz na stronę” jest tu bezpieczna, bo sam wyzwalacz uruchamia się dopiero po potwierdzeniu zgody – nie ma tu sprawdzania przy ładowaniu strony, które mogłoby przedwcześnie zająć slot uruchomienia.
Zaawansowane ustawienia zgody
W konfiguracji tagów otwórz „Ustawienia zgody” i wybierz opcję „Wymagaj dodatkowej zgody na uruchomienie tagu”. Dodaj następujące typy zgody:
ad_storagead_user_dataad_personalization
To tworzy drugą warstwę weryfikacji. Nawet jeśli zadziała wyzwalacz (spełniony warunek pliku cookie), tag zostanie wykonany tylko wtedy, gdy wszystkie trzy sygnały zgody w trybie Google Consent Mode są ustawione na granted. Jeśli w przeglądarce użytkownika jest już otwarta sesja, w której sygnały są nadal denied, albo jeśli CookieYes zaktualizuje plik cookie, ale sygnały GCM pojawią się z opóźnieniem, ta kontrola zapobiega przedwczesnemu uruchomieniu.
Dlaczego obie warstwy są niezbędne
Warunek uruchamiający odczytuje plik cookie o nazwie „CookieYes” (wartość typu string kontrolowana przez CMP). Sprawdzenia zgody odczytują sygnały Google Consent Mode, czyli stan warstwy danych (dataLayer) kontrolowany przez API GCM. Oba muszą wskazywać, że użytkownik zaakceptował reklamy. W większości przypadków aktualizują się jednocześnie, ale poleganie tylko na jednym z nich stwarza ryzyko, że drugi sygnał jeszcze się nie zaktualizował.
Jeśli użytkownik zaakceptuje reklamowe pliki cookie, a potem wyraźnie je cofnie w tej samej sesji, sygnały GCM powrócą do denied. Nawet jeśli slot „Raz na stronę” nie został jeszcze wykorzystany, tag nie zostanie uruchomiony, bo sprawdzanie zgody zakończy się niepowodzeniem.
Krok 5: Przetestuj w podglądzie GTM

Testowanie wymaga sprawdzenia dwóch ścieżek: ścieżki akceptacji i ścieżki odrzucenia.
| Krok | Akcja | Oczekiwany wynik |
|---|---|---|
| 1 | Wyczyść pliki cookie tej strony, otwórz podgląd GTM | Brak tagu reklamowego w sekcji „Tags Fired” przy załadowaniu strony |
| 2 | Załaduj stronę z widocznym banerem zgody | cookie_consent_update pożary; tag nie występuje w sekcji „Tags Fired” |
| 3 | Kliknij „Odrzuć wszystko” | cookie_consent_update wyzwolenia; brak tagu w sekcji „Wyzwolone tagi” |
| 4 | Odśwież stronę; kliknij „Zaakceptuj wszystko” | cookie_consent_update pożary; otwórz wydarzenie |
| 5 | Sprawdź zakładkę „Zgoda” w podglądzie GTM | ad_storage, ad_userdata, ad_personalization pokaż granted |
| 6 | Sprawdź tagi użyte podczas tego wydarzenia | W tym miejscu pojawia się baner reklamowy |
| 7 | Sprawdź kartę „Sieć” w przeglądarce | Widoczne żądanie piksela lub skryptu |
| 8 | Powtórz proces przy pełnym przepływie, używając wyłącznie opcji „Odrzuć wszystko” | W zakładce „Sieć” brakuje tej etykiety |
W oficjalnym przewodniku Google dotyczącym trybu zgody wyjaśniono, jak korzystać z zakładki „Zgoda” w podglądzie GTM, żeby sprawdzić, czy adstorage, aduserdata, a także adpersonalization zostały zaktualizowane do granted po interakcji użytkownika.
Krok 8 to ten, który większość implementacji pomija. To, że tag nie uruchamia się w kroku 6, jest konieczne; a to, że tag nie pojawia się w sekcji „Sieć” po odrzuceniu, to wymóg zgodności. Oba warunki muszą zostać spełnione.
Ważne: Nie dotyczy to natywnych tagów Google
Opisana powyżej konfiguracja jest przeznaczona dla niestandardowych tagów HTML zawierających skrypty reklamowe innych firm, które nie obsługują natywnie trybu zgody.
Natywne tagi Google Ads i GA4 działają inaczej. W trybie zaawansowanej zgody natywne tagi Google mogą się uruchamiać jeszcze przed wyrażeniem zgody – zbierają dane modelowane bez użycia plików cookie i wysyłają ograniczoną liczbę sygnałów bez zapisywania reklamowych plików cookie. To zamierzone działanie, które wspiera modelowanie konwersji i pomaga odzyskać utracone dane dotyczące atrybucji.
Zastosowanie cookie_consent_update wyzwalacza do natywnych tagów Google Ads lub GA4 całkowicie zablokowałoby gromadzenie danych przed uzyskaniem zgody, przełączając je w tryb podstawowej zgody. To, czy jest to dla ciebie do przyjęcia, zależy od twojej strategii pomiarowej, ale jest to inny kompromis niż zwykłe zapewnienie, że piksel strony trzeciej uruchomi się w odpowiednim momencie.
Jeśli na Twojej stronie są używane zarówno natywne tagi Google, jak i niestandardowe skrypty HTML innych firm, skonfiguruj je osobno. Tagi natywne mogą korzystać ze standardowych wyzwalaczy wyświetleń stron, a sprawdzanie zgody odbywa się automatycznie przez GCM. W przypadku niestandardowych tagów HTML należy skorzystać z opisu konfiguracji wyzwalaczy przedstawionego tutaj.
Najczęściej zadawane pytania
Czy ta konfiguracja działa z każdym pikselem reklamowym?
Tak. Ta konfiguracja jest niezależna od platformy. Działa z Meta Pixel, LinkedIn Insight Tag, Pinterest Tag, TikTok Pixel oraz z każdym własnym skryptem remarketingowym dodanym jako niestandardowy kod HTML. Sprawdzanie wyzwalaczy i zgód odbywa się całkowicie na poziomie GTM, więc konkretna treść skryptu nie ma znaczenia.
A co, jeśli zdarzenie „cookie_consent_update” w ogóle nie pojawia się w podglądzie GTM?
Sprawdź dwie rzeczy. Po pierwsze, upewnij się, że tag CMP CookieYes w GTM jest skonfigurowany tak, by uruchamiał się przy „Inicjalizacji zgody – wszystkie strony”, a nie przy standardowym wyzwalaczu wyświetlenia strony. Po drugie, sprawdź w panelu CookieYes, czy tryb zgody Google (Google Consent Mode) jest włączony. Jeśli zdarzenie w ogóle nie pojawia się w strumieniu zdarzeń podglądu, oznacza to, że tag CookieYes albo nie ma go w kontenerze, albo uruchamia się na niewłaściwym wyzwalaczu, albo integracja z GCM jest wyłączona w ustawieniach CookieYes.
Czy powinienem to zastosować do tagów Google Ads i GA4?
Nie. Natywne tagi Google Ads i GA4 mają wbudowaną obsługę trybu zgody. Ograniczenie ich do cookie_consent_update wyzwalacz, wyłączyłoby ich pingi bez plików cookie przed uzyskaniem zgody, co zazwyczaj nie jest zamierzonym rezultatem. Skonfiguruj natywne tagi Google z użyciem standardowych wyzwalaczy wyświetlenia strony i pozwól GCM zarządzać ich zachowaniem w zakresie zgody.
Jaka jest różnica między trybem zgody podstawowej a zaawansowanej?
W trybie podstawowej zgody tagi nie uruchamiają się, dopóki użytkownik nie wyrazi zgody – przed interakcją z banerem nie dochodzi do gromadzenia danych. W trybie zaawansowanej zgody natywne tagi Google uruchamiają się przed wyrażeniem zgody, ale zbierają tylko anonimowe dane bez plików cookie, a po wyrażeniu zgody przechodzą na pełne śledzenie. Niestandardowe tagi HTML zawsze działają w trybie podstawowym, niezależnie od konfiguracji GCM: uruchamiają się tylko po wyzwoleniu, a wyzwalacz opisany w tym przewodniku uruchamia się dopiero po wyrażeniu zgody.
Dlaczego to właśnie kategoria reklamowa zarządza tymi sygnałami zgody?
CookieYes przyporządkowuje swoje kategorie plików cookie do typów zgód GCM. Kategoria „Reklamy” odpowiada ad_storage, ad_user_data, a ad_personalization. Gdy użytkownik wyrazi zgodę na kategorię „Reklamy”, CookieYes aktualizuje wszystkie trzy sygnały na granted. Kategorie „Funkcjonalne”, „Analityczne” i inne są przypisane do różnych sygnałów (functionality_storage, analytics_storage) i nie wpływają na uruchamianie tagów reklamowych.
Podsumowanie
Aby niezawodnie ładować niestandardowe skrypty HTML z reklamami po wyrażeniu zgody w CookieYes, potrzebne są trzy elementy działające razem: tag CMP CookieYes uruchamiany podczas inicjalizacji zgody, wyzwalacz niestandardowego zdarzenia odczytujący plik cookieyes-consent plik cookie w celu advertisement:yesoraz wyraźne wymagania dotyczące zgody ad_storage, ad_user_data, oraz ad_personalization w samym tagu.
Najczęstszym błędem jest połączenie opcji „Wszystkie strony” z „Raz na stronę”, co powoduje, że GTM uruchamia się już podczas zablokowanej próby załadowania strony i nie zostawia nic na moment, kiedy użytkownik faktycznie wyrazi zgodę. Całkowite usunięcie opcji „Wszystkie strony” z wyzwalacza sprawia, że konfiguracja działa niezawodnie.
Jeśli zarządzasz witrynami WordPress z rozbudowanymi konfiguracjami tagów, wymogami zgodności lub ustawieniami GTM, w których liczy się wydajność, nasz zespół ds. wsparcia i konserwacji WordPress zajmuje się tymi integracjami w ramach bieżącego zarządzania witryną. Audyt witryny WordPress może też ujawnić ukryte luki w zakresie zgód lub śledzenia w całym kontenerze GTM. Porozmawiaj z inżynierami IMADO o tym, czego potrzebuje Twoja witryna.

