Berechtigungen für benutzerdefinierte Vorlagen

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


Für jede Berechtigung gilt:

  • Wird von APIs geprüft, die sie erfordern.
  • Wird automatisch in JavaScript in einer Sandbox erkannt, je nachdem, welche APIs verwendet werden. Dies geschieht, wenn Änderungen im Editor für benutzerdefinierte Vorlagen vorgenommen werden (für eine schnelle Feedback-Schleife) und wann der Code kompiliert wird (um zu prüfen, ob der korrekte Berechtigungen erzwungen werden).
  • Kann im Editor für benutzerdefinierte Vorlagen bearbeitet werden, um die Berechtigung zu präzisieren.
  • In JavaScript-Sandbox über die queryPermission API abfragbar.

access_globals

Display name (Anzeigename): Mit dieser Variablen wird auf globale Variablen zugegriffen.

Beschreibung: Ermöglicht den Zugriff auf eine globale Variable (ggf. einschließlich sensible APIs).

Konfiguration:Liste der Schlüssel, auf die zugegriffen werden kann. Jede Taste ist ein Punkt separaten Pfad. Beispiel: foo.bar. Das erste Token in jedem Pfad darf nicht ein vordefinierter Schlüssel für den globalen Browserbereich oder ein JavaScript-Keyword. Hat gelesen, schreiben und ausführen, die den Zugriff steuern.

Erforderlich von:setInWindow, copyFromWindow, callInWindow, createQueue und 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: Steuert, ob eine benutzerdefinierte Vorlage in globalen Werte.

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): Greift auf lokalen Speicher zu

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 Verfügt über Kontrollkästchen zum Lesen und Schreiben, den Zugriff regeln.

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): Auf den Vorlagenspeicher zugreifen

Beschreibung: Ermöglicht den Zugriff auf den temporären Speicher für Vorlagen, die Folgendes ausführen können: bleiben für die gesamte Lebensdauer der Seite erhalten.

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

Display name (Anzeigename): Liest Cookiewert(e)

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

Hinweise: Legt abhängig von seinem Namen fest, ob ein Cookie 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

Display name (Anzeigename): Die Referrer-URL wird gelesen.

Beschreibung:Erlaubt Lesezugriff auf eingeschränkte Bereiche der Referrer-URL.

Konfiguration:Mit den folgenden booleschen Werten wird bestimmt, welcher Teil der Referrer-URL gelesen werden. Ein bestimmter Teil der Referrer-URL kann nur gelesen werden, wenn der entsprechende Teil ist true. Der Aufrufer kann getReferrerUrl aufrufen, ohne dass dafür eine bestimmte Komponente angegeben ist. Die vollständige Verweis-URL abrufen, wenn alle booleschen Werte auf true gesetzt sind Wenn kein Wert festgelegt ist, ist der Standardwert all. Wenn ein Wert festgelegt ist, muss der Wert ein Array von Komponenten, bei denen eine Komponente eine der folgenden ist: protocol, host, port, path, query oder extension.

queryKeys: Bei Auswahl der Abfrage kann der Vorlagenersteller den Satz an Abfrageschlüssel, aus denen sie lesen können. Dies ist ein einfaches Array von Schlüsseln, Platzhalter verwenden.

Erforderlich von: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): Liest URL

Beschreibung:Gibt die URL der aktuellen Seite teilweise oder vollständig zurück.

Konfiguration:Mit den folgenden booleschen Werten wird bestimmt, welcher Teil der URL gelesen werden. Ein bestimmter Teil der URL kann nur gelesen werden, wenn der entsprechende Teil true fest. Der Aufrufer kann getUrl ohne angegebene Komponente aufrufen, um das Ereignis und nur dann, wenn alle booleschen Werte auf true gesetzt sind. Wenn kein Wert festgelegt ist, ist der Standardwert all. Wenn ein Wert festgelegt ist, muss der Wert ein Array sein von Komponenten, bei denen eine Komponente eine der folgenden ist: protocol, host, port, path, query, extension oder fragment.

queryKeys: Bei Auswahl der Abfrage kann der Vorlagenersteller den Satz an Abfrageschlüssel, aus denen sie lesen können. Dies ist ein einfaches Array von Schlüsseln, Platzhalter verwenden.

Erforderlich für:getUrl

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

Wenn angegeben, muss die URL-Komponente entweder 'protocol', 'host', 'port', 'path', 'query', 'extension' und 'fragment'. Wenn nichts angegeben ist, wird die Berechtigung ist eine Anforderung für den Zugriff auf die gesamte URL.

Falls angegeben, sollte der Abfrageschlüssel das Argument des Abfragestrings sein, das die Vorlage die der Code lesen möchte.

Hinweise: Steuert, ob eine benutzerdefinierte Vorlage aus dem aktuellen Standort. 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 eingefügt.

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

Konfiguration:Liste mit URL-Mustern

Erforderlich für:injectHiddenIframe

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

Hinweise: Legt fest, ob eine benutzerdefinierte Vorlage einen unsichtbaren iFrame einfügen kann und von welcher Quelle er dies tun 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 einfügen

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

Konfiguration:Liste mit URL-Mustern

Erforderlich für:injectScript

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

Hinweise: Legt fest, ob eine benutzerdefinierte Vorlage JavaScript einfügen kann welchen Ursprung es hat.

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

Display name (Anzeigename): Logs in Console (in der Konsole)

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

Konfiguration: Option zum Aktivieren des Loggings in der Produktion. Die Standardeinstellung ist nur Aktivieren Sie die Protokollierung in der Fehlerbehebung/Vorschau. Wenn die Berechtigung verweigert wird, macht logToConsole Folgendes: keinen Fehler ausgibt, sondern die Log-Nachricht unterdrückt.

Erforderlich für:logToConsole

Abfragesignatur: queryPermission('logging')

Hinweise:Steuert, ob sich eine benutzerdefinierte Vorlage in der Developer Console protokollieren lässt.

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 der Datenschicht (dataLayer).

Konfiguration: Satz von Schlüsselabgleichausdrücken, wobei eine Schlüsselübereinstimmung ein Führende Reihe gestrichelter Bezüge mit nachgestelltem Platzhalter. Schlüsselübereinstimmung Ausdrü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:Steuert, ob eine benutzerdefinierte Vorlage aus der Datenschicht lesen kann.

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:Der Zeichensatz des Dokuments wird gelesen.

Beschreibung: Liest document.characterSet.

Konfiguration:Keine

Erforderlich für:readCharacterSet

Abfragesignatur: queryPermission('read_character_set')

Hinweise: Legt fest, ob eine benutzerdefinierte Vorlage document.characterSet lesen kann.

Beispielcode

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

read_container_data

Display name (Anzeigename): Liest Containerdaten

Beschreibung: Liest Daten über den 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: Liest Ereignismetadaten.

Beschreibung: Liest Ereignismetadaten in Ereignis-Callbacks.

Konfiguration:Keine

Erforderlich für:addEventCallback

Abfragesignatur: queryPermission('read_event_metadata')

Hinweise:Steuert, ob eine benutzerdefinierte Vorlage Ereignismetadaten in Callbacks angegeben werden.

Beispielcode

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

read_title

Anzeigename:Der Titel des Dokuments wird gelesen.

Beschreibung: Liest document.title.

Konfiguration:Keine

Erforderlich für:readTitle

Abfragesignatur: queryPermission('read_title')

Hinweise: Legt fest, ob eine benutzerdefinierte Vorlage die document.title lesen kann.

Beispielcode

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

send_pixel

Anzeigename: Sendet Pixel

Beschreibung: Sendet eine GET-Anfrage an eine angegebene URL. Antwort ist nicht verarbeitet werden.

Konfiguration:Liste der zulässigen URL-Muster.

Erforderlich für:sendPixel

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

Hinweise: Legt fest, ob eine benutzerdefinierte Vorlage eine GET-Anfrage senden und an und welchen Ursprung sie dafür haben.

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:Setzt ein Cookie

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

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

Erforderlich für:setCookie

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

Hinweise: Legt in Abhängigkeit vom Cookie fest, ob ein Cookie geschrieben werden kann. Name, Domain, Pfad, Attribut secure 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:Schreibt die Datenschicht

Beschreibung: Schreibt Daten in die Datenschicht (dataLayer).

Konfiguration: Satz von Schlüsselabgleichausdrücken, wobei eine Schlüsselübereinstimmung ein Führende Reihe gestrichelter Bezüge mit nachgestelltem Platzhalter. Schlüsselübereinstimmung Ausdrücke bestimmen, welche Eigenschaften in die Datenschicht geschrieben werden können.

Erforderlich für:gtagSet

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

Hinweise:Steuert, 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'});
}