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