Konfigurowanie trybu uzyskiwania zgody w witrynach

Ta strona jest przeznaczona dla programistów, którzy mają w swojej witrynie własne rozwiązanie do uzyskiwania zgody użytkowników i chcą zintegrować je z trybem uzyskiwania zgody. Wprowadzenie do trybu uzyskiwania zgody znajdziesz w artykule Omówienie trybu uzyskiwania zgody. Jeśli do uzyskiwania zgody użytkowników używasz platformy do zarządzania zgodą użytkowników (CMP), dowiedz się więcej o konfigurowaniu trybu uzyskiwania zgody za pomocą platformy CMP.

Tryb uzyskiwania zgody możesz wdrożyć w sposób podstawowy lub zaawansowany. Sprawdź wytyczne firmy, aby wybrać metodę implementacji i ustawić wartości domyślne. Dowiedz się więcej o podstawowym i zaawansowanym trybie uzyskiwania zgody.

Zanim zaczniesz

Przed wdrożeniem trybu uzyskiwania zgody weź pod uwagę te kwestie:

  • Jeśli używasz Menedżera tagów i chcesz zachować własny baner, zalecamy wczytywanie go za pomocą kontenera Menedżera tagów. Aby to zrobić, musisz utworzyć szablon trybu uzyskiwania zgody. Możesz też użyć szablonu trybu uzyskiwania zgody z Galerii szablonów.

  • Jeśli używasz gtag.js, upewnij się, że tag Google jest zainstalowany na każdej stronie witryny. Kod trybu uzyskiwania zgody zostanie dodany do każdej strony Twojej witryny.

Aby skonfigurować tryb uzyskiwania zgody, musisz:
  1. Zanim użytkownik wyrazi zgodę: ustaw domyślny stan zgody.
  2. Aktualizuj stan zgody użytkownika na podstawie interakcji użytkownika z ustawieniami dotyczącymi uzyskiwania zgody.

Ustaw wartość domyślną dla każdego używanego typu zgody. Domyślnie nie są ustawione żadne wartości trybu uzyskiwania zgody.

Sprawdzoną metodą jest określenie zakresu domyślnych ustawień dotyczących zgody na przetwarzanie danych w regionach, w których wyświetlasz użytkownikom banery z prośbą o zgodę na przetwarzanie danych. Pomaga to zachować pomiary w regionach, w których wymagane są banery z prośbą o zgodę na przetwarzanie danych, a tagi Google odpowiednio dostosowują swoje działanie. Zapobiega to też utracie danych pomiarowych tam, gdzie nie ma banerów z prośbą o zgodę na przetwarzanie danych lub gdzie nie mają one zastosowania. Zobacz zachowanie w poszczególnych regionach.

Menedżer tagów

Jeśli używasz Menedżera tagów Google, utwórz własny szablon za pomocą interfejsów API do zarządzania zgodą użytkowników Menedżera tagów. Skorzystaj z tego przykładu jako punktu wyjściowego.

Do zarządzania stanami zgody użytkownika używaj interfejsów API Menedżera tagówsetDefaultConsentState i updateConsentState. Interfejs gtagSet API może służyć do opcjonalnego ustawiania ads_data_redaction i przekazywania adresu URL.

gtag.js

Aby dostosować domyślne możliwości pomiarowe, wywołaj polecenie gtag('consent', 'default', ...) na każdej stronie witryny przed poleceniami, które wysyłają dane pomiarowe (np. config lub event).

Aby np. domyślnie ustawić brak zgody użytkownika w przypadku wszystkich parametrów:

gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});

Opcjonalnie: integracja z asynchronicznymi platformami do zarządzania zgodą użytkowników

Jeśli baner wczytuje się asynchronicznie, jego działanie może nie zawsze wyprzedzać tagi Google. Aby sobie z tym poradzić, określ wartość wait_for_update wraz z wartością w milisekundach, aby kontrolować, jak długo należy czekać przed wysłaniem danych.

Jeśli na przykład chcesz domyślnie odrzucać parametr ad_storage na określonej stronie, ale zezwolić platformie CMP na aktualizowanie stanu zgody, użyj parametru wait_for_update. W poniższym kodzie wartość domyślna ad_storage to denied, a narzędzie do uzyskiwania zgody ma 500 milisekund na wywołanie funkcji gtag('consent', 'update', ...) przed uruchomieniem tagów:

  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'wait_for_update': 500
  });

Menedżer tagów

Jeśli używasz szablonu trybu uzyskiwania zgody, zgoda użytkownika powinna być automatycznie aktualizowana, gdy wejdzie on w interakcję z banerem.

Jeśli samodzielnie tworzysz szablon trybu uzyskiwania zgody, używaj interfejsów API Menedżera tagów do zarządzania stanami zgody użytkownika setDefaultConsentState i updateConsentState. Za pomocą interfejsu gtagSet API możesz opcjonalnie ustawić odpowiednie wartości parametrów ads_data_redaction i przekazywania adresu URL.

gtag.js

Aby wysłać stan zgody użytkownika, użyj polecenia update. Tryb uzyskiwania zgody nie zapisuje wyborów użytkowników dotyczących zgody, więc aktualizuj stan zgody, gdy tylko użytkownik wejdzie w interakcję z platformą do zarządzania zgodą. Gdy użytkownik wyrazi zgodę, zapisz jego wybór i wywołaj odpowiednie polecenie aktualizacji na kolejnych stronach.

Musisz zadbać o to, aby dla wszystkich typów zgody były ustawione prawidłowe wartości. Pełne informacje o obsługiwanych typach znajdziesz w dokumentacji API.

Poniższy przykład kodu pokazuje, jak zaktualizować stan zgody na granted, gdy użytkownik wyrazi zgodę na wszystkie opcje:

<!-- Send consent updates when users interact with your consent banner -->
<script>
function allConsentGranted() {
  gtag('consent', 'update', {
    'ad_user_data': 'granted',
    'ad_personalization': 'granted',
    'ad_storage': 'granted',
    'analytics_storage': 'granted'
  });
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Accept all</button>
  ...
</body>

Użytkownicy mogą zmienić ustawienia zgody po pierwszej interakcji. Użytkownik, który początkowo wyraził zgodę, może później ją wycofać w panelu ustawień witryny.

Menedżer tagów

Jeśli używasz szablonu trybu uzyskiwania zgody, zgoda użytkownika powinna być aktualizowana automatycznie, gdy wejdzie on w interakcję z banerem lub panelem ustawień.

Jeśli samodzielnie tworzysz szablon trybu uzyskiwania zgody, użyj interfejsu API updateConsentState, aby zaktualizować stan zgody użytkownika, gdy użytkownik potwierdzi nowe preferencje.

gtag.js

Aby w dowolnym momencie zaktualizować stan zgody, użyj polecenia update. To polecenie jest używane w przypadku każdej zmiany stanu zgody użytkownika, w tym zmiany z 'granted' na 'denied'.

Przykład: wycofanie zgody

Jeśli użytkownik wcześniej wyraził zgodę na analytics_storage i ad_storage, ale teraz chce ją wycofać, wyślij wywołanie update, które odzwierciedla jego nowy wybór:

// User updates their settings to deny consent
gtag('consent', 'update', {
  'analytics_storage': 'denied',
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied'
});

Uwagi o wdrażaniu:

  1. Trwałość: upewnij się, że zaktualizowane wybory użytkownika dotyczące zgody na przetwarzanie danych są zapisywane, np. w własnym pliku cookie lub w pamięci lokalnej, aby przy kolejnych wczytaniach strony ustawiać prawidłowy stan.
  2. Czas: wywołaj polecenie aktualizacji, gdy tylko użytkownik potwierdzi nowe preferencje w interfejsie ustawień zgody w Twojej witrynie.

Przykład wdrożenia

W przykładzie poniżej domyślnie ustawiono kilka parametrów trybu uzyskiwania zgody na wartość denied. Gdy użytkownik wybierze opcję zgody, odpowiednie parametry zostaną zaktualizowane do wartości granted.

Menedżer tagów

W przypadku witryn korzystających z Menedżera tagów zalecamy używanie platformy CMP do obsługi aktualizacji wyborów użytkowników dotyczących zgody. Platformy CMP udostępniają szablony w Galerii szablonów społeczności, aby umożliwić tworzenie tagów do zarządzania trybem uzyskiwania zgody.

Jeśli nie możesz użyć szablonu, możesz zaktualizować kod na stronie w podany niżej sposób. Kolejność kodu jest tutaj kluczowa. Jeśli kod zgody jest wywoływany w nieprawidłowej kolejności, domyślne ustawienia zgody nie będą działać.

<script>
  // Define dataLayer and the gtag function.
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  // Set default consent to 'denied' as a placeholder
  // Determine actual values based on your own requirements
  gtag('consent', 'default', {
    'ad_storage': 'denied',
    'ad_user_data': 'denied',
    'ad_personalization': 'denied',
    'analytics_storage': 'denied'
  });
</script>

<!-- Google Tag Manager -->
<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-XXXXXX');</script>
<!-- End Google Tag Manager -->

<!-- Send consent updates when users interact with your consent banner -->
<script>
  function allConsentGranted() {
    gtag('consent', 'update', {
      'ad_user_data': 'granted',
      'ad_personalization': 'granted',
      'ad_storage': 'granted',
      'analytics_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Accept all</button>
  ...
</body>

gtag.js

Kolejność kodu ma tu kluczowe znaczenie. Jeśli kod zgody jest wywoływany w nieprawidłowej kolejności, domyślne ustawienia zgody nie będą działać. W zależności od wymagań biznesowych szczegóły mogą się różnić, ale ogólnie kod powinien być wykonywany w tej kolejności:

  1. Wczytaj tag Google. To jest domyślny kod fragmentu. Domyślny fragment kodu należy zaktualizować (patrz poniżej), aby zawierał wywołanie funkcji gtag('consent', 'default', ...).

  2. Wczytaj rozwiązanie do uzyskiwania zgody. Jeśli rozwiązanie do uzyskiwania zgody użytkowników wczytuje się asynchronicznie, zapoznaj się z artykułem Integracja z asynchronicznymi platformami do zarządzania zgodą użytkowników, aby dowiedzieć się, jak zapewnić prawidłową kolejność.

  3. Jeśli rozwiązanie do uzyskiwania zgody nie obsługuje tego polecenia, wywołaj je gtag('consent', 'update', ...) po tym, jak użytkownik wyrazi zgodę.

<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}

// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
  'ad_storage': 'denied',
  'ad_user_data': 'denied',
  'ad_personalization': 'denied',
  'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="//www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}

  gtag('js', new Date());
  gtag('config', 'TAG_ID');
</script>

<!-- Send consent updates when users interact with your consent banner -->
<script>
  function allConsentGranted() {
    gtag('consent', 'update', {
      'ad_user_data': 'granted',
      'ad_personalization': 'granted',
      'ad_storage': 'granted',
      'analytics_storage': 'granted'
    });
  }
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
  ...
  <button onclick="allConsentGranted()">Accept all</button>
  ...
</body>

W ramach stałego budowania ekosystemu reklamy cyfrowej zapewniającego ochronę prywatności zaostrzamy egzekwowanie polityki w zakresie zgody użytkownika z UE.

Dowiedz się więcej o aktualizacjach trybu uzyskiwania zgody w przypadku ruchu w Europejskim Obszarze Gospodarczym.

Użytkownicy trybu uzyskiwania zgody muszą wysyłać 2 nowe parametry oprócz ad_storage i analytics_storage:

Nazwa pola Dozwolone wartości Opis
ad_user_data 'granted' | 'denied' Określa stan zgody na wysyłanie do Google danych użytkownika związanych z reklamami.
ad_personalization 'granted' | 'denied' Określa stan zgody na reklamy spersonalizowane.

Zaawansowane funkcje uzyskiwania zgody obejmują:

  • Określ, którym usługom Google udostępniasz dane, korzystając z interfejsu tagu Google.
  • Ustaw zachowanie dla regionu geograficznego.
  • Przekazywanie informacji o kliknięciu reklamy, identyfikatora klienta i identyfikatora sesji w adresach URL, gdy użytkownicy nie wyrazili zgody na pliki cookie.
  • Całkowicie usuwać informacje o reklamach, gdy użytkownicy nie wyrażą zgody na pliki cookie dotyczące reklam.

Działanie w poszczególnych regionach

Aby ustawić domyślne stany zgody użytkownika, które będą stosowane do użytkowników z określonych obszarów, w poleceniu gtag domyślne ustawienie zgody podaj region (zgodnie z ISO 3166-2). Używanie wartości regionu pozwala zachować zgodność z przepisami regionalnymi.

Możesz ustawić domyślne wartości dla poszczególnych regionów, a potem określić inne domyślne wartości dla wszystkich pozostałych regionów. Polecenie domyślnego ustawienia zgody w tagu gtag bez parametru regionu ustawia domyślne ustawienie zgody dla wszystkich użytkowników, których nie obejmuje inne polecenie dotyczące konkretnego regionu.

Menedżer tagów

Jeśli do utworzenia tagu używasz szablonu, może on zawierać elementy sterujące umożliwiające ustawienie zachowania zależnego od regionu. Jeśli tworzysz tag szablonu samodzielnie, więcej informacji o konfigurowaniu zachowania w określonych regionach znajdziesz w artykule Tworzenie szablonu trybu uzyskiwania zgody.

gtag.js

W tym przykładzie ustawiamy wartość analytics_storage na denied w przypadku użytkowników z Hiszpanii i Alaski, a wartość ad_storage na denied w przypadku wszystkich użytkowników.

  gtag('consent', 'default', {
    'analytics_storage': 'denied',
    'region': ['ES', 'US-AK']
  });

  gtag('consent', 'default', {
    'ad_storage': 'denied'
  });

Pierwszeństwo ma najbardziej szczegółowy parametr

Jeśli na tej samej stronie występują 2 domyślne polecenia dotyczące zgody użytkownika z wartościami dla regionu i podregionu, zastosowane zostanie polecenie z bardziej szczegółowym regionem. Jeśli na przykład atrybut ad_storage ma wartość granted dla regionu US, a atrybut ad_storage ma wartość denied dla regionu US-CA, w przypadku użytkownika z Kalifornii zastosowane zostanie bardziej szczegółowe ustawienie US-CA. W tym przykładzie oznacza to, że użytkownik z Kalifornii w Stanach Zjednoczonych będzie miał ustawioną wartość ad_storage na denied.

Region ad_storage Zachowanie
US 'granted' Dotyczy użytkowników w Stanach Zjednoczonych, którzy nie mieszkają w Kalifornii.
US-CA 'denied' Dotyczy użytkowników w Stanach Zjednoczonych i Kanadzie
Nie określono 'granted' Używa wartości domyślnej 'granted'. W tym przykładzie dotyczy to osób odwiedzających, które nie znajdują się w Stanach Zjednoczonych ani w Kalifornii.

Przekazywanie w adresach URL informacji o kliknięciu reklamy, identyfikatorze klienta i identyfikatorze sesji

Gdy użytkownik wejdzie do Twojej witryny po kliknięciu reklamy, informacje o tej reklamie mogą zostać dodane do adresów URL stron docelowych jako parametr zapytania. Aby zwiększyć dokładność kluczowych zdarzeń, te informacje są zwykle przechowywane we własnych plikach cookie w Twojej domenie.

Jeśli jednak parametr ad_storage jest ustawiony na denied, te informacje nie będą przechowywane lokalnie. Aby poprawić jakość pomiaru kliknięć reklam, gdy ad_storage ma wartość denied, możesz opcjonalnie przekazywać informacje o kliknięciach reklam za pomocą parametrów adresu URL na różnych stronach, korzystając z przekazywania adresu URL.

Podobnie, jeśli parametr analytics_storage ma wartość denied, przekazywanie adresu URL może służyć do wysyłania na różnych stronach danych analitycznych opartych na zdarzeniach i sesjach (w tym kluczowych zdarzeń) bez użycia plików cookie.

Aby korzystać z przekazywania adresu URL, musisz spełniać te warunki:

  • Tag Google lub tag miejsca docelowego uwzględnia stan zgody użytkownika i znajduje się na stronie.
  • Reklamodawca włączył funkcję przekazywania adresu URL.
  • Na stronie jest wdrożony tryb uzyskiwania zgody.
  • Link wychodzący odnosi się do tej samej domeny co domena bieżącej strony.
  • W adresie URL występuje identyfikator GCLID lub DCLID (tylko tagi Google Ads i tag Floodlight).

Menedżer tagów

Jeśli do utworzenia tagu używasz szablonu, może on zawierać elementy sterujące umożliwiające ustawienie przekazywania adresu URL. Jeśli tworzysz szablon tagu samodzielnie, więcej informacji o ustawianiu przekazywania adresu URL za pomocą gtagSetinterfejsu API szablonu niestandardowego znajdziesz w artykule Tworzenie szablonu trybu uzyskiwania zgody.

Możesz też użyć tych opcji, aby ustawić go w tagach docelowych, tagu Google lub tagu śledzenia konwersji.

W przypadku tagów miejsc docelowych i tagu Google:

  1. W obszarze roboczym otwórz menu Tagi.
  2. Zmień obecny tag Google lub tag miejsca docelowego albo utwórz nowy.
  3. W ustawieniach Konfiguracja dodaj nowy parametr:
    • Nazwa: url_passthrough
    • Wartość: true
  4. Zapisz tag i opublikuj kontener.

W przypadku tagów Google Ads i Floodlight połączonych za pomocą tagu Google:

Aby włączyć tę funkcję, utwórz (lub użyj istniejącego) tag łączący konwersje i upewnij się, że zaznaczone jest pole Włącz opcję łączenia w adresach URL wszystkich stron. Instrukcje tworzenia tagu łączącego konwersje znajdziesz w sekcji podstawowa konfiguracja.

Możesz też ustawić parametr url_passthrough na wartość true na każdej stronie witryny przed fragmentem kodu instalacji Menedżera tagów Google.

window.dataLayer = window.dataLayer || [];
function gtag(){window.dataLayer.push(arguments);}
gtag('set', 'url_passthrough', true);

gtag.js

Aby włączyć tę funkcję, ustaw parametr url_passthrough na true. Dodaj to polecenie do domyślnego fragmentu kodu przed wszystkimi poleceniami config:

gtag('set', 'url_passthrough', true);

Gdy korzystasz z przekazywania adresu URL, do linków może zostać dołączonych kilka parametrów zapytania, gdy użytkownicy poruszają się po stronach w Twojej witrynie:

  • gclid
  • dclid
  • gclsrc
  • _gl
  • wbraid

Aby uzyskać najlepsze wyniki, upewnij się, że:

  1. Przekierowania w Twojej witrynie przekazują wszystkie poprzednie parametry zapytania.
  2. Narzędzia analityczne ignorują te parametry w adresach URL stron.
  3. Te parametry nie zakłócają działania witryny.

Usuwanie danych reklam

Gdy parametr ad_storage ma wartość denied, nowe pliki cookie nie będą ustawiane do celów reklamowych. Dodatkowo pliki cookie innych firm ustawione wcześniej na stronach google.com i doubleclick.net nie będą używane, z wyjątkiem celów związanych ze spamem i oszustwami. Dane wysyłane do Google nadal będą zawierać pełny adres URL strony, w tym informacje o kliknięciu reklamy w parametrach adresu URL.

Menedżer tagów

Jeśli do tworzenia tagu używasz szablonu, może on zawierać elementy sterujące, które pozwalają na dalsze redagowanie danych reklam. Jeśli tworzysz tag szablonu samodzielnie, więcej informacji o redagowaniu danych o reklamach znajdziesz w artykule Tworzenie szablonu trybu uzyskiwania zgody.

gtag.js

Aby dodatkowo zredagować dane reklam, gdy ad_storage ma wartość denied, ustaw ads_data_redaction na true.

gtag('set', 'ads_data_redaction', true);

Gdy ads_data_redaction ma wartość true, a ad_storage ma wartość denied, identyfikatory kliknięć reklam wysyłane w żądaniach sieciowych przez tagi Google Ads i tagi Floodlight będą usuwane. Żądania sieciowe będą też wysyłane przez domenę bez plików cookie innych firm, np. pagead2.googlesyndication.com.

Typowe problemy

Zapoznaj się z poniższymi typowymi problemami, które mogą wystąpić podczas implementacji.

Jeśli wdrożysz zaawansowany tryb uzyskiwania zgody, na stronie, na której użytkownik wyraża zgodę, musisz wywołać polecenie aktualizacji.

Gdy strona wczytuje się z odmową zgody, a potem wczytuje się ponownie po zmianie zgody, tagi Google mogą utracić kluczowe punkty danych z pierwotnej strony. Kolejne raporty mogą być niepełne.

Na przykład w Google Analytics w przypadku wielu sesji objętych zgodą użytkowników może brakować zdarzenia session_start.

Aby uniknąć tego problemu, wywołuj polecenie aktualizacji za każdym razem, gdy zmieni się stan zgody użytkownika.

W niektórych przypadkach, gdy typ zgody zmieni się z odmowy na zgodę, tagi Google mogą wysyłać pomiary na podstawie tej zmiany. Jeśli polecenie aktualizacji zostanie wywołane podczas zamykania strony, przeglądarka może anulować ten ruch w sieci, zanim się zakończy. Kolejne raporty mogą być niepełne.

Jeśli to możliwe, zadbaj o to, aby polecenia aktualizacji były rejestrowane na długo przed zamknięciem strony.

Dalsze kroki

Ustawienia starszych tagów

Jeśli używasz tagów starszego typu, np. ga.js, analytics.js lub conversion.js, przejdź na tag gtag.js lub zacznij korzystać z Menedżera tagów Google.

Więcej informacji o ustawieniach prywatności innych starszych tagów znajdziesz w tych dokumentach: