Berechtigungen für benutzerdefinierte Vorlagen

In diesem Dokument werden die Berechtigungen für benutzerdefinierte Webvorlagen beschrieben.


Jede Berechtigung ist:

  • Von APIs geprüft, für die sie erforderlich sind.
  • Wird in JavaScript in einer Sandbox automatisch erkannt, je nachdem, welche APIs verwendet werden. Dies geschieht, wenn Änderungen im Editor für benutzerdefinierte Vorlagen vorgenommen werden (für eine schnelle Feedbackschleife) und wenn Code kompiliert wird (um zu prüfen, ob die richtigen Berechtigungen erzwungen werden).
  • Kann im Editor für benutzerdefinierte Vorlagen bearbeitet werden, um die Berechtigung zu präzisieren.
  • Kann in JavaScript in Sandbox über die queryPermission API abgefragt werden.

access_globals

Display name (Anzeigename): Zugriff auf globale Variablen

Beschreibung:Ermöglicht den Zugriff auf eine globale Variable (möglicherweise einschließlich sensibler APIs).

Konfiguration:Liste der Schlüssel, auf die zugegriffen werden kann. Jeder Schlüssel ist ein durch Punkte getrennter Pfad. Beispiel: foo.bar Das erste Token in jedem Pfad darf kein vordefinierter Schlüssel auf globaler Browserebene und kein JavaScript-Keyword sein. Hat Kästchen für Lese-, Schreib- und Ausführungszugriff, die den Zugriff steuern.

Erforderlich für: setInWindow, copyFromWindow, callInWindow, createQueue, createArgumentsQueue

Abfragesignatur: queryPermission('access_globals', 'read', <key to read from>) oder queryPermission('access_globals', 'write', <key to write to>) oder queryPermission('access_globals', 'readwrite', <key to read and write>) oder queryPermission('access_globals', 'execute', <key of function to execute>)

Hinweise: Legt fest, ob eine benutzerdefinierte Vorlage globale Werte lesen und/oder in sie schreiben kann.

Beispielcode

const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
  const dataLayerPush = createQueue('dataLayer');
}

access_local_storage

Display name (Anzeigename): Zugriff auf lokalen Speicher

Beschreibung: Ermöglicht den Zugriff auf die angegebenen Schlüssel im lokalen Speicher.

Konfiguration:Liste der lokalen Speicherschlüssel, auf die zugegriffen werden kann. Dies ist ein einfaches Array von Schlüsseln ohne Platzhalter. Kästchen zum Lesen und Schreiben verfügt, die den Zugriff steuern.

Erforderlich für: localStorage

Abfragesignatur: queryPermission('access_local_storage', 'read', <key to read from>) oder queryPermission('access_local_storage', 'write', <key to write to>) oder queryPermission('access_local_storage', 'readwrite', <key to read and write>)

Beispielcode

const queryPermission = require('queryPermission');
const localStorage = require('localStorage');
const key = 'my_key';
if (queryPermission('access_local_storage', 'read', key)) {
  const value = localStorage.getItem(key);
}

access_template_storage

Display name (Anzeigename): Zugriff auf Vorlagenspeicher

Beschreibung: Ermöglicht den Zugriff auf den temporären Speicher für Vorlagen, die für die gesamte Lebensdauer der Seite bestehen bleiben.

Konfiguration: Keine

Erforderlich für: templateStorage

Abfragesignatur: queryPermission('access_template_storage')

Beispielcode

const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
  const value = templateStorage.getItem(key);
}

get_cookies

Anzeigename:Der Cookiewert wird ausgelesen.

Beschreibung: Liest die Werte der Cookies mit dem angegebenen Namen.

Konfiguration:Liste der Namen von Cookies, die gelesen werden dürfen.

Erforderlich für: getCookieValues

Abfragesignatur: queryPermission('get_cookies', <name>)

Hinweis: Legt fest, ob ein Cookie abhängig von seinem Namen gelesen werden kann.

Beispielcode

const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
  cookieValues = getCookieValues(cookieName);
}

get_referrer

Anzeigename:Die Referrer-URL wird gelesen.

Beschreibung: Gewährt Lesezugriff auf eingeschränkte Teile der Referrer-URL.

Konfiguration: Die folgenden booleschen Werte bestimmen, welcher Teil der Referrer-URL gelesen werden kann. Ein bestimmter Teil der Referrer-URL kann nur gelesen werden, wenn der entsprechende Teil true ist. Der Aufrufer kann getReferrerUrl ohne angegebene Komponente aufrufen, um die vollständige Verweis-URL zu erhalten, wenn all diese booleschen Werte auf true festgelegt sind. Wenn kein Wert festgelegt ist, wird der Standardwert all verwendet. Wenn ein Wert festgelegt ist, muss der Wert ein Array von Komponenten sein, bei dem eine Komponente eines der folgenden ist: protocol, host, port, path, query oder extension.

queryKeys:Wenn eine Abfrage ausgewählt ist, kann der Vorlagenautor den Satz von Abfrageschlüsseln, aus denen er lesen kann, weiter einschränken. Dies ist ein einfaches Array von Schlüsseln ohne Platzhalter.

Erforderlich für: getReferrerUrl, getReferrerQueryParameters

Abfragesignatur: queryPermission('get_referrer', <url_component>)

Beispielcode

const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
  referrer = getReferrerUrl('queryParams');
}

get_url

Display name (Anzeigename): Die URL wird gelesen.

Beschreibung:Gibt einen Teil oder die gesamte URL der aktuellen Seite zurück.

Konfiguration:Die folgenden booleschen Werte bestimmen, welcher Teil der URL gelesen werden kann. Ein bestimmter Teil der URL kann nur gelesen werden, wenn der entsprechende Teil wahr ist. Der Aufrufer kann getUrl ohne angegebene Komponente aufrufen, um die gesamte URL nur dann zu erhalten, wenn alle boolesche Werte auf true festgelegt sind. Wenn kein Wert festgelegt ist, wird der Standardwert all verwendet. Wenn ein Wert festgelegt ist, muss der Wert ein Array von Komponenten sein, bei denen eine Komponente eines der folgenden ist: protocol, host, port, path, query, extension oder fragment.

queryKeys:Wenn eine Abfrage ausgewählt ist, kann der Vorlagenautor den Satz von Abfrageschlüsseln, aus denen er lesen kann, weiter einschränken. Dies ist ein einfaches Array von Schlüsseln ohne Platzhalter.

Erforderlich für: getUrl

Abfragesignatur: queryPermission('get_url', <optional url component>, <optional query key>)

Falls angegeben, muss die URL-Komponente entweder 'protocol', 'host', 'port', 'path', 'query', 'extension' oder 'fragment' sein. Wenn keine Berechtigung angegeben ist, wird die Berechtigungsabfrage angefordert, um auf die gesamte URL zuzugreifen.

Falls angegeben, sollte der Abfrageschlüssel das Abfragestringargument sein, das der Vorlagencode lesen möchte.

Hinweise:Steuert, ob eine benutzerdefinierte Vorlage aus dem aktuellen Speicherort lesen kann. Ermöglicht die Beschränkung auf einen bestimmten Teil des Standorts.

Beispielcode

const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
  const gclid = getUrl('query', false, null, 'gclid');
}

inject_hidden_iframe

Anzeigename:Ausgeblendete iFrames werden eingeschleust.

Beschreibung:Ein unsichtbarer iFrame mit einer bestimmten URL wird eingefügt.

Konfiguration: Liste der URL-Muster

Erforderlich für: injectHiddenIframe

Abfragesignatur: queryPermission('inject_hidden_iframe', <url>)

Hinweise:Legt fest, ob und von welchem Ursprung ein unsichtbarer iFrame in eine benutzerdefinierte Vorlage eingefügt werden kann.

Beispielcode

const queryPermission = require('queryPermission');
const injectHiddenIframe = require('injectHiddenIframe');
const url = 'https://www.example.com/iframes';
if (queryPermission('inject_hidden_iframe', url)) {
  injectHiddenIframe(url);
}

inject_script

Anzeigename: Skripts werden eingefügt

Beschreibung:Es wird ein Script in die Seite eingefügt.

Konfiguration: Liste der URL-Muster

Erforderlich für: injectScript

Abfragesignatur: queryPermission('inject_script', <url>)

Hinweise:Legt fest, ob und von welcher Quelle JavaScript in eine benutzerdefinierte Vorlage eingeschleust werden kann.

Beispielcode

const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
  injectScript(url);
}

Logging

Anzeigename: Protokolliert in der Konsole

Beschreibung: Logs in der Entwicklerkonsole und im Vorschaumodus von Google Tag Manager.

Konfiguration:Option zum Aktivieren des Loggings in der Produktion. Standardmäßig ist das Logging nur in der Fehlerbehebung/Vorschau aktiviert. Wenn die Berechtigung verweigert wird, gibt logToConsole keinen Fehler aus, unterdrückt aber die Lognachricht.

Erforderlich für: logToConsole

Abfragesignatur: queryPermission('logging')

Hinweise: Steuert, ob eine benutzerdefinierte Vorlage in der Developer Console protokolliert werden kann.

Beispielcode

const queryPermission = require('queryPermission');
const logToConsole = require('logToConsole');
// Note that it's fine to call log, since the log call will be ignored if
// logging isn't permitted in the current environment.
logToConsole('diagnostic info');

read_data_layer

Anzeigename:Die Datenschicht wird gelesen.

Beschreibung:Liest Daten aus dataLayer.

Konfiguration: Satz von Schlüsselübereinstimmungsausdrücken, bei denen eine Schlüsselübereinstimmung aus einer führenden Reihe von gepunkteten Referenzen mit einem nachgestellten Platzhalter bestehen kann. Schlüsselübereinstimmungsausdrücke bestimmen, welche Eigenschaften aus der Datenschicht gelesen werden können.

Erforderlich für: copyFromDataLayer

Abfragesignatur: queryPermission('read_data_layer', <data layer key to read from>)

Hinweise:Damit wird festgelegt, ob eine benutzerdefinierte Vorlage die Datenschicht auslesen darf.

Beispielcode

const queryPermission = require('queryPermission');
const copyFromDataLayer = require('copyFromDataLayer');
const dlKey = 'foo.bar';
if (queryPermission('read_data_layer', dlKey)) {
  const dlContents = copyFromDataLayer(dlKey);
}

read_character_set

Anzeigename:liest den Zeichensatz des Dokuments vor.

Beschreibung: Liest document.characterSet.

Konfiguration: Keine

Erforderlich für: readCharacterSet

Abfragesignatur: queryPermission('read_character_set')

Hinweise:Legt fest, ob document.characterSet in einer benutzerdefinierten Vorlage gelesen werden kann.

Beispielcode

const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
  const characterSet = readCharacterSet();
}

read_container_data

Anzeigename: Liest Containerdaten

Beschreibung:Liest Daten zum Container.

Konfiguration: Keine

Erforderlich für: getContainerVersion

Abfragesignatur: queryPermission('read_container_data')

Hinweise: Steuert, ob eine benutzerdefinierte Vorlage Daten zum Container lesen kann.

Beispielcode

const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
  version = getContainerVersion();
}

read_event_metadata

Anzeigename:Ereignismetadaten lesen

Beschreibung: Liest Ereignismetadaten in Ereignisrückrufen

Konfiguration: Keine

Erforderlich für: addEventCallback

Abfragesignatur: queryPermission('read_event_metadata')

Hinweise: Steuert, ob eine benutzerdefinierte Vorlage Ereignismetadaten in Callbacks lesen kann.

Beispielcode

const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
  addEventCallback((containerId, eventMetadata) => {
    // Read event metadata.
  });
}

read_title

Anzeigename:Der Dokumenttitel wird gelesen.

Beschreibung: Liest document.title.

Konfiguration: Keine

Erforderlich für: readTitle

Abfragesignatur: queryPermission('read_title')

Hinweise:Legt fest, ob die document.title von einer benutzerdefinierten Vorlage gelesen werden kann.

Beispielcode

const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
  const title = readTitle();
}

send_pixel

Display name (Anzeigename): sendet Pixel

Beschreibung:Sendet eine GET-Anfrage an die angegebene URL. Die Antwort wird nicht verarbeitet.

Konfiguration: Liste der zulässigen URL-Muster.

Erforderlich für: sendPixel

Abfragesignatur: queryPermission('send_pixel', <url>)

Hinweise:Legt fest, ob und an welchen Ursprung eine benutzerdefinierte Vorlage eine GET-Anfrage senden kann.

Beispielcode

const queryPermission = require('queryPermission');
const sendPixel = require('sendPixel');
const url = 'https://www.example.com?foo=3';
if (queryPermission('send_pixel', url)) {
  sendPixel(url);
}

set_cookies

Anzeigename:legt ein Cookie fest

Beschreibung: Legt ein Cookie mit dem angegebenen Namen und den angegebenen Parametern fest.

Konfiguration: Eine Tabelle mit zulässigen Cookienamen mit optionalen Einschränkungen für Name, Domain, Pfad, secure-Attribut und Ablauf.

Erforderlich für: setCookie

Abfragesignatur: queryPermission('set_cookies', <name>, <options>)

Hinweise: Legt fest, ob ein Cookie gespeichert werden kann, und zwar je nach Cookiename, Domain, Pfad, secure-Attribut und Ablaufzeit.

Beispielcode

const queryPermission = require('queryPermission');
const setCookie = require('setCookie');
const options = {
  'domain': 'www.example.com',
  'path': '/',
  'max-age': 60*60*24*365,
  'secure': true
};
if (queryPermission('set_cookies', 'info', options)) {
  setCookie('info', 'xyz', options);
}

write_data_layer

Anzeigename:Damit wird die Datenschicht geschrieben.

Beschreibung: Schreibt Daten in das dataLayer-Objekt.

Konfiguration: Satz von Schlüsselübereinstimmungsausdrücken, bei denen eine Schlüsselübereinstimmung aus einer führenden Reihe von gepunkteten Referenzen mit einem nachgestellten Platzhalter bestehen kann. Schlüsselübereinstimmungsausdrücke bestimmen, welche Attribute in die Datenschicht geschrieben werden können.

Erforderlich für: gtagSet

Abfragesignatur: queryPermission('write_data_layer', <data layer key to write from>)

Hinweise:Damit wird festgelegt, ob eine benutzerdefinierte Vorlage in die Datenschicht schreiben kann.

Beispielcode

const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
  gtagSet({dlKey: 'baz'});
}