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