Informacia
Treść

Menedżer tagów Google (GTM)

UWAGA: Jeśli chcesz dostarczyć consentmanager kod przez GTM, tylko ręczny kod blokujący może być dostarczony za pomocą TagManager. Jeśli chcesz korzystać z automatycznego blokowania kodu, musisz wstawić kod CMP bezpośrednio na swojej stronie internetowej.

UWAGA: System prześle informacje do window.dataLayer. GTM oferuje opcję zmiany nazwy tej zmiennej na inną wartość. W takim przypadku dane nie będą już odbierane przez GTM. Dlatego upewnij się, że nie zmienisz nazwy zmiennej innej niż dataLayer.

Informacje ogólne

W celu wykorzystania informacji o zgodzie z Google Tag Manager (GTM), CMP przekaże tak zwane warstwy danych do GTM. CMP utworzy następujące zmienne warstwy danych:

Zmienna

Opis Projektu

cmpRODO

0 jeśli RODO nie ma zastosowania, 1 jeśli RODO ma zastosowanie
przestarzałe: zamiast tego użyj cmpRegulation

cmpCCPA

0, jeśli CCPA nie ma zastosowania, 1, jeśli ma zastosowanie CCPA
przestarzałe: zamiast tego użyj cmpRegulation

cmpRegulacja

Ciąg nazwy rozporządzenia (np. RODO, CCPA itp.)

cmpCiąg zgody

Ustawia ciąg zgody IAB

cmpConsentDostawcy

Ustawia rozdzieloną przecinkami listę identyfikatorów dostawców, którzy uzyskali zgodę, np. ,3,7,s22,31,c88 (lista zaczyna się i kończy przecinkiem)

cmpGoogleVendorsConsult

Takie same jak cmpConsentVendors, ale dołączone są identyfikatory Google ATP.

cmpConsentCele

Ustawia rozdzieloną przecinkami listę celów, które uzyskały zgodę, np. ,1,2,s3,s4,s5, (lista zaczyna się i kończy przecinkiem)

cmpCurrentStatus

Bieżąca nazwa stanu zdarzenia cmp. Możliwe wartości: nieznany, ładowanie, zgoda, uzasadniony interes
Uwaga: Od czasu do czasu mogą być dodawane dodatkowe statusy

cmpOstatniStatus

Ostatnia/poprzednia nazwa statusu zdarzenia cmp. Możliwe wartości: nieznane, ładowanie, ładowanie, zgoda, uzasadniony interes, wyłączone, ukryte, widoczne, tcloaded, ładowanie zgody, akcja użytkownika.
Uwaga: Od czasu do czasu mogą być dodawane dodatkowe statusy
Uwaga: dotyczy to również WSZYSTKICH nazw stanów TCF i GPP, np.sectionChange.*, cmpDisplayStatus.* itd.

cmpStatus ładowania

Nazwa statusu sekwencji ładowania (stub, loading, loading, error)

cmpDisplayStatus

Nazwa statusu wyświetlania warstwy zgody (widoczny, ukryty, wyłączony)

zgoda istnieje

Status zgody istnieje (prawda/fałsz). Należy pamiętać, że dzieje się tak natychmiast po wyświetleniu warstwy zgody i/lub w przypadkach, gdy zgoda nie jest wymagana.

wybór użytkownika istnieje

Istnieje status zgody oparty na wyborze użytkownika (prawda/fałsz), np. użytkownik kliknął akceptację, odrzucenie lub zapisanie niestandardowych ustawień.

Zdarzenie „cmpEvent” w połączeniu z powyższymi zmiennymi może być następnie użyte jako wyzwalacz dla menedżera tagów, aby wiedzieć, czy i kiedy uruchomić kody.

Integracja przez szablon GTM

  1. Zaloguj się do Menedżera tagów Google i kliknij Tagi > Nowy > Konfiguracja tagów
  2. Z menu Typ tagu wybierz Funkcje szablonów CMP społeczności > Consentmanager CMP



  3. Kliknij na Dodaj do obszaru roboczego > Dodaj



  4. Uzyskaj CMP-ID, CDN i Host ze swojego konta od Menu > CMP > Pobierz kody



  5. Wstaw swój CMP-ID, CDN i Host do naszego szablonu GTM i zapisz.

    Wstaw bez protokołu "https://"!


    gtm_inputs.jpg

  6. Ustaw tag z kodem CMP tak, aby uruchamiał się przy każdej odsłonie strony:

 

UWAGA: Ze względu na wytyczne Google musimy najpierw włączyć Consent Mode. Może to być mylące, gdy klienci integrują nasz szablon i np. nie widzą rzeczywistych liczb Google Analytics. Jeśli NIE chcesz używać Consent Mode, nie zapomnij dezaktywować funkcji w szablonie.

 

Integracja ręczna

Jeśli nie chcesz korzystać z szablonu GTM lub receptury GTM (patrz wyżej), możesz ręcznie wstawić kod CMP w swoim TagManagerze. Dlatego skopiuj półautomatyczny / ręczny kod blokujący z Menu > Pobierz kod i wklej go do Menedżera tagów jako nowy tag. Ustaw tag, aby był uruchamiany z najwcześniejszym możliwym zdarzeniem (PageView lub wcześniej). Nie ustawiaj warunku/wykluczenia dla tagu.

Aktualizacja tagów i warunków

Uwaga: Jeśli Tryb zgody Google jest włączona, możesz użyć wbudowanych zmiennych zgody w celu filtrowania tagów. W większości przypadków jest to łatwiejsze w porównaniu z aktualizacją warunków wyzwalania. Więcej informacji o trybie zgody Google znajdziesz tutaj.

Aby wyświetlać niektóre kody tylko po wyrażeniu zgody, wykonaj następujące kroki:

  1. Utwórz zmienne w GTM: W GTM przejdź do Zmienne > Nowe i kliknij konfiguruj:

  2. Wybierz typ zmiennej Zmienne strony > Zmienna warstwy danych, utwórz potrzebne zmienne. Zwykle będziesz potrzebować przynajmniej tej zmiennej cmpConsentVendors. Jeśli to konieczne, dodaj więcej zmiennych z powyższej tabeli:

  3. Powtórz powyższe kroki dla wszystkich innych wymaganych zmiennych (zwykle cmpGDPR, cmpConsentVendors, cmpConsentPurposes, ...)

  4. Iść do Wyzwalacze> Nowe i kliknij konfiguruj:



  5. Użyj nazwy wydarzenia cmpEvent i dodaj do niego niestandardowe zdarzenia:

     

  6. Dla każdego zdarzenia konieczna jest co najmniej jedna reguła:  cmpConsentVendors contains ...  (lub cmpConsentPurposes contains ... ).

  7. Ustaw reguły wydarzenia na cmpConsentVendors contains ,x, gdzie x jest identyfikatorem dostawcy. Identyfikatory dostawców można znaleźć w menu Dostawcy/Biała lista:


    Ważne: Zawsze używaj tylko jednego dostawcy na wyzwalacz (... contains ,x, i uwaga ... contains ,x,y,z,). Jeśli pracujesz z wieloma dostawcami, utwórz wiele wyzwalaczy i jeden wyzwalacz na dostawcę.
    Ważne: Zawsze używaj przecinka przed i po identyfikatorze dostawcy (np cmpConsentVendors contains ,x,i uwaga cmpConsentVendors contains x)

     

  8. Powtórz powyższy krok dla każdego dostawcy i utwórz nowy wyzwalacz dla każdego dostawcy

  9. Zastosuj regułę do tagów i upewnij się, że tagi nie są uruchamiane ze zdarzeniem pageView, ale tylko z cmpEvent:



    Przykład dla Google Analytics:



    Ważne: Upewnij się, że wyzwalacz jest tylko wyzwalacz dla każdego używanego tagu. Nie łącz reguł z innymi regułami/zdarzeniami, takimi jak „Wszystkie strony” lub „Po wczytaniu strony” itd.

Przykład: blokowanie Google Analytics za pomocą Google TagManager (GTM)

Oto kilka przykładowych zrzutów ekranu, jak wyglądałaby konfiguracja w celu zablokowania Google Analytics w przypadku braku zgody.

Cyngiel

Uruchom Google Analytics na wszystkich stronach po wyrażeniu zgody:

etykieta

Tag Google Analytics z przypisanymi wyzwalaczami (drugi wyzwalacz jest opcjonalny):

Jak zablokować kod Google TagManager w przypadku braku zgody?

UWAGA: Jeśli ty nie chcesz zablokować sam GTM, ale tylko tagi uruchamiane przez GTM i korzystając z automatycznego blokowania, upewnij się, że TagManager nie jest blokowany poprzez wstawienie atrybutu data-cmp-ab="1" do kodu TagManager.

Jeśli chcesz zablokować kody nie tylko w Menedżerze tagów, ale także w samym Menedżerze tagów, możesz to zrobić, wykonując następujące kroki:

Twój kod GTM będzie wyglądał tak:

<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-ABCDEF');</script>

Aby umożliwić consentmanager.net CMP do blokowania i włączania kodu tylko za zgodą, będziesz musiał zmienić kod w następujący sposób: (zobacz zmiany w <script ...> część kodu)

<script data-cmp-vendor="s905" type="text/plain" class="cmplazyload" >(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
        new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
        j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
        'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-ABCDEF');</script>

Prosimy pamiętać, że automatyczny kod blokujący może uniemożliwić przeglądarce wykonanie kodu GTM, ale może nie być w stanie powstrzymać przeglądarki przed pobraniem kodów źródłowych GTM. Dlatego może się zdarzyć, że robot zaalarmuje Cię, że GTM jest ładowany bez zgody. Jeśli chcesz mieć pewność, że GTM nie zostanie załadowany bez zgody, MUSISZ zmienić kod GTM w sposób opisany powyżej.

Jak uniemożliwić wielokrotne uruchamianie Menedżera tagów Google?

CMP uruchomi warstwę danych cmpEvent za każdym razem, gdy informacje o zgodzie zostaną odświeżone. Dzieje się tak, gdy strona jest ładowana i informacje o zgodzie znajdują się w pliku cookie odwiedzających, gdy wyświetlana jest warstwa zgody, a odwiedzający dokonuje wyboru lub gdy odwiedzający ponownie wyświetla warstwę zgody i zmienia ustawienia. W tym ostatnim przypadku może się zdarzyć, że odwiedzający kilka razy otworzy i zamknie warstwę zgody. Za każdym razem, gdy warstwa zostanie zamknięta, warstwa danych zostanie uruchomiona, a Menedżer tagów Google może wyświetlić niektóre tagi lub uruchomić zliczanie Google Analytics. Aby zapobiec wielokrotnemu uruchamianiu tagów na stronie, wykonaj następujące czynności:

  1. Utwórz nowy tag dla każdego tagu, którego ponowne uruchomienie chcesz uniemożliwić. Użyj niestandardowego kodu HTML i wstaw następujący kod:

    <script> window.prevent_duplicate_googleanalytics = true; </script>

  2. Użyj tej samej reguły dla tego nowego tagu, co w tagu oryginalnym.

  3. Utwórz nową zmienną typu custom javascript i użyj następującego kodu:
    function (){ return ("prevent_duplicate_googleanalytics" in window); }

  4. Dodaj kolejny warunek do istniejącej reguły za pomocą utworzonej wcześniej zmiennej („Zmienna XXX równa się fałsz”):

Jak obsługiwać dataLayer lub kolejność zdarzeń?

W niektórych przypadkach tagi powinny być uruchamiane tylko wtedy, gdy wystąpiło więcej niż zdarzenie, np. określona akcja użytkownika i wyrażono zgodę. Aby połączyć istniejące wydarzenie z ConsentManager cmpEvent, wykonaj następujące kroki:

  1. Edytuj tag i usuń z niego wychodzącą regułę.
  2. Kliknij ikonę, aby przypisać nowy wyzwalacz do tagu, a następnie utwórz nowy wyzwalacz:

  3. Nadaj nowemu wyzwalaczowi nazwę i wybierz typ wyzwalacza „Grupa wyzwalaczy”:

  4. Dodaj istniejący wyzwalacz i wyzwalacz cmpEvent do grupy wyzwalaczy:

  5. Ustaw warunki wyzwalania w taki sam sposób, jak w przypadku normalnych wyzwalaczy (np. dodaj cmpGDPR equals 1 jako warunek).
  6. Zapisz grupę wyzwalaczy i przypisz ją do tagu.

Wstrzymywanie/odkładanie wydarzeń dataLayer do czasu wyrażenia zgody

Jako alternatywę dla grup wyzwalaczy możesz użyć consentmanagerwłasną funkcję dataLayer, wywołując window.cmp_gtag(...)  zamiast Google'a window.gtag(...) lub przesyłanie danych do cmp_dataLayer zamiast dataLayer. Wszystkie połączenia do cmp_gtag(...) zostanie automatycznie wstrzymane i odroczone do momentu dokonania przez użytkownika wyboru (zaakceptować, odrzucić lub niestandardowy). Po dokonaniu wyboru CMP automatycznie przekaże wszystkie połączenia do window.gtag(...) które zostały wcześniej wysłane window.cmp_gtag(...) (i wszystkie kolejne połączenia). Aby móc skorzystać z tej funkcji prosimy o dodanie na swojej stronie (przed pierwszym połączeniem) następującego kodu:

<script>
if(!('cmp_dataLayer' in window)){window.cmp_dataLayer = [];}
if(!('cmp_gtag' in window)){ window.cmp_gtag = function (){window.cmp_dataLayer.push(arguments);}}
</script>

Następnie możesz po prostu zmienić wszystkie połączenia z gtag(...) do cmp_gtag(...) i dataLayer do cmp_dataLayer a nasz system zajmie się resztą.

Przykład z warstwą danych

Przed:

<script>
 var gtmInitialData = {"general":{"language":"en","country":"GB","page_type":"LISTPAGE"}};        
 window.dataLayer = window.dataLayer || [];
 window.dataLayer.push(gtmInitialData);
</script>

Po:

<script>
if(!('cmp_dataLayer' in window)){window.cmp_dataLayer = [];}
var gtmInitialData = {"general":{"language":"en","country":"GB","page_type":"LISTPAGE"}}; 
window.cmp_dataLayer.push(gtmInitialData);
</script>

Ważne: Do nie zastąp nazwę dataLayer w wywołaniu inicjującym GTM lub Analytics. Na przykład nie zastępuj „dataLayer” w tym kodzie:

<script>
 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});
 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;
 j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);}
 )(window,document,'script','dataLayer','GTM-...'); /* do NOT replace dataLayer with cmp_dataLayer */
</script>
Przykład z tagiem gtag

Przed:

<script>       
 window.gtag = function (){dataLayer.push(arguments);};
 window.gtag("myEvent",{...some event data ...});
</script>

Po:

<script>       
 if(!('cmp_dataLayer' in window)){window.cmp_dataLayer = [];}
 if(!('cmp_gtag' in window)){ window.cmp_gtag = function (){window.cmp_dataLayer.push(arguments);}}
 window.cmp_gtag("myEvent",{...some event data ...});
</script>

Webinarium/poradnik dotyczący wdrożenia GTM

UWAGA: Obecnie możemy zaoferować ten samouczek wideo tylko w Niemiecki. Konfiguracja GTM rozpoczyna się około minuty 05:00 - 22:00. Jeśli nie korzystasz z trybu zgody Google, możesz pominąć resztę filmu.

 

Powrót do góry