10–16 minut

Jak załadować skrypty reklamowe po uzyskaniu zgody „CookieYes” w Google Tag Managerze

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.

Najważniejsze wnioski

  • CookieYes zapisuje wybory użytkownika dotyczące zgody w cookieyes-consent plik cookie; GTM odczytuje je za pomocą zmiennej pliku cookie pierwszej strony
  • Prawidłowym wyzwalaczem jest zdarzenie niestandardowe na cookie_consent_update z warunkiem sprawdzającym, czy advertisement:yes pojawia 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ę „adpersonalization w 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
Kod JavaScript na ciemnym ekranie przedstawiający działanie niestandardowego tagu HTML poza trybem zgody Google

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.

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: denied
  • ad_user_data: denied
  • ad_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.

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.

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:yes

Stan odrzucenia lub częściowego zaakceptowania może wyglądać na przykład tak:

consent:yes,analytics:no,functional:yes,advertisement:no

GTM 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 akcjiWartość
Typ zmiennejPliki cookie pierwszej strony
Nazwa zmiennejZgoda na pliki cookie – „Tak”
Nazwa pliku cookiecookieyes-consent
Dekodowanie pliku cookie za pomocą URINie

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

Pulpit nawigacyjny Google Tag Manager pokazujący konfigurację wyzwalacza zdarzenia niestandardowego dla zgody na pliki cookie

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 akcjiWartość
Typ spustuWydarzenie niestandardowe
Nazwa wyzwalaczaCookieYes: Reklama zatwierdzona
Nazwa wydarzeniacookie_consent_update
Włącz światłoKilka zdarzeń niestandardowych
Zmienna stanu{{CookieYes Consent}}
Operator warunkowyzawiera
Wartość warunkureklama: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.

W konfiguracji tagów otwórz „Ustawienia zgody” i wybierz opcję „Wymagaj dodatkowej zgody na uruchomienie tagu”. Dodaj następujące typy zgody:

  • ad_storage
  • ad_user_data
  • ad_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

Zakładka „Sieć” w przeglądarce i interfejs podglądu GTM do sprawdzania stanów sygnałów trybu zgody

Testowanie wymaga sprawdzenia dwóch ścieżek: ścieżki akceptacji i ścieżki odrzucenia.

KrokAkcjaOczekiwany wynik
1Wyczyść pliki cookie tej strony, otwórz podgląd GTMBrak tagu reklamowego w sekcji „Tags Fired” przy załadowaniu strony
2Załaduj stronę z widocznym banerem zgodycookie_consent_update pożary; tag nie występuje w sekcji „Tags Fired”
3Kliknij „Odrzuć wszystko”cookie_consent_update wyzwolenia; brak tagu w sekcji „Wyzwolone tagi”
4Odśwież stronę; kliknij „Zaakceptuj wszystko”cookie_consent_update pożary; otwórz wydarzenie
5Sprawdź zakładkę „Zgoda” w podglądzie GTMad_storage, ad_userdata, ad_personalization pokaż granted
6Sprawdź tagi użyte podczas tego wydarzeniaW tym miejscu pojawia się baner reklamowy
7Sprawdź kartę „Sieć” w przeglądarceWidoczne żądanie piksela lub skryptu
8Powtó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.

Zbudujmy coś wyjątkowego

Opowiedz nam o swoim projekcie – pomożemy Ci uruchomić szybką, skalowalną i zoptymalizowaną pod SEO platformę WordPress stworzoną z myślą o rozwoju.

Latest articles

Insights on performance, development, and WordPress best practices.