Tworzenie szablonu trybu uzyskiwania zgody

Ten artykuł jest przeznaczony dla deweloperów, którzy używają rozwiązania do zarządzania zgodą użytkowników które korzystają z Menedżera tagów Google.

Na tej stronie omawiamy rodzaje zgody w Menedżerze tagów Google i pokazujemy, jak: zintegrować je z Twoim rozwiązaniem do zarządzania zgodą użytkowników.

Gdy udostępnisz szablon tagu, użytkownicy będą mogli zintegrować Twoją zgodę do rozwiązania bezkodowego, oszczędzając sporo czasu i wysiłku.

Użytkownicy mogą ustawiać domyślne stany zgody użytkownika za pomocą szablonu trybu uzyskiwania zgody. przekazywania Menedżera tagów Google o wyborach użytkownika dotyczących zgody na przetwarzanie danych. Zapewnia to optymalną działania tagów Google i tagów innych firm, które obsługują uzyskiwanie zgody na przetwarzanie danych, i trybu uzyskiwania zgody.

Jako twórca szablonów możesz wdrożyć szablony trybu uzyskiwania zgody do użytku wewnętrznego lub opublikuj je w Galerii szablonów, aby utworzyć ich dostępność publicznie. Dostawcy platform do zarządzania zgodą użytkowników (CMP), którzy oferują szablony trybu uzyskiwania zgody mogą być wyświetlane w naszym trybie uzyskiwania zgody, dokumentacji, a selektor Galerii szablonów zawiera szablony.

.

Tagi Google i tagi innych firm dostosowują sposób przechowywania danych na podstawie zgody użytkowników stan granted lub denied. Mogą mieć wbudowane mechanizmy sprawdzania zgody użytkowników. w przypadku dowolnego z tych rodzajów zgody:

Rodzaj zgody Opis
ad_storage Umożliwia przechowywanie danych (np. plików cookie) dotyczących reklam.
ad_user_data Określa stan zgody na wysyłanie danych użytkownika do Google na potrzeby reklam online.
ad_personalization Określa stan zgody na reklamy spersonalizowane.
analytics_storage Umożliwia przechowywanie danych, np. plików cookie, dotyczących statystyk (np. wizyt czas trwania).
functionality_storage Umożliwia przechowywanie danych, które obsługują funkcje strony lub aplikacji takich jak ustawienia języka.
personalization_storage Umożliwia przechowywanie danych związanych z personalizacją, np. filmów o zaleceniach.
security_storage Umożliwia przechowywanie danych związanych z zabezpieczeniami, takimi jak uwierzytelnianie funkcje, zapobieganie oszustwom i inne mechanizmy ochrony użytkowników

Tryb uzyskiwania zgody śledzi wybory użytkowników dotyczące zgody na przetwarzanie danych i mechanizmy sprawdzania zgody za pomocą tagów aby zadbać o odpowiednie dostosowanie działania tagów. Podczas tworzenia nowej zgody postępuj zgodnie ze sprawdzonymi metodami:

  • użyć interfejsów API trybu uzyskiwania zgody setDefaultConsentState i updateConsentState zamiast gtag consent.

  • Ustaw domyślne stany zgody użytkownika od razu po uruchomieniu za pomocą Reguła Inicjacja zgody – Wszystkie strony.

  • Platforma CMP musi jak najszybciej poprosić użytkownika o udzielenie zgody lub jej odmowę w przypadku wszystkich odpowiednich rodzajów zgody.

  • Gdy użytkownik wskaże swój wybór dotyczący zgody, platforma CMP musi przekazać zaktualizowaną stanu zgody użytkownika.

1. Utwórz nowy szablon

W ramach tej metody implementacji wykorzystuje jedno pole w szablonie do przechowywania elementu domyślny stan zgody użytkownika. Kod implementacji odczytuje to pole, aby ustawić domyślnego stanu zgody użytkownika w momencie działania. W przypadku polecenia aktualizacji kod próbuje odczytuje plik cookie ustawiony przez rozwiązanie do uzyskiwania zgody użytkownika na zapisywanie wyborów użytkownika dotyczących zgody na przetwarzanie danych. Musisz też skonfigurować oddzwonienie do użytkownika updateConsentState na potrzeby obsługi zgłoszenia. w których użytkownicy nie dokonali jeszcze wyboru zgody lub nie zdecydowali się ich zgody.

  1. Zaloguj się na konto Menedżera tagów Google.
  2. W menu po lewej stronie kliknij Szablony.
  3. W panelu Szablony tagów kliknij Nowy.
  1. Wybierz kartę Pola i kliknij Dodaj pole > Tabela z parametrami.
  2. Zmień nazwę na defaultSettings.
  3. Rozwiń pole.
  4. Zmień wyświetlaną nazwę na Default settings.
  5. Kliknij Dodaj kolumnę, wybierz Polecenie tekstowe, zmień nazwę na region i zaznacz pole Wymagaj niepowtarzalnych wartości kolumn.
  6. Rozwiń kolumnę i zmień wyświetlaną nazwę na Region (leave blank to have consent apply to all regions). Wyrażenie w nawiasie ma postać dokumentacji dla użytkowników szablonów. Więcej informacji o określić domyślne ustawienia zgody użytkownika dla różnych regionów.
  7. Kliknij Dodaj kolumnę, wybierz Polecenie wprowadzania tekstu i zmień nazwę na granted.
  8. Rozwiń kolumnę i zmień wyświetlaną nazwę na Granted Consent Types (comma separated).
  9. Kliknij Dodaj kolumnę, wybierz Polecenie wprowadzania tekstu i zmień nazwę na denied.
  10. Rozwiń kolumnę i zmień wyświetlaną nazwę na Denied Consent Types (comma separated)

Opcjonalnie: aby dodać obsługę pomijania danych w reklamach:

  1. Kliknij Dodaj pole, wybierz Pole wyboru i zmień nazwę pola na ads_data_redaction
  2. Zmień wyświetlaną nazwę na Redact Ads Data

Dowiedz się więcej o działaniu plików cookie dzięki pomijaniu danych reklam

Opcjonalnie: aby dodać obsługę przekazywania parametrów adresu URL:

  1. Kliknij Dodaj pole, wybierz Pole wyboru i zmień nazwę pola na url_passthrough
  2. Zmień wyświetlaną nazwę na Pass through URL parameters

Dowiedz się więcej o przekazywaniu parametrów adresów URL.

Aby dodać kod implementacji:

  1. W edytorze szablonów otwórz kartę Kod.
  2. W poniższym przykładzie kodu wprowadź zmiany w polach obiektów zastępczych.
  3. Skopiuj kod i zastąp nim kod stały w edytorze szablonów.
  4. Zapisz szablon.
// The first two lines are optional, use if you want to enable logging
const log = require('logToConsole');
log('data =', data);
const setDefaultConsentState = require('setDefaultConsentState');
const updateConsentState = require('updateConsentState');
const getCookieValues = require('getCookieValues');
const callInWindow = require('callInWindow');
const gtagSet = require('gtagSet');
const COOKIE_NAME = 'Your_cookie_name';
/*
 *   Splits the input string using comma as a delimiter, returning an array of
 *   strings
 */
const splitInput = (input) => {
  return input.split(',')
      .map(entry => entry.trim())
      .filter(entry => entry.length !== 0);
};
/*
 *   Processes a row of input from the default settings table, returning an object
 *   which can be passed as an argument to setDefaultConsentState
 */
const parseCommandData = (settings) => {
  const regions = splitInput(settings['region']);
  const granted = splitInput(settings['granted']);
  const denied = splitInput(settings['denied']);
  const commandData = {};
  if (regions.length > 0) {
    commandData.region = regions;
  }
  granted.forEach(entry => {
    commandData[entry] = 'granted';
  });
  denied.forEach(entry => {
    commandData[entry] = 'denied';
  });
  return commandData;
};
/*
 *   Called when consent changes. Assumes that consent object contains keys which
 *   directly correspond to Google consent types.
 */
const onUserConsent = (consent) => {
  const consentModeStates = {
    ad_storage: consent['adConsentGranted'] ? 'granted' : 'denied',
    ad_user_data: consent['adUserDataConsentGranted'] ? 'granted' : 'denied',
    ad_personalization: consent['adPersonalizationConsentGranted'] ? 'granted' : 'denied',
    analytics_storage: consent['analyticsConsentGranted'] ? 'granted' : 'denied',
    functionality_storage: consent['functionalityConsentGranted'] ? 'granted' : 'denied',
    personalization_storage: consent['personalizationConsentGranted'] ? 'granted' : 'denied',
    security_storage: consent['securityConsentGranted'] ? 'granted' : 'denied',
  };
  updateConsentState(consentModeStates);
};
/*
 *   Executes the default command, sets the developer ID, and sets up the consent
 *   update callback
 */
const main = (data) => {
  /*
   * Optional settings using gtagSet
   */
  gtagSet('ads_data_redaction', data.ads_data_redaction);
  gtagSet('url_passthrough', data.url_passthrough);
  gtagSet('developer_id.your_developer_id', true);
  // Set default consent state(s)
  data.defaultSettings.forEach(settings => {
    const defaultData = parseCommandData(settings);
  // wait_for_update (ms) allows for time to receive visitor choices from the CMP
    defaultData.wait_for_update = 500;
    setDefaultConsentState(defaultData);
  });

  // Check if cookie is set and has values that correspond to Google consent
  // types. If it does, run onUserConsent().
  const settings = getCookieValues(COOKIE_NAME);
  if (typeof settings !== 'undefined') {
    onUserConsent(settings);
  }
  /**
   *   Add event listener to trigger update when consent changes
   *
   *   References an external method on the window object which accepts a
   *   function as an argument. If you do not have such a method, you will need
   *   to create one before continuing. This method should add the function
   *   that is passed as an argument as a callback for an event emitted when
   *   the user updates their consent. The callback should be called with an
   *   object containing fields that correspond to the five built-in Google
   *   consent types.
   */
  callInWindow('addConsentListenerExample', onUserConsent);
};
main(data);
data.gtmOnSuccess();

Następnie skonfiguruj uprawnienia dostępu do stanu zgody i plików cookie.

  1. Wybierz kartę Uprawnienia i kliknij Dostęp do stanu zgody użytkownika.
  2. Kliknij Dodaj typ zgody.
  3. Kliknij pole i wybierz ad_storage z menu.
  4. Zaznacz Zapis.
  5. Kliknij Dodaj.
  6. Powtórz kroki 2–5 dla sekcji ad_user_data, ad_personalization i analytics_storage Jeśli potrzebujesz dodatkowych rodzajów zgody, dodaj je w w ten sam sposób.
  7. Kliknij Zapisz.

Aby dodać uprawnienia dostępu do plików cookie:

  1. Wybierz kartę Uprawnienia i kliknij Odczyt wartości plików cookie.
  2. W sekcji Specific (Określone) wpisz nazwy poszczególnych plików cookie, których potrzebuje Twój kod. aby poznać wybory użytkownika dotyczące zgody, po jednej nazwie w wierszu.
  3. Kliknij Zapisz.

2. Tworzenie testów jednostkowych

Informacje o tworzeniu testów na podstawie szablonu znajdziesz w artykule Testy.

Poniższy kod ilustruje jeden przykład tego, jak można zintegrować ten szablon z kodem rozwiązania do zarządzania zgodą użytkowników, dodając odbiornik:

// Array of callbacks to be executed when consent changes
const consentListeners = [];

/**
 *   Called from GTM template to set callback to be executed when user consent is provided.
 *   @param {function} Callback to execute on user consent
 */
window.addConsentListenerExample = (callback) => {
  consentListeners.push(callback);
};

/**
 *   Called when user grants/denies consent.
 *   @param {Object} Object containing user consent settings.
 */
const onConsentChange = (consent) => {
  consentListeners.forEach((callback) => {
    callback(consent);
  });
};

Po tym, jak użytkownik witryny wyrazi zgodę, zwykle wchodzi w interakcję z banerem z prośbą o zgodę na przetwarzanie danych, kod szablonu powinien zaktualizować stan zgody odpowiednio za pomocą interfejsu API updateConsentState.

.

Poniższy przykład pokazuje wywołanie updateConsentState w przypadku użytkownika, który wyraziło zgodę na wszystkie typy pamięci masowej. W tym przykładzie zastosowano kodowanie na stałe wartości w polach granted, ale w praktyce powinny być one określane w czasie działania na podstawie zgody użytkownika zebranej przez platformę CMP.

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'ad_user_data': 'granted',
  'ad_personalization': 'granted',
  'analytics_storage': 'granted',
  'functionality_storage': 'granted',
  'personalization_storage': 'granted',
  'security_storage': 'granted'
});

Informacje o zachowaniu w zależności od regionu

Aby ustawić domyślne stany zgody, które mają zastosowanie do użytkowników z określonych obszarów, w szablonie określ region (zgodnie z ISO 3166-2). Użycie wartości regionów pozwala użytkownikom szablonów na zachowanie zgodności z danymi regionalnymi bez utraty informacji od użytkowników spoza tych regionów. Kiedy w poleceniu setDefaultConsentState nie określono regionu, wartość dotyczy wszystkich innych regionów.

Poniższe ustawienia ustawiają na przykład stan domyślny usługi analytics_storage na denied dla odwiedzających z Hiszpanii i Alaski, a ustawia analytics_storage jako granted w przypadku wszystkich innych:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'analytics_storage': 'denied',
  'region': ['ES', 'US-AK']
});
setDefaultConsentState({
  'analytics_storage': 'granted'
});

Pierwszeństwo ma pierwszeństwo

Jeśli 2 domyślne polecenia dotyczące zgody znajdują się na tej samej stronie z wartościami dotyczącymi regionu i podregionu, zacznie obowiązywać ten o konkretnym regionie. Dla: na przykład jeśli ustawisz ad_storage na 'granted' dla regionu US i Pole ad_storage zostało ustawione na 'denied' dla regionu US-CA, użytkownik z Kalifornii zostanie zastosowane bardziej szczegółowe ustawienie US-CA.

Region ad_storage Zachowanie
Stany Zjednoczone 'granted' Dotyczy użytkowników ze Stanów Zjednoczonych spoza Kanady
Kanada, USA 'denied' Dotyczy użytkowników z Kanady (USA)
Nie określono 'granted' Używa wartości domyślnej 'granted'. W tym przykładzie dotyczy użytkowników, którzy nie znajdują się w USA ani w Kanadzie

Dodatkowe metadane

Za pomocą interfejsu API gtagSet możesz ustawiać te parametry opcjonalne:

Te interfejsy API są dostępne tylko w środowisku piaskownicy szablonu Menedżera tagów Google.

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

Gdy użytkownik trafia na stronę reklamodawcy po kliknięciu reklamy, informacje o reklamie mogą być dołączane do adresów URL stron docelowych jako zapytanie. . Tagi Google zwykle przechowują te dane, aby zwiększyć dokładność konwersji we własnych plikach cookie w domenie reklamodawcy.

Jeśli jednak ad_storage ma wartość denied, tagi Google nie zapiszą tych informacji lokalnie. Aby poprawić jakość pomiaru kliknięć reklam w takim przypadku, reklamodawcy mogą opcjonalnie przekazywać informacje o kliknięciu reklamy w parametrach adresu URL między stronami za pomocą parametru funkcję przekazywania adresów URL.

I podobnie, jeśli analytics_storage ma wartość „Odmowa”, można używać przekazywania adresu URL wysyłania statystyk dotyczących zdarzeń i sesji (w tym konwersji) bez pliki cookie na różnych stronach.

Aby korzystać z przekazywania adresu URL, muszą być spełnione te warunki:

  • Na stronie znajdują się tagi Google wymagające zgody.
  • W witrynie włączono funkcję przekazywania adresu URL.
  • Na stronie wdrożono tryb uzyskiwania zgody.
  • Link wychodzący odnosi się do tej samej domeny, co domena bieżącej strony.
  • Adres URL zawiera identyfikator gclid/dclid (tylko tagi Google Ads i Floodlight).

Szablon powinien pozwalać użytkownikowi szablonu określić, czy Użytkownik chce włączyć to ustawienie. Następujący kod szablonu służy do ustawiania: url_passthrough na true:

gtagSet('url_passthrough', true);

Usuwanie danych reklam

Jeśli zasada ad_storage jest odrzucana, nie są tworzone nowe pliki cookie na potrzeby wyświetlania reklam w celach informacyjnych. Ponadto pliki cookie innych firm ustawione wcześniej na google.com oraz doubleclick.net nie będzie używany. Dane wysyłane do Google nadal będą obejmować pełnego adresu URL strony, łącznie z informacjami o kliknięciu reklamy w parametrach adresu URL.

Aby dodatkowo pomijać dane reklam po odrzuceniu prośby ad_storage, ustaw ads_data_redaction na wartość prawda.

Jeśli zasada ads_data_redaction ma wartość prawda, a zasada ad_storage jest odrzucona, kliknięcie reklamy identyfikatory wysyłane w żądaniach sieciowych przez tagi Google Ads i Floodlight będą usunięte.

gtagSet('ads_data_redaction', true);

Identyfikator dewelopera

Jeśli jesteś dostawcą platformy CMP i masz identyfikator dewelopera wydany przez Google, użyj tych informacji: , aby ustawić ją jak najwcześniej w szablonie.

Identyfikator dewelopera potrzebujesz tylko wtedy, gdy Twoja implementacja będzie używana wielu witryn przez niepowiązane firmy lub podmioty. Jeśli implementacja będzie używana przez jedną witrynę lub podmiot, nie uzyskać identyfikator dewelopera.

gtagSet('developer_id.<your_developer_id>', true);

Udostępnij dokumentację użytkownikom

Użytkownicy będą używać Twojego szablonu zgody, aby skonfigurować tag zbierający dane o użytkownikach zgody na wykorzystanie danych. Dostarcz użytkownikom dokumentację, która najlepiej wyjaśnia następujące kwestie: metody:

  • Jak określić domyślne ustawienia zgody użytkownika w tabeli Ustawienia.
  • Jak skonfigurować domyślne ustawienia zgody użytkownika dla różnych regionów, dodając dodatkowe wiersze tabeli.
  • Aktywuj tag dla reguły Inicjacja zgody – Wszystkie strony.

Dalsze kroki

Jeśli chcesz udostępnić swój szablon wszystkim użytkownikom Menedżera tagów, prześlij go do Galeria szablonów.