Vorlage für den Einwilligungsmodus erstellen

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.

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.

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

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.

  1. Melden Sie sich in Ihrem Google Tag Manager-Konto an.
  2. Wählen Sie im linken Navigationsbereich Vorlagen aus.
  3. Klicken Sie im Bereich Tag-Vorlagen auf Neu.
  1. Wählen Sie den Tab Felder aus, klicken Sie auf Feld hinzufügen > Param-Tabelle.
  2. Ändern Sie den Namen in defaultSettings.
  3. Erweitern Sie das Feld.
  4. Ändern Sie den Anzeigenamen in Default settings.
  5. 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.
  6. 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
  7. Klicken Sie auf Spalte hinzufügen, wählen Sie Texteingabe aus und ändern Sie den Namen in granted.
  8. Maximieren Sie die Spalte und ändern Sie den Anzeigenamen in Granted Consent Types (comma separated).
  9. Klicken Sie auf Spalte hinzufügen, wählen Sie Texteingabe aus und ändern Sie den Namen in denied.
  10. 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:

  1. Klicken Sie auf Feld hinzufügen, wählen Sie Kästchen aus und ändern Sie den Namen des Feldes in ads_data_redaction
  2. Anzeigenamen in Redact Ads Data ändern

Weitere Informationen

Optional: So fügen Sie Unterstützung für die Übergabe von URL-Parametern hinzu:

  1. Klicken Sie auf Feld hinzufügen, wählen Sie Kästchen aus und ändern Sie den Namen des Feldes in url_passthrough
  2. Anzeigenamen in Pass through URL parameters ändern

Weitere Informationen zur Übergabe von URL-Parametern

So fügen Sie den Implementierungscode hinzu:

  1. Öffnen Sie im Vorlageneditor den Tab Code.
  2. Bearbeiten Sie im Codebeispiel unten die Platzhalterfelder.
  3. Kopieren Sie den Code und ersetzen Sie den Boilerplate-Code im Vorlageneditor damit.
  4. 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.

  1. Wählen Sie den Tab Berechtigungen aus und klicken Sie auf Zugriff auf Einwilligungsstatus.
  2. Klicken Sie auf Einwilligungsart hinzufügen.
  3. Klicken Sie auf das Feld und wählen Sie im Drop-down-Menü ad_storage aus.
  4. Klicken Sie das Kästchen Schreiben an.
  5. Klicken Sie auf Hinzufügen.
  6. Wiederholen Sie die Schritte 2 bis 5 für ad_user_data, ad_personalization und analytics_storage Wenn Sie zusätzliche Einwilligungsarten benötigen, fügen Sie diese im auf die gleiche Weise.
  7. Klicken Sie auf Speichern.

So fügen Sie Berechtigungen für den Zugriff auf Cookies hinzu:

  1. Wählen Sie den Tab Berechtigungen aus und klicken Sie auf Cookie-Werte lesen.
  2. 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.
  3. Klicken Sie auf Speichern.

2. Einheitentests erstellen

Weitere Informationen zum Erstellen von Tests für Ihre Vorlage finden Sie unter Tests.

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);
  });
};

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.