Dieser Artikel richtet sich an Entwickler, die eine Lösung zur Einwilligungsverwaltung auf Websites, für die Google Tag Manager (GTM) verwendet wird.
Auf dieser Seite werden die Einwilligungsarten in Google Tag Manager vorgestellt und erklärt, wie Sie in Ihre Lösung zur Einwilligungsverwaltung integrieren.
Vorteile einer Tag-Vorlage für die Einwilligung
Wenn Sie eine Tag-Vorlage zur Verfügung stellen, können Nutzer Ihre Einwilligungserklärung ohne Code zu generieren, was Zeit und Mühe spart.
Nutzer können mithilfe einer Vorlage für den Einwilligungsmodus Standardstatus für die Einwilligung festlegen und Einwilligungsentscheidungen von Besuchern an Google Tag Manager zu übermitteln. Dadurch wird eine optimale Google- und Drittanbieter-Tags, die die Einwilligung unterstützen, .
Als Vorlagenersteller können Sie Vorlagen für den Einwilligungsmodus zur internen Verwendung implementieren. oder veröffentlichen Sie sie in der Community-Galerie für Vorlagen, öffentlich zugänglich zu machen. CMP-Anbieter (Consent Management Platforms), Vorlagen für den Einwilligungsmodus können im und lassen Sie die Vorlagen in der Vorlagengalerie-Auswahl anzeigen.
Einwilligungsstatus und Einwilligungsarten
Das Speicherverhalten von Google- und Drittanbieter-Tags wird auf Grundlage einer Einwilligung angepasst.
Status entweder granted
oder denied
. Sie haben integrierte Einwilligungsprüfungen.
für die folgenden Einwilligungsarten:
Einwilligungsart | Beschreibung |
---|---|
ad_storage |
Ermöglicht das Speichern von werbebezogenen Daten wie Cookies |
ad_user_data |
Legt die Einwilligung für das Senden von Nutzerdaten zu Online-Werbezwecken an Google fest. |
ad_personalization |
Legt die Einwilligung für personalisierte Anzeigen fest |
analytics_storage |
Ermöglicht das Speichern von analysebezogenen Daten wie Cookies (z. B. Dauer). |
functionality_storage |
Ermöglicht das Speichern von Daten, die die Funktionen der Website oder App unterstützen wie die Spracheinstellungen. |
personalization_storage |
Ermöglicht das Speichern von Daten für die Personalisierung, z. B. für Videos Empfehlungen. |
security_storage |
Ermöglicht das Speichern von sicherheitsbezogenen Daten, z. B. zur Authentifizierung Funktionen, Betrugsprävention und anderer Nutzerschutz |
Neue Einwilligungsvorlage erstellen
Im Einwilligungsmodus werden die Einwilligungsentscheidungen der Besucher sowie Tag-Einwilligungsprüfungen erfasst damit das Tag-Verhalten entsprechend angepasst wird. Beim Erstellen einer neuen Einwilligung befolgen Sie die Best Practices:
Verwenden Sie die Tag Manager Consent Mode APIs setDefaultConsentState und updateConsentState anstelle von
gtag consent
.Legen Sie sofort nach der Auslösung den Standardstatus für die Einwilligung fest. Verwenden Sie dazu die Initialisierung der Einwilligung – Alle Seiten.
Die CMP muss den Besucher so schnell wie möglich auffordern, seine Einwilligung zu erteilen oder abzulehnen für alle anwendbaren Einwilligungsarten.
Gibt ein Besucher bei der Einwilligungserklärung an, muss die CMP die aktualisierten Einwilligungsstatus.
1. Neue Vorlage erstellen
Bei diesem Implementierungsansatz wird ein Feld in der Vorlage verwendet, das das Feld Standardeinwilligungsstatus. Der Implementierungscode liest das Feld aus, um Standardeinwilligungsstatus bei der Laufzeit. Für den Befehl update versucht Ihr Code, um ein von der Einwilligungslösung festgelegtes Cookie zu lesen, um die Einwilligungsentscheidungen der Besucher zu speichern. Außerdem richtest du einen Callback für
updateConsentState
ein, der sich um den Fall kümmert. Ein Besucher hat noch keine Einwilligungsauswahl getroffen oder möchte dies ändern. Zustimmung einholen.
So erstellen Sie eine Einwilligungsvorlage:
- Melden Sie sich in Ihrem Google Tag Manager-Konto an.
- Wählen Sie im linken Navigationsbereich Vorlagen aus.
- Klicken Sie im Bereich Tag-Vorlagen auf Neu.
So legen Sie den Standardstatus für die Einwilligung fest:
- Wählen Sie den Tab Felder aus, klicken Sie auf Feld hinzufügen > Param-Tabelle.
- Ändern Sie den Namen in
defaultSettings
. - Erweitern Sie das Feld.
- Ändern Sie den Anzeigenamen in
Default settings
. - Klicken Sie auf Spalte hinzufügen, wählen Sie Texteingabe aus, ändern Sie den Namen in
region
und Klicken Sie das Kästchen Spaltenwerte müssen eindeutig sein an. - Maximieren Sie die Spalte und ändern Sie den Anzeigenamen in
Region (leave blank to have consent apply to all regions)
. Die Anweisung in Klammern Dokumentation für Ihre Vorlagennutzer. Weitere Informationen über Standardeinstellungen für die Einwilligung für verschiedene Regionen einrichten - Klicken Sie auf Spalte hinzufügen, wählen Sie Texteingabe aus und ändern Sie den Namen in
granted
. - Maximieren Sie die Spalte und ändern Sie den Anzeigenamen in
Granted Consent Types (comma separated)
. - Klicken Sie auf Spalte hinzufügen, wählen Sie Texteingabe aus und ändern Sie den Namen in
denied
. - Maximieren Sie die Spalte und ändern Sie den Anzeigenamen in
Denied Consent Types (comma separated)
Optional: So fügen Sie Unterstützung für das Entfernen von Anzeigendaten hinzu:
- Klicken Sie auf Feld hinzufügen, wählen Sie Kästchen aus und ändern Sie den Namen des Feldes in
ads_data_redaction
- Anzeigenamen in
Redact Ads Data
ändern
Optional: So fügen Sie Unterstützung für die Übergabe von URL-Parametern hinzu:
- Klicken Sie auf Feld hinzufügen, wählen Sie Kästchen aus und ändern Sie den Namen des Feldes in
url_passthrough
- Anzeigenamen in
Pass through URL parameters
ändern
So fügen Sie den Implementierungscode hinzu:
- Öffnen Sie im Vorlageneditor den Tab Code.
- Bearbeiten Sie im Codebeispiel unten die Platzhalterfelder.
- Kopieren Sie den Code und ersetzen Sie den Boilerplate-Code im Vorlageneditor damit.
- Speichern Sie die Vorlage.
// 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();
Konfigurieren Sie als Nächstes die Berechtigungen für den Zugriff Cookies.
So fügen Sie Berechtigungen zum Verwalten des Einwilligungsstatus hinzu:
- Wählen Sie den Tab Berechtigungen aus und klicken Sie auf Zugriff auf Einwilligungsstatus.
- Klicken Sie auf Einwilligungsart hinzufügen.
- Klicken Sie auf das Feld und wählen Sie im Drop-down-Menü
ad_storage
aus. - Klicken Sie das Kästchen Schreiben an.
- Klicken Sie auf Hinzufügen.
- Wiederholen Sie die Schritte 2 bis 5 für
ad_user_data
,ad_personalization
undanalytics_storage
Wenn Sie zusätzliche Einwilligungsarten benötigen, fügen Sie diese im auf die gleiche Weise. - Klicken Sie auf Speichern.
So fügen Sie Berechtigungen für den Zugriff auf Cookies hinzu:
- Wählen Sie den Tab Berechtigungen aus und klicken Sie auf Cookie-Werte lesen.
- Geben Sie unter Spezifisch die Namen der Cookies ein, die für den Code erforderlich sind. ein Name pro Zeile, um die Optionen für die Einwilligung festzulegen.
- Klicken Sie auf Speichern.
2. Einheitentests erstellen
Weitere Informationen zum Erstellen von Tests für Ihre Vorlage finden Sie unter Tests.
3. Vorlage in die Einwilligungslösung einbinden
Der folgende Code zeigt ein Beispiel für die Integration dieser Vorlage. mit dem Code für Ihre Lösung zur Einwilligungsverwaltung, indem Sie einen Listener hinzufügen:
// 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);
});
};
Einwilligungsstatus aktualisieren
Nachdem ein Websitebesucher seine Einwilligungsoptionen angegeben hat, in der Regel über Wenn Sie mit einem Einwilligungsbanner interagieren, sollte der Vorlagencode updateConsentState mit der API aktualisiert.
Das folgende Beispiel zeigt den updateConsentState
-Aufruf für einen Besucher, der
hat angegeben, dass sie allen Speicherarten zugestimmt haben. Auch in diesem Beispiel werden hartcodierte
Werte für granted
, sollten aber in der Praxis zur Laufzeit bestimmt werden.
anhand der über die CMP eingeholten Einwilligung des Besuchers.
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'
});
Regionsspezifisches Verhalten
So legen Sie Standardstatus für die Einwilligung fest, die für Besucher aus bestimmten Regionen gelten:
eine Region angeben (gemäß ISO
3166-2).
Vorlage. Die Verwendung von Regionswerten ermöglicht Vorlagennutzern die Einhaltung regionaler
ohne Verlust von Informationen von Besuchern außerhalb dieser Regionen. Wann?
keine Region in einem setDefaultConsentState
-Befehl angegeben ist, wird der Wert
gilt für alle anderen Regionen.
Im folgenden Beispiel wird der Standardstatus für analytics_storage
auf
"denied
" für Besucher aus Spanien und Alaska. Für analytics_storage
wird Folgendes festgelegt:
granted
für alle anderen:
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'analytics_storage': 'denied',
'region': ['ES', 'US-AK']
});
setDefaultConsentState({
'analytics_storage': 'granted'
});
Die genaueste Angabe hat Vorrang
Wenn auf derselben Seite zwei Standard-Einwilligungsbefehle mit Werten für eine Region auftreten
und Unterregion, wird diejenige mit einer spezifischeren Region wirksam. Für
Beispiel: Sie haben ad_storage
für die Region US
auf 'granted'
gesetzt und
ad_storage
für die Region US-CA
, ein Besucher aus Kalifornien, auf 'denied'
festgelegt
wird die spezifischere US-CA
-Einstellung wirksam.
Region | ad_storage |
Verhalten |
---|---|---|
USA | 'granted' |
Gilt für Nutzer in den USA, die nicht in Kanada sind |
US-CA | 'denied' |
Gilt für Nutzer in Kanada (USA) |
Ohne Angabe | 'granted' |
Verwendet den Standardwert 'granted' . In diesem Beispiel
gilt für Nutzer außerhalb der USA oder Kanada
|
Zusätzliche Metadaten
Mit der gtagSet API können Sie die folgenden optionalen Parameter festlegen:
Diese APIs sind nur in der Sandbox-Umgebung der Google Tag Manager-Vorlage verfügbar.
Informationen zu Anzeigenklicks, Client-ID und Sitzungs-ID in URLs übergeben
Gelangt ein Besucher nach dem Klick auf eine Anzeige auf die Website eines Werbetreibenden, Informationen zur Anzeige können als Anfrage an die Landingpage-URLs angehängt werden. . Um die Conversion-Genauigkeit zu verbessern, wird diese Information in der Regel in Google-Tags gespeichert Informationen in eigenen Cookies auf der Domain des Werbetreibenden
Wenn ad_storage
jedoch denied
ist, werden diese Informationen von Google-Tags nicht gespeichert
lokal. Um in diesem Fall die Qualität der Analyse von Anzeigenklicks zu verbessern, können Werbetreibende
optional Informationen zu Anzeigenklicks über URL-Parameter seitenübergreifend mit einem
die sogenannte URL-Passthrough.
Wenn analytics_storage
auf „Abgelehnt“ gesetzt ist, kann URL-Passthrough verwendet werden
Ereignis- und sitzungsbasierte Analysen (einschließlich Conversions) ohne
Cookies auf verschiedenen Seiten.
Die folgenden Bedingungen müssen erfüllt sein, um URL-Passthrough zu verwenden:
- Auf der Seite sind Google-Tags vorhanden, bei denen die Einwilligung der Nutzer berücksichtigt wird.
- Die Website hat die Verwendung der URL-Passthrough-Funktion aktiviert.
- Der Einwilligungsmodus ist auf der Seite implementiert.
- Der ausgehende Link verweist auf dieselbe Domain wie die Domain der aktuellen Seite.
- Die URL enthält einen gclid/dclid-Wert (nur Google Ads- und Floodlight-Tags).
Ihre Vorlage sollte es dem Vorlagennutzer ermöglichen zu konfigurieren, ob er möchte diese Einstellung aktivieren. Der folgende Vorlagencode wird verwendet, um url_passthrough auf true:
gtagSet('url_passthrough', true);
Anzeigendaten entfernen
Wenn ad_storage
abgelehnt wird, werden keine neuen Cookies für Werbung gesetzt
zu verstehen. Außerdem werden Drittanbieter-Cookies, die zuvor auf google.com und
doubleclick.net nicht verwendet. An Google gesendete Daten enthalten weiterhin die
vollständige Seiten-URL, einschließlich Informationen zu Anzeigenklicks in den URL-Parametern
Um Ihre Anzeigendaten weiter zu entfernen, wenn ad_storage
abgelehnt wird, legen Sie Folgendes fest:
ads_data_redaction
auf "true" gesetzt.
Anzeigenklick, wenn ads_data_redaction
„true“ ist und ad_storage
abgelehnt wird
Kennungen, die in Netzwerkanfragen von Google Ads und Floodlight-Tags gesendet werden, werden
entfernt.
gtagSet('ads_data_redaction', true);
Entwickler-ID
Wenn Sie ein CMP-Anbieter mit einer von Google ausgestellten Entwickler-ID sind, verwenden Sie Folgendes: , um dies so früh wie möglich in Ihrer Vorlage festzulegen.
Sie benötigen nur dann eine Entwickler-ID, wenn Ihre Implementierung auf mehreren Websites von unabhängigen Unternehmen oder Rechtssubjekten. Wenn die Implementierung nur von einer Website oder Einheit verwendet wird, eine Entwickler-ID beantragen.
gtagSet('developer_id.<your_developer_id>', true);
Dokumentation für Ihre Nutzer zur Verfügung stellen
Ihre Nutzer verwenden Ihre Einwilligungsvorlage, um ein Tag einzurichten, über das Einwilligung geben. Stellen Sie Ihren Nutzern eine Dokumentation zur Verfügung, in der Folgendes am besten erklärt wird: Best Practices:
- Standardeinstellungen für die Einwilligung in der Tabelle Einstellungen festlegen
- Standardeinstellungen für die Einwilligung für verschiedene Regionen einrichten, indem Sie zusätzliche Tabellenzeilen.
- Lösen Sie das Tag beim Trigger Initialisierung der Einwilligung – Alle Seiten aus.
Nächste Schritte
Wenn Sie Ihre Vorlage allen Tag Manager-Nutzern zur Verfügung stellen möchten, laden Sie sie in den Community-Galerie für Vorlagen.