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.
Dlaczego warto używać szablonu tagu do uzyskiwania zgody?
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.
Stan zgody użytkownika i typy zgód
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 |
Tworzenie nowego szablonu zgody
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.
Aby utworzyć szablon zgody:
- Zaloguj się na konto Menedżera tagów Google.
- W menu po lewej stronie kliknij Szablony.
- W panelu Szablony tagów kliknij Nowy.
Aby ustawić domyślne stany zgody użytkownika:
- Wybierz kartę Pola i kliknij Dodaj pole > Tabela z parametrami.
- Zmień nazwę na
defaultSettings
. - Rozwiń pole.
- Zmień wyświetlaną nazwę na
Default settings
. - Kliknij Dodaj kolumnę, wybierz Polecenie tekstowe, zmień nazwę na
region
i zaznacz pole Wymagaj niepowtarzalnych wartości kolumn. - 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. - Kliknij Dodaj kolumnę, wybierz Polecenie wprowadzania tekstu i zmień nazwę na
granted
. - Rozwiń kolumnę i zmień wyświetlaną nazwę na
Granted Consent Types (comma separated)
. - Kliknij Dodaj kolumnę, wybierz Polecenie wprowadzania tekstu i zmień nazwę na
denied
. - Rozwiń kolumnę i zmień wyświetlaną nazwę na
Denied Consent Types (comma separated)
Opcjonalnie: aby dodać obsługę pomijania danych w reklamach:
- Kliknij Dodaj pole, wybierz Pole wyboru i zmień nazwę pola na
ads_data_redaction
- 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:
- Kliknij Dodaj pole, wybierz Pole wyboru i zmień nazwę pola na
url_passthrough
- Zmień wyświetlaną nazwę na
Pass through URL parameters
Dowiedz się więcej o przekazywaniu parametrów adresów URL.
Aby dodać kod implementacji:
- W edytorze szablonów otwórz kartę Kod.
- W poniższym przykładzie kodu wprowadź zmiany w polach obiektów zastępczych.
- Skopiuj kod i zastąp nim kod stały w edytorze szablonów.
- 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.
Aby dodać uprawnienia do zarządzania stanami zgody użytkownika:
- Wybierz kartę Uprawnienia i kliknij Dostęp do stanu zgody użytkownika.
- Kliknij Dodaj typ zgody.
- Kliknij pole i wybierz
ad_storage
z menu. - Zaznacz Zapis.
- Kliknij Dodaj.
- Powtórz kroki 2–5 dla sekcji
ad_user_data
,ad_personalization
ianalytics_storage
Jeśli potrzebujesz dodatkowych rodzajów zgody, dodaj je w w ten sam sposób. - Kliknij Zapisz.
Aby dodać uprawnienia dostępu do plików cookie:
- Wybierz kartę Uprawnienia i kliknij Odczyt wartości plików cookie.
- 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.
- Kliknij Zapisz.
2. Tworzenie testów jednostkowych
Informacje o tworzeniu testów na podstawie szablonu znajdziesz w artykule Testy.
3. Integracja szablonu z rozwiązaniem do uzyskiwania zgody
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);
});
};
Aktualizowanie stanu zgody użytkownika
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.