APIs für benutzerdefinierte Vorlagen

Haupt-APIs

Diese APIs funktionieren mit JavaScript in einer Sandbox, um benutzerdefinierte Vorlagen in Google Tag Manager zu erstellen. Jede API wird mit einer require()-Anweisung hinzugefügt, z.B.:

const myAPI = require('myAPI');

addConsentListener

Registriert eine Listenerfunktion, die ausgeführt wird, wenn sich der Status des angegebenen Einwilligungstyps ändert.

Der angegebene Listener wird jedes Mal aufgerufen, wenn sich der Status für den angegebenen Einwilligungstyp von „Abgelehnt“ zu „Gewährt“ oder von „Gewährt“ zu „Abgelehnt“ ändert. Ein Einwilligungstyp ohne Status gilt als erteilt. Der Listener wird also nicht aufgerufen, wenn ein nicht festgelegter Einwilligungstyp auf „erteilt“ aktualisiert wird. Listener-Funktionen sorgen dafür, dass der Code die richtige Anzahl von Malen ausgeführt wird.

Beispiel:

const isConsentGranted = require('isConsentGranted');
const addConsentListener = require('addConsentListener');

if (!isConsentGranted('ad_storage')) {
  let wasCalled = false;
  addConsentListener('ad_storage', (consentType, granted) => {
    if (wasCalled) return;
    wasCalled = true;

    const cookies = getMyCookies();
    sendFullPixel(cookies);
  });
}

Syntax

addConsentListener(consentType, listener)

Parameter

Parameter Typ Beschreibung
consentType String Der Einwilligungstyp, für den Statusänderungen überwacht werden sollen.
listener Funktion Die Funktion, die ausgeführt werden soll, wenn sich der Status der angegebenen Einwilligungsart ändert.

Wenn ein Listener aufgerufen wird, werden ihm der geänderte Einwilligungstyp und der neue Wert dieses Einwilligungstyps übergeben:

Parameter Typ Beschreibung
consentType String Die Einwilligungsart, die geändert wird.
granted boolesch Ein boolescher Wert, der „wahr“ ist, wenn der angegebene Einwilligungstyp in „gewährt“ geändert wird.

Verknüpfte Berechtigungen

access_consent-Berechtigung mit Lesezugriff für den Einwilligungstyp.


addEventCallback

Mit der addEventCallback API können Sie eine Callback-Funktion registrieren, die am Ende eines Ereignisses aufgerufen wird. Der Rückruf wird aufgerufen, wenn alle Tags für das Ereignis ausgeführt wurden oder die Zeitüberschreitung für ein Ereignis auf der Seite erreicht wird. Dem Callback werden zwei Werte übergeben: die ID des Containers, der die Funktion aufruft, und ein Objekt mit Informationen zum Ereignis.

Syntax

addEventCallback(callback)

Parameter

Parameter Typ Beschreibung
callback Funktion Die Funktion, die am Ende des Ereignisses aufgerufen werden soll.

Das eventData-Objekt enthält die folgenden Daten:

Schlüsselname Typ Beschreibung
tags Array Ein Array von Tag-Datenobjekten. Jedes Tag, das während des Ereignisses ausgelöst wurde, hat einen Eintrag in diesem Array. Das Tag-Datenobjekt enthält die ID (id), den Ausführungsstatus (status) und die Ausführungszeit (executionTime) des Tags. Außerdem sind darin zusätzliche Tag-Metadaten enthalten, die für das Tag konfiguriert wurden.

Beispiel

addEventCallback(function(ctid, eventData) {
  logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});

Verknüpfte Berechtigungen

read_event_metadata


aliasInWindow

Mit der aliasInWindow API können Sie einen Alias (z.B. window.foo = window.bar) erstellen, um bestimmte Tags zu unterstützen, für die ein Alias erforderlich ist. Der Wert im window-Objekt unter fromPath wird dem Schlüssel im window-Objekt unter toPath zugewiesen. Gibt true zurück, wenn erfolgreich, ansonsten false.

Syntax

aliasInWindow(toPath, fromPath)

Parameter

Parameter Typ Beschreibung
toPath String Ein durch Punkte getrennter Pfad zum window-Objekt, in das ein Wert kopiert werden soll. Alle Komponenten im Pfad bis zur letzten Komponente müssen bereits im window-Objekt vorhanden sein.
fromPath String Ein durch Punkte getrennter Pfad in window zum Wert, der kopiert werden soll. Wenn der Wert nicht vorhanden ist, schlägt der Vorgang fehl.

Beispiel

aliasInWindow('foo.bar', 'baz.qux')

Verknüpfte Berechtigungen

access_globals ist sowohl für toPath als auch für fromPath erforderlich. Für toPath ist Schreibzugriff, für fromPath Lesezugriff erforderlich.


callInWindow

Ermöglicht es, Funktionen auf richtlinienkonforme Weise über einen Pfad außerhalb des window-Objekts aufzurufen. Ruft die Funktion unter dem angegebenen Pfad in window mit den angegebenen Argumenten auf und gibt den Wert zurück. Wenn der Rückgabetyp nicht direkt einem in JavaScript-Sandboxes unterstützten Typ zugeordnet werden kann, wird undefined zurückgegeben. Die acht Typen, die in JavaScript-Sandboxes unterstützt werden, sind null, undefined, boolean, number, string, Array, Object und function. Wenn der angegebene Pfad nicht vorhanden ist oder nicht auf eine Funktion verweist, wird undefined zurückgegeben.

Syntax

callInWindow(pathToFunction, argument [, argument2,... argumentN])

Parameter

Parameter Typ Beschreibung
pathToFunction String Ein durch Punkte getrennter Pfad zur Funktion in window, die aufgerufen werden soll.
args * Argumente, die an die Funktion übergeben werden sollen.

Verknüpfte Berechtigungen

access_globals mit aktivierter execute-Berechtigung.


callLater

Hiermit wird ein asynchroner Aufruf einer Funktion geplant. Die Funktion wird aufgerufen, nachdem der aktuelle Code zurückgegeben wurde. Dies entspricht setTimeout(<function>, 0).

Syntax

callLater(function)

Parameter

Parameter Typ Beschreibung
function Funktion Die aufzurufende Funktion.

copyFromDataLayer

Gibt den Wert zurück, der dem angegebenen Schlüssel in der Datenebene derzeit zugewiesen ist: den Wert, der unter dem angegebenen Schlüssel gefunden wird, wenn es sich um einen primitiven Typ, eine Funktion oder ein Objektliteral handelt, andernfalls undefined.

Syntax

copyFromDataLayer(key[, dataLayerVersion])

Parameter

Parameter Typ Beschreibung
key String Der Schlüssel im Format „a.b.c“.
dataLayerVersion number Die optionale Version der Datenschicht. Der Standardwert liegt bei 2. Der Wert „1“ wird nicht empfohlen.

Verknüpfte Berechtigungen

read_data_layer


copyFromWindow

Kopiert eine Variable aus dem window-Objekt. Wenn der Wert in window nicht direkt einem in sandboxed JavaScript unterstützten Typ zugeordnet werden kann, wird undefined zurückgegeben. Die acht Typen, die in JavaScript-Sandboxes unterstützt werden, sind null, undefined, boolean, number, string, Array, Object und function. Gibt den abgerufenen (und erzwungenen) Wert zurück.

Syntax

copyFromWindow(key)

Parameter

Parameter Typ Beschreibung
key String Der Schlüssel in window, dessen Wert kopiert werden soll.

Verknüpfte Berechtigungen

access_globals


createArgumentsQueue

Erstellt eine Warteschlange, die mit Argumentobjekten gefüllt wird, um Tag-Lösungen zu unterstützen, für die dies erforderlich ist.

Erstellt eine Funktion im globalen Gültigkeitsbereich (d.h. window) mit dem Argument fnKey (gleiche Semantik wie createQueue). Nach dem Erstellen der Funktion erstellt diese API mit dem Argument arrayKey ein Array in window, falls noch keines vorhanden ist.

Wenn die unter fnKey erstellte Funktion aufgerufen wird, fügt sie ihr Argumentobjekt dem unter arrayKey erstellten Array hinzu. Der Rückgabewert der API ist die Funktion, die unter fnKey erstellt wurde.

Für diese Funktion sind die Lese- und Schreibeinstellungen für fnKey und arrayKey für die access_globals-Berechtigung erforderlich.

Beispiel:

const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});

Syntax

createArgumentsQueue(fnKey, arrayKey)

Parameter

Parameter Typ Beschreibung
fnKey String Der Pfad in window, unter dem die Funktion festgelegt ist, falls er noch nicht vorhanden ist. Dieses Argument unterstützt die Standardpunktschreibweise. Wenn der Pfad des Schlüssels nicht vorhanden ist, wird eine Ausnahme ausgelöst. Wenn fnKey also 'one.two' ist, wird eine Ausnahme ausgelöst.
arrayKey String Der Pfad in window, unter dem das Array festgelegt ist, falls es noch nicht vorhanden ist. Dieses Argument unterstützt die Standardpunktschreibweise. Wenn der Pfad des Schlüssels nicht vorhanden ist, wird eine Ausnahme ausgelöst. Wenn also arrayKey = 'one.two' ist und kein globales Objekt mit dem Namen 'one' vorhanden ist, wird eine Ausnahme ausgelöst.

Verknüpfte Berechtigungen

access_globals


createQueue

Erstellt ein Array in window, falls es noch nicht vorhanden ist, und gibt eine Funktion zurück, die Werte in dieses Array einfügt.

Für diese Funktion sind die Lese- und Schreibeinstellungen für arrayKey für die Berechtigung access_globals erforderlich.

Beispiel:

const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});

Syntax

createQueue(arrayKey)

Parameter

Parameter Typ Beschreibung
arrayKey String Der Schlüssel in window, unter dem das Array festgelegt ist, falls er noch nicht vorhanden ist. Dieses Argument unterstützt die Standardpunktschreibweise. Wenn der Pfad des Schlüssels nicht vorhanden ist, wird eine Ausnahme ausgelöst. Wenn arrayKey beispielsweise 'one.two' ist und es kein globales Objekt mit dem Namen 'one' gibt, wird eine Ausnahme ausgelöst.

Verknüpfte Berechtigungen

access_globals


decodeUri

Decodiert alle codierten Zeichen im angegebenen URI. Gibt einen String zurück, der den decodierten URI darstellt. Gibt undefined zurück, wenn eine ungültige Eingabe bereitgestellt wird.

Beispiel:

const decode = require('decodeUri');

const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
  // ...
}

Syntax

decodeUri(encoded_uri)

Parameter

Parameter Typ Beschreibung
encoded_uri String Ein URI, der mit encodeUri() oder auf andere Weise codiert wurde.

Verknüpfte Berechtigungen

Keine.


decodeUriComponent

Decodiert alle codierten Zeichen in der angegebenen URI-Komponente. Gibt einen String zurück, der die decodierte URI-Komponente darstellt. Gibt undefined zurück, wenn eine ungültige Eingabe vorliegt.

Beispiel:

const decode = require('decodeUriComponent');

const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
  // ...
}

Syntax

decodeUriComponent(encoded_uri_component)

Parameter

Parameter Typ Beschreibung
encoded_uri_component String Eine URI-Komponente, die mit encodeUriComponent() oder auf andere Weise codiert wurde.

Verknüpfte Berechtigungen

Keine.


encodeUri

Gibt einen codierten Uniform Resource Identifier (URI) zurück, indem Sonderzeichen mit einem Escape-Zeichen versehen werden. Gibt einen String zurück, der den angegebenen String als URI codiert darstellt. Gibt undefined zurück, wenn eine ungültige Eingabe (ein einzelner Substitut) bereitgestellt wird.

Beispiel:

sendPixel('https://www.example.com/' + encodeUri(pathInput));

Syntax

encodeUri(uri)

Parameter

Parameter Typ Beschreibung
uri String Einen vollständigen URI.

Verknüpfte Berechtigungen

Keine.


encodeUriComponent

Gibt einen codierten Uniform Resource Identifier (URI) zurück, indem Sonderzeichen mit einem Escape-Zeichen versehen werden. Gibt einen String zurück, der den angegebenen String als URI codiert darstellt. Gibt undefined zurück, wenn eine ungültige Eingabe (ein einzelner Substitut) bereitgestellt wird.

Beispiel:

sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));

Syntax

encodeUriComponent(str)

Parameter

Parameter Typ Beschreibung
str String Eine Komponente eines URI.

Verknüpfte Berechtigungen

Keine.


fromBase64

Mit der fromBase64 API können Sie Strings aus ihrer Base64-Darstellung decodieren. Gibt undefined zurück, wenn eine ungültige Eingabe vorliegt.

Syntax

fromBase64(base64EncodedString)

Parameter

Parameter Typ Beschreibung
base64EncodedString String Base64-codierter String.

Beispiel

const fromBase64 = require('fromBase64');

const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
  // ...
}

Verknüpfte Berechtigungen

Keine


generateRandom

Gibt eine zufällige Zahl (Ganzzahl) innerhalb des angegebenen Bereichs zurück.

Syntax

generateRandom(min, max)

Parameter

Parameter Typ Beschreibung
min number Minimaler potenzieller Wert der zurückgegebenen Ganzzahl.
max number Der maximale potenzielle Wert der zurückgegebenen Ganzzahl.

Verknüpfte Berechtigungen

Keine.


getContainerVersion

Gibt ein Objekt mit Daten zum aktuellen Container zurück. Das zurückgegebene Objekt enthält die folgenden Felder:

{
  containerId: string,
  debugMode: boolean,
  environmentName: string,
  environmentMode: boolean,
  previewMode: boolean,
  version: string,
}

Beispiel

const getContainerVersion = require('getContainerVersion');
const sendPixel = require('sendPixel');

if (query('read_container_data')) {
  const cv = getContainerVersion();

  const pixelUrl = 'https://pixel.com/' +
    '?version=' + cv.version +
    '&envName=' + cv.environmentName +
    '&ctid=' + cv.containerId +
    '&debugMode=' + cv.debugMode +
    '&previewMode=' + cv.previewMode;
  if (query('send_pixel', pixelUrl)) {
    sendPixel(pixelUrl);
  }
}

Syntax

getContainerVersion();

Verknüpfte Berechtigungen

read_container_data


getCookieValues

Gibt die Werte aller Cookies mit dem angegebenen Namen zurück.

Syntax

getCookieValues(name[, decode])

Parameter

Parameter Typ Beschreibung
name String Name des Cookies.
decode boolesch Steuert, ob die Cookie-Werte mit dem decodeURIComponent() von JavaScript decodiert werden sollen. Die Standardeinstellung ist true.

Verknüpfte Berechtigungen

get_cookies


getQueryParameters

Gibt den ersten oder alle Parameter für queryKey der aktuellen URL zurück. Gibt den ersten Wert aus queryKey oder ein Array von Werten aus queryKey zurück.

Syntax

getQueryParameters(queryKey[, retrieveAll])

Parameter

Parameter Typ Beschreibung
queryKey String Der Schlüssel, der aus den Abfrageparametern gelesen werden soll.
retrieveAll boolesch Ob alle Werte abgerufen werden sollen.

Wenn die aktuelle URL beispielsweise https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo lautet, gilt Folgendes:

  • getQueryParameters('var') == 'foo'
  • getQueryParameters('var', false) == 'foo'
  • getQueryParameters('var', null) == 'foo'
  • getQueryParameters('var', true) == ['foo', 'foo2', 'foo']

Verknüpfte Berechtigungen

Für get_url muss die Komponente query zugelassen sein und queryKey muss in den zulässigen Abfrageschlüsseln angegeben werden (oder ein beliebiger Abfrageschlüssel).


getReferrerQueryParameters

Die getReferrerQueryParameters API funktioniert genauso wie getQueryParameters, nur dass sie auf den Referrer anstelle der aktuellen URL angewendet wird. Gibt den ersten oder alle Parameter für die queryKey des angegebenen Verweisquellen-Eintrags zurück. Gibt den ersten Wert aus queryKey oder ein Array von Werten aus queryKey zurück.

Syntax

getReferrerQueryParameters(queryKey[, retrieveAll])

Parameter

Parameter Typ Beschreibung
queryKey String Der Schlüssel, der aus den Abfrageparametern gelesen werden soll.
retrieveAll boolesch Ob alle Werte abgerufen werden sollen.

Wenn die Verweis-URL beispielsweise https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo lautet, gilt Folgendes:

  • getReferrerQueryParameters('var') == 'foo'
  • getReferrerQueryParameters('var', false) == 'foo'
  • getReferrerQueryParameters('var', null) == 'foo'
  • getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']

Verknüpfte Berechtigungen

get_referrer muss die Komponente query zulassen und queryKey in den zulässigen Abfrageschlüsseln angeben (oder einen beliebigen Abfrageschlüssel zulassen).


getReferrerUrl

Wenn ein Komponententyp angegeben ist, liest die API das Dokumentobjekt für den Verweis und gibt einen String zurück, der einen Teil des Verweis enthält. Wenn keine Komponente angegeben ist, wird die vollständige Verweis-URL zurückgegeben.

Syntax

getReferrerUrl([component])

Parameter

Parameter Typ Beschreibung
component String Die Komponente, die aus der URL zurückgegeben werden soll. Kann einer der folgenden Werte sein: protocol, host, port, path, query, extension. Wenn component undefined oder null ist oder nicht mit einer dieser Komponenten übereinstimmt, wird die gesamte URL zurückgegeben.

Verknüpfte Berechtigungen

get_referrer muss die Komponente query zulassen und queryKey in den zulässigen Abfrageschlüsseln angeben (oder einen beliebigen Abfrageschlüssel zulassen).


getTimestamp

Veraltet. Verwenden Sie stattdessen getTimestampMillis.

Gibt eine Zahl zurück, die die aktuelle Zeit in Millisekunden seit der Unix-Epoche angibt, wie von Date.now() zurückgegeben.

Syntax

getTimestamp();

Verknüpfte Berechtigungen

Keine.


getTimestampMillis

Gibt eine Zahl zurück, die die aktuelle Zeit in Millisekunden seit der Unix-Epoche angibt, wie von Date.now() zurückgegeben.

Syntax

getTimestampMillis();

Verknüpfte Berechtigungen

Keine.


getType

Gibt einen String zurück, der den Typ des angegebenen Werts beschreibt. Im Gegensatz zu typeof unterscheidet getType zwischen array und object.

Syntax

getType(data.someField)

Hinweise

In der folgenden Tabelle sind die Strings aufgeführt, die für jeden Eingabewert zurückgegeben werden.

Eingabewert Ergebnis
undefined „undefined“
null „null“
true „boolean“
12 'number'
'string' 'string'
{ a: 3 } 'object'
[ 1, 3 ] array
(x) => x + 1 „function“

Verknüpfte Berechtigungen

Keine.


getUrl

Gibt einen String zurück, der die gesamte oder einen Teil der aktuellen URL darstellt, unter Angabe eines Komponententyps und einiger Konfigurationsparameter.

Syntax

getUrl(component)

Parameter

Parameter Typ Beschreibung
component String Die Komponente, die aus der URL zurückgegeben werden soll. Es muss sich um einen dieser Algorithmen handeln: protocol, host, port, path, query, extension oder fragment. Wenn „component“ undefined oder null ist oder nicht mit einer dieser Komponenten übereinstimmt, wird der gesamte href-Wert zurückgegeben.

Verknüpfte Berechtigungen

get_url


gtagSet

Es wird ein gtag-set-Befehl an die Datenschicht gesendet, der so bald wie möglich verarbeitet wird, nachdem die Verarbeitung des aktuellen Ereignisses und aller ausgelösten Tags abgeschlossen ist (oder die Zeitüberschreitung für die Tag-Verarbeitung erreicht wurde). Das Update wird in diesem Container garantiert vor allen Elementen in der Warteschlange der Datenebene verarbeitet.

Wenn es beispielsweise von einem Tag aufgerufen wird, das bei Initialisierung der Einwilligung ausgelöst wird, wird das Update angewendet, bevor das Initialisierungsereignis verarbeitet wird. Beispiele hierfür sind ads_data_redaction auf true oder false oder url_passthrough auf true oder false.

Beispiele:

const gtagSet = require('gtagSet');

gtagSet({
  'ads_data_redaction': true,
  'url_passthrough': true,
});

Syntax

gtagSet(object)

Parameter

Parameter Typ Beschreibung
Object Gegenstand Ein Objekt, das den globalen Status für die enthaltenen Properties aktualisiert.

Verknüpfte Berechtigungen

write_data_layer prüft die Schreibberechtigung für dataLayer für alle angegebenen Schlüssel. Wenn die Eingabe für gtagSet ein einfaches Objekt ist, prüft die API die Schreibberechtigung für alle flachen Schlüssel in diesem Objekt. Bei gtagSet({foo: {bar: 'baz'}}) prüft die API beispielsweise die Schreibberechtigung für foo.bar.

Wenn die Eingabe für gtagSet ein Schlüssel und ein nicht einfacher Objektwert ist, prüft die API, ob eine Schreibberechtigung für diesen Schlüssel vorhanden ist. Bei gtagSet('abc', true) prüft die API beispielsweise, ob eine Schreibberechtigung für 'abc' vorhanden ist.

Wenn sich im Eingabeobjekt ein Zyklus befindet, werden nur Schlüssel geprüft, die vor dem Erreichen desselben Objekts liegen.


injectHiddenIframe

Fügen Sie der Seite einen unsichtbaren iFrame hinzu.

Callbacks werden als Funktionsinstanzen angegeben und in JavaScript-Funktionen verpackt, die sie aufrufen.

Syntax

injectHiddenIframe(url, onSuccess)

Parameter

Parameter Typ Beschreibung
url String Die URL, die als Wert des Attributs src des Iframes verwendet werden soll.
onSuccess Funktion Wird aufgerufen, wenn der Frame erfolgreich geladen wurde.

Verknüpfte Berechtigungen

inject_hidden_iframe


injectScript

Fügen Sie der Seite ein Script-Tag hinzu, um die angegebene URL asynchron zu laden. Die Callbacks werden als Funktionsinstanzen angegeben und in JavaScript-Funktionen verpackt, die sie aufrufen.

Syntax

injectScript(url, onSuccess, onFailure[, cacheToken])

Parameter

Parameter Typ Beschreibung
url String Die Adresse des einzuschleusenden Scripts.
onSuccess Funktion Wird aufgerufen, wenn das Script erfolgreich geladen wurde.
onFailure Funktion Wird aufgerufen, wenn das Script nicht geladen werden kann.
cacheToken String Optionaler String, der angibt, dass die angegebene URL im Cache gespeichert werden soll. Wenn dieser Wert angegeben ist, wird nur ein Script-Element erstellt, um das JavaScript anzufordern. Bei weiteren Ladeversuchen werden die angegebenen onSuccess- und onFailure-Methoden in die Warteschlange gestellt, bis das Script geladen ist.

Verknüpfte Berechtigungen

inject_script


isConsentGranted

Gibt „true“ zurück, wenn die Einwilligung des angegebenen Typs erteilt wurde.

Die Einwilligung für einen bestimmten Einwilligungstyp gilt als erteilt, wenn der Einwilligungstyp auf „gewährt“ festgelegt wurde oder gar nicht festgelegt wurde. Wenn der Einwilligungstyp auf einen anderen Wert festgelegt ist, gilt die Einwilligung als nicht erteilt.

In den Tag-Einstellungen in Tag Manager gibt es eine Option, mit der das Tag immer ausgelöst werden kann. Wenn diese API in einem Tag verwendet wird, bei dem die Option „Immer auslösen“ aktiviert ist, wird die Einwilligung als erteilt betrachtet und true wird zurückgegeben, unabhängig vom tatsächlichen Einwilligungsstatus.

Beispiel:

const isConsentGranted = require('isConsentGranted');

if (isConsentGranted('ad_storage')) {
  sendFullPixel();
} else {
  sendPixelWithoutCookies();
}

Syntax

isConsentGranted(consentType)

Parameter

Parameter Typ Beschreibung
consentType String Der Einwilligungstyp, dessen Status geprüft werden soll.

Verknüpfte Berechtigungen

access_consent-Berechtigung mit Lesezugriff für den Einwilligungstyp.


JSON

Gibt ein Objekt zurück, das JSON-Funktionen bereitstellt.

Die Funktion parse() analysiert einen JSON-String, um den vom String beschriebenen Wert oder das vom String beschriebene Objekt zu erstellen. Wenn der Wert nicht geparst werden kann (z.B. fehlerhaftes JSON), gibt die Funktion undefined zurück. Wenn der Eingabewert kein String ist, wird er in einen String umgewandelt.

Die Funktion stringify() konvertiert die Eingabe in einen JSON-String. Wenn der Wert nicht analysiert werden kann (z.B. wenn das Objekt einen Zyklus enthält), gibt die Methode undefined zurück.

Syntax

JSON.parse(stringInput)
JSON.stringify(value);

Parameter

JSON.parse

Parameter Typ Beschreibung
stringInput Beliebig Der Wert, der konvertiert werden soll. Wenn der Wert kein String ist, wird die Eingabe in einen String umgewandelt.

JSON.stringify

Parameter Typ Beschreibung
Wert Beliebig Der Wert, der konvertiert werden soll.

Beispiel

const JSON = require('JSON');

// The JSON input string is converted to an object.
const object = JSON.parse('{"foo":"bar"}');

// The input object is converted to a JSON string.
const str = JSON.stringify({foo: 'bar'});

localStorage

Gibt ein Objekt mit Methoden zum Zugriff auf den lokalen Speicher zurück.

Syntax

const localStorage = require('localStorage');

// Requires read access for the key. Returns null if the key does not exist.
localStorage.getItem(key);

// Requires write access for the key. Returns true if successful.
localStorage.setItem(key, value);

// Requires write access for the key.
localStorage.removeItem(key);

Verknüpfte Berechtigungen

access_local_storage

Beispiel

const localStorage = require('localStorage');
if (localStorage) {
  const value = localStorage.getItem('my_key');
  if (value) {
    const success = localStorage.setItem('my_key', 'new_value');
    if (success) {
      localStorage.removeItem('my_key');
    }
  }
}

logToConsole

Argumente werden in der Browserkonsole protokolliert.

Syntax

logToConsole(obj1 [, obj2,... objN])

Parameter

Parameter Typ Beschreibung
obj1 [, obj2,... objN] Beliebig Argumente

Verknüpfte Berechtigungen

logging


makeInteger

Wandelt den angegebenen Wert in eine Zahl (Ganzzahl) um.

Syntax

makeInteger(value)

Parameter

Parameter Typ Beschreibung
value Beliebig Der Wert, der konvertiert werden soll.

Verknüpfte Berechtigungen

Keine.


makeNumber

Wandelt den angegebenen Wert in eine Zahl um.

Syntax

makeNumber(value)

Parameter

Parameter Typ Beschreibung
value Beliebig Der Wert, der konvertiert werden soll.

Verknüpfte Berechtigungen

Keine.


makeString

Gibt den angegebenen Wert als String zurück.

Syntax

makeString(value)

Parameter

Parameter Typ Beschreibung
value Beliebig Der Wert, der konvertiert werden soll.

Verknüpfte Berechtigungen

Keine.


makeTableMap

Wandelt ein einfaches Tabellenobjekt mit zwei Spalten in eine Map um. So können Sie ein SIMPLE_TABLE-Vorlagesfeld mit zwei Spalten in ein übersichtlicheres Format umwandeln.

Mit dieser Funktion kann beispielsweise ein Tabellenobjekt konvertiert werden:

[
  {'key': 'k1', 'value': 'v1'},
  {'key': 'k2', 'value': 'v2'}
]

in eine Karte:

{
  'k1': 'v1',
  'k2': 'v2'
}

Gibt ein Objekt zurück: Die konvertierte Map, wenn ihr Schlüssel/Wert-Paare hinzugefügt wurden, andernfalls null.

Syntax

makeTableMap(tableObj, keyColumnName, valueColumnName)

Parameter

Parameter Typ Beschreibung
tableObj Liste Das zu konvertierende Tabellenobjekt. Es ist eine Liste von Karten, wobei jede Map eine Zeile in der Tabelle darstellt. Jeder Property-Name in einem Zeilenobjekt ist der Spaltenname und der Property-Wert ist der Spaltenwert in der Zeile.
keyColumnName String Name der Spalte, deren Werte zu Schlüsseln in der konvertierten Map werden.
valueColumnName String Name der Spalte, deren Werte in die konvertierte Map übernommen werden.

Verknüpfte Berechtigungen

Keine.


Math

Ein Objekt mit Math-Funktionen.

Syntax

const Math = require('Math');

// Retrieve the absolute value.
const absolute = Math.abs(-3);

// Round the input down to the nearest integer.
const roundedDown = Math.floor(3.6);

// Round the input up to the nearest integer.
const roundedUp = Math.ceil(2.2);

// Round the input to the nearest integer.
const rounded = Math.round(3.1);

// Return the largest argument.
const biggest = Math.max(1, 3);

// Return the smallest argument.
const smallest = Math.min(3, 5);

// Return the first argument raised to the power of the second argument.
const powerful = Math.pow(3, 1);

// Return the square root of the argument.
const unsquared = Math.sqrt(9);

Parameter

Die Parameter der mathematischen Funktionen werden in Zahlen umgewandelt.

Verknüpfte Berechtigungen

Keine.


Object

Gibt ein Objekt zurück, das Object-Methoden bereitstellt.

Die keys()-Methode bietet das Verhalten der Standardbibliothek Object.keys(). Es gibt ein Array mit den Namen der zählbaren Eigenschaften eines bestimmten Objekts in derselben Reihenfolge zurück wie eine for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode values() bietet das Verhalten Object.values() der Standardbibliothek. Es gibt ein Array der eigenen zählbaren Attributwerte eines bestimmten Objekts in derselben Reihenfolge zurück wie eine for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode entries() bietet das Verhalten Object.entries() der Standardbibliothek. Es gibt ein Array der eigenen zählbaren Property eines bestimmten Objekts zurück, also [key, value]-Paare in derselben Reihenfolge wie bei einer for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode freeze() bietet das Verhalten Object.freeze() der Standardbibliothek. Ein eingefrorenes Objekt kann nicht mehr geändert werden. Durch das Einfrieren eines Objekts wird verhindert, dass ihm neue Eigenschaften hinzugefügt, vorhandene Eigenschaften entfernt und die Werte vorhandener Eigenschaften geändert werden. freeze() gibt dasselbe Objekt zurück, das übergeben wurde. Ein primitives oder Nullargument wird so behandelt, als wäre es ein eingefrorenes Objekt, und wird zurückgegeben.

Die Methode delete() bietet das Verhalten des delete-Operators der Standardbibliothek. Der angegebene Schlüssel wird aus dem Objekt entfernt, es sei denn, das Objekt ist eingefroren. Wie der Löschoperator der Standardbibliothek gibt er true zurück, wenn der erste Eingabewert (objectInput) ein Objekt ist, das nicht eingefroren ist, auch wenn der zweite Eingabewert (keyToDelete) einen nicht vorhandenen Schlüssel angibt. In allen anderen Fällen wird false zurückgegeben. Er unterscheidet sich jedoch in folgenden Punkten vom Löschoperator der Standardbibliothek:

  • keyToDelete darf kein durch Punkte getrennter String sein, der einen verschachtelten Schlüssel angibt.
  • Mit delete() können keine Elemente aus einem Array entfernt werden.
  • Mit delete() können keine Properties aus dem globalen Gültigkeitsbereich entfernt werden.

Syntax

Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)

Parameter

Object.keys

Parameter Typ Beschreibung
objectInput Beliebig Das Objekt, dessen Schlüssel aufgezählt werden sollen. Wenn die Eingabe kein Objekt ist, wird sie in ein Objekt umgewandelt.

Object.values

Parameter Typ Beschreibung
objectInput Beliebig Das Objekt, dessen Werte aufgezählt werden sollen. Wenn die Eingabe kein Objekt ist, wird sie in ein Objekt umgewandelt.

Object.entries

Parameter Typ Beschreibung
objectInput Beliebig Das Objekt, dessen Schlüssel/Wert-Paare aufgezählt werden sollen. Wenn die Eingabe kein Objekt ist, wird sie in ein Objekt umgewandelt.

Object.freeze

Parameter Typ Beschreibung
objectInput Beliebig Das Objekt, das eingefroren werden soll. Wenn die Eingabe kein Objekt ist, wird sie als eingefrorenes Objekt behandelt.

Object.delete

Parameter Typ Beschreibung
objectInput Beliebig Das Objekt, dessen Schlüssel gelöscht werden soll.
keyToDelete String Der zu löschende Schlüssel der obersten Ebene.

Beispiel

const Object = require('Object');

// The keys of an object are enumerated in an array.
const keys = Object.keys({foo: 'bar'});

// The values of an object are enumerated in an array.
const values = Object.values({foo: 'bar'});

// The key/value pairs of an object are enumerated in an array.
const entries = Object.entries({foo: 'bar'});

// The input object is frozen.
const frozen = Object.freeze({foo: 'bar'});

// The key is removed from the input object.
const obj1 = {deleteme: 'value'};
Object.delete(obj1, 'deleteme');
// Only a top-level key can be specified as the key to delete.
const obj2 = {nested: {key: 'value'}};
Object.delete(obj2, 'nested.key'); // This has no effect.
Object.delete(obj2.nested, 'key'); // This deletes the nested key.

parseUrl

Gibt ein Objekt zurück, das alle Komponenten einer bestimmten URL enthält, ähnlich wie das URL-Objekt.

Diese API gibt für jede fehlerhafte URL undefined zurück. Bei korrekt formatierten URLs haben Felder, die nicht im URL-String vorhanden sind, den Wert einer leeren Zeichenfolge oder im Fall von searchParams einen leeren Objektwert.

Das zurückgegebene Objekt enthält die folgenden Felder:

{
  href: string,
  origin: string,
  protocol: string,
  username: string,
  password: string,
  host: string,
  hostname: string,
  port: string,
  pathname: string,
  search: string,
  searchParams: Object<string, (string|Array)>,
  hash: string,
}

Beispiel

const parseUrl = require('parseUrl');

const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');

Syntax

parseUrl(url);

Parameter

Parameter Typ Beschreibung
url String Die vollständige URL, die geparst wird.

Verknüpfte Berechtigungen

Keine.


queryPermission

Abfrage der zulässigen und eingeschränkten Berechtigungen Gibt einen booleschen Wert zurück: true, wenn eine Berechtigung gewährt wurde, false andernfalls.

Syntax

queryPermission(permission, functionArgs*)

Parameter

Parameter Typ Beschreibung
permission String Name der Berechtigung.
functionArgs Beliebig Die Funktionsargumente variieren je nach abgefragter Berechtigung. Weitere Informationen finden Sie unten im Abschnitt Funktionsargumente.

Funktionsargumente

sendPixel, injectScript, injectHiddenIframe: Der zweite Parameter sollte ein URL-String sein.

writeGlobals, readGlobals: Der zweite Parameter sollte der Schlüssel sein, der geschrieben oder gelesen wird.

readUrl: Es sind keine zusätzlichen Argumente erforderlich, um abzufragen, ob die gesamte URL gelesen werden kann. Wenn Sie prüfen möchten, ob eine bestimmte Komponente gelesen werden kann, geben Sie den Komponentennamen als zweites Argument an:

if (queryPermission('readUrl','port')) {
  // read the port
}

Wenn Sie prüfen möchten, ob ein bestimmter Abfrageschlüssel lesbar ist, übergeben Sie ihn als dritten Parameter:

if (queryPermission('readUrl','query','key')) {
  getUrlComponent(...);
}

Verknüpfte Berechtigungen

Keine.


readCharacterSet

Gibt den Wert von document.characterSet zurück.

Syntax

readCharacterSet()

Parameter

Keine.

Verknüpfte Berechtigungen

read_character_set


readTitle

Gibt den Wert von document.title zurück.

Syntax

readTitle()

Parameter

Keine.

Verknüpfte Berechtigungen

read_title


require

Importiert eine integrierte Funktion anhand ihres Namens. Gibt eine Funktion oder ein Objekt zurück, das von Ihrem Programm aufgerufen werden kann. Gibt undefined zurück, wenn der Browser die integrierte Funktion nicht unterstützt.

Syntax

require(name)

Parameter

Parameter Typ Beschreibung
name String Der Name der zu importierenden Funktion.

Beispiel

const getUrl = require('getUrl');
const url = getUrl();

Verknüpfte Berechtigungen

Keine.


sendPixel

Stellt eine GET-Anfrage an einen angegebenen URL-Endpunkt.

Syntax

sendPixel(url, onSuccess, onFailure)

Parameter

Parameter Typ Beschreibung
url String An wen soll Google Pixel gesendet werden?
onSuccess Funktion Wird aufgerufen, wenn das Pixel erfolgreich geladen wurde. Hinweis: Auch wenn die Anfrage erfolgreich gesendet wurde, benötigen Browser möglicherweise eine gültige Bildantwort, um onSuccess auszuführen.
onFailure Funktion Wird aufgerufen, wenn das Pixel nicht geladen werden kann. Hinweis: Auch wenn die Anfrage erfolgreich gesendet wurde, wird „onFailure“ möglicherweise ausgeführt, wenn der Server keine gültige Bildantwort zurückgibt.

Verknüpfte Berechtigungen

send_pixel


setCookie

Setzt oder löscht das Cookie mit dem angegebenen Namen, Wert und den angegebenen Optionen.

Syntax

setCookie(name, value[, options, encode])

Parameter

Parameter Typ Beschreibung
name String Name des Cookies.
value String Wert des Cookies.
options Gegenstand Gibt die Attribute Domain, Path, Expires, Max-Age, Secure und SameSite an. Weitere Informationen finden Sie unten unter Optionen.
encode boolesch Steuert, ob der Cookiewert mit encodeURIComponent() von JavaScript codiert werden soll. Die Standardeinstellung ist true.

Optionen

  • Domain:Wird von der Property options['domain'] festgelegt, sofern vorhanden. Legen Sie diesen Wert auf 'auto' fest, um zu versuchen, das Cookie mit der breitestmöglichen Domain basierend auf dem Dokumentspeicherort zu schreiben. Wenn das fehlschlägt, werden nacheinander immer engere Subdomains versucht. Wenn alle fehlschlagen, wird versucht, das Cookie ohne Domain zu schreiben. Wenn kein Wert festgelegt ist, wird versucht, das Cookie ohne Angabe einer Domain zu schreiben. Hinweis: Wenn ein Cookie ohne Domainangabe in document.cookie geschrieben wird, setzt der User-Agent die Domain des Cookies standardmäßig auf den Host des aktuellen Dokumentspeicherorts.
  • Pfad:Wird von options['path'] festgelegt, sofern vorhanden. Wenn ein Cookie ohne Pfad in document.cookie geschrieben wird, setzt der User-Agent den Pfad des Cookies standardmäßig auf den Pfad des aktuellen Dokumentspeicherorts.
  • Max-Age:Wird von options['max-age'] festgelegt, sofern vorhanden.
  • Expires:Wird von options['expires'] festgelegt, sofern vorhanden. Falls vorhanden, muss dies ein Datumsstring im UTC-Format sein. Mit Date.toUTCString() kann ein Date für diesen Parameter formatiert werden.
  • Secure:Wird von options['secure'] festgelegt, sofern vorhanden.
  • SameSite:Wird von options['samesite'] festgelegt, sofern vorhanden.

Verknüpfte Berechtigungen

set_cookies


setDefaultConsentState

Es wird eine Standardeinwilligungsaktualisierung an die Datenschicht gesendet, die so bald wie möglich nach Abschluss der Verarbeitung des aktuellen Ereignisses und aller ausgelösten Tags verarbeitet wird (oder die Zeitüberschreitung für die Tag-Verarbeitung erreicht wird). Das Update wird in diesem Container vor allen Elementen in der Warteschlange in der Datenebene verarbeitet. Weitere Informationen zur Einwilligung

Beispiel:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'ad_storage': 'denied',
  'analytics_storage': 'granted',
  'third_party_storage': 'denied',
  'region': ['US-CA'],
  'wait_for_update': 500
});

Syntax

setDefaultConsentState(consentSettings)

Parameter

Parameter Typ Beschreibung
consentSettings Gegenstand Ein Objekt, das den Standardstatus für die angegebenen Einwilligungstypen definiert.

Das consentSettings-Objekt ist eine Zuordnung beliebiger Strings für den Einwilligungstyp zu 'granted' oder 'denied'. Folgende Werte werden unterstützt:

Schlüsselname Typ Beschreibung
consentType String Der Wert für jeden Einwilligungstyp kann auf „granted“ (gewährt) oder „denied“ (abgelehnt) festgelegt werden. Jeder andere Wert als „granted“ wird als „denied“ behandelt. Wenn Sie den Wert auf „undefined“ festlegen, hat das keine Auswirkungen auf den vorherigen Wert.
region Array Optionale Regionskonten, die angeben, für welche Region die Einwilligungseinstellungen gelten. Regionscodes werden mit Ländern und/oder Untergliederungen im ISO 3166-2-Format angegeben.
wait_for_update number Gibt einen Millisekundenwert an, um festzulegen, wie lange gewartet werden soll, bevor Daten gesendet werden. Wird mit Einwilligungstools verwendet, die asynchron geladen werden.

Verknüpfte Berechtigungen

access_consent-Berechtigung mit Schreibzugriff für alle Einwilligungsarten im Objekt „consentSettings“


setInWindow

Legt den angegebenen Wert in window unter dem angegebenen Schlüssel fest. Standardmäßig wird mit dieser Methode der Wert in window nicht festgelegt, wenn bereits ein Wert vorhanden ist. Legen Sie overrideExisting auf true fest, um den Wert in window festzulegen, unabhängig davon, ob bereits ein Wert vorhanden ist. Gibt einen booleschen Wert zurück: true, wenn der Wert erfolgreich festgelegt wurde, und false andernfalls.

Syntax

setInWindow(key, value, overrideExisting)

Parameter

Parameter Typ Beschreibung
key String Der Schlüssel in window, unter dem der Wert eingefügt werden soll.
value * Der Wert, der in window festgelegt werden soll.
overrideExisting boolesch Das Flag, das angibt, dass der Wert in window festgelegt werden soll, unabhängig davon, ob dort ein Wert vorhanden ist oder nicht.

Verknüpfte Berechtigungen

access_globals


sha256

Er berechnet den SHA-256-Digest der Eingabe und ruft einen Rückruf mit dem Base64-codierten Digest auf, sofern im options-Objekt keine andere Ausgabecodierung angegeben ist.

Beispiel:

sha256('inputString', (digest) => {
  sendPixel('https://example.com/collect?id=' + digest);
  data.gtmOnSuccess();
}, data.gtmOnFailure);

sha256('inputString', (digest) => {
  sendPixel('https://example.com/collect?id=' + digest);
  data.gtmOnSuccess();
}, data.gtmOnFailure, {outputEncoding: 'hex'});

Syntax

sha256(input, onSuccess, onFailure = undefined, options = undefined)

Parameter

Parameter Typ Beschreibung
input String Der String, für den der Hash berechnet werden soll.
onSuccess Funktion Wird mit dem resultierenden Base64-codierten Hashwert aufgerufen, sofern im options-Objekt keine andere Ausgabecodierung angegeben ist.
onFailure Funktion Wird aufgerufen, wenn beim Berechnen des Digests ein Fehler auftritt oder der Browser keine native Unterstützung für SHA256 hat. Der Callback wird mit einem Objekt aufgerufen, das den Namen des Fehlers und die Meldung enthält.
options Gegenstand Optionales Optionsobjekt zum Angeben der Ausgabecodierung. Falls angegeben, sollte das Objekt den Schlüssel outputEncoding mit dem Wert base64 oder hex enthalten.

Verknüpfte Berechtigungen

Keine.


templateStorage

Gibt ein Objekt mit Methoden zum Zugriff auf den Vorlagenspeicher zurück. Mit dem Vorlagenspeicher können Daten für mehrere Ausführungen einer einzelnen Vorlage freigegeben werden. Daten, die im Vorlagenspeicher gespeichert werden, bleiben für die gesamte Lebensdauer der Seite erhalten.

Syntax

const templateStorage = require('templateStorage');

templateStorage.getItem(key);

templateStorage.setItem(key, value);

templateStorage.removeItem(key);

// Deletes all stored values for the template.
templateStorage.clear();

Verknüpfte Berechtigungen

access_template_storage

Beispiel

const templateStorage = require('templateStorage');
const sendPixel = require('sendPixel');

// Ensure sendPixel is called only once per page.
if (templateStorage.getItem('alreadyRan')) {
  data.gtmOnSuccess();
  return;
}

templateStorage.setItem('alreadyRan', true);

sendPixel(
  data.oncePerPagePixelUrl,
  data.gtmOnSuccess,
  () => {
    templateStorage.setItem('alreadyRan', false);
    data.gtmOnFailure();
  });

toBase64

Mit der toBase64 API können Sie einen String in eine Base64-Darstellung codieren.

Syntax

toBase64(input)

Parameter

Parameter Typ Beschreibung
input String Zu codierender String.

Beispiel

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');

Verknüpfte Berechtigungen

Keine


updateConsentState

Es wird eine Einwilligungsaktualisierung an die Datenebene gesendet, die so schnell wie möglich verarbeitet wird, nachdem die Verarbeitung des aktuellen Ereignisses und aller ausgelösten Tags abgeschlossen ist (oder die Zeitüberschreitung für die Tag-Verarbeitung erreicht wurde). Das Update wird garantiert in diesem Container vor allen Elementen in der Warteschlange in der Datenschicht verarbeitet. Weitere Informationen zur Einwilligung

Beispiel:

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'analytics_storage': 'denied',
  'third_party_storage': 'granted',
});

Syntax

updateConsentState(consentSettings)

Parameter

Parameter Typ Beschreibung
consentSettings Gegenstand Ein Objekt, das den Status für die angegebenen Einwilligungstypen aktualisiert.

Das consentSettings-Objekt ist eine Zuordnung beliebiger Strings für den Einwilligungstyp zu 'granted' oder 'denied'. Folgende Werte werden unterstützt:

Schlüsselname Typ Beschreibung
consentType String Der Wert für jeden Einwilligungstyp kann auf „gewährt“ oder „abgelehnt“ festgelegt werden. Alle anderen Werte als „granted“ (gewährt) werden als „denied“ (abgelehnt) behandelt. Das Festlegen des Werts auf „undefiniert“ hat keine Auswirkungen auf den vorherigen Wert.

Verknüpfte Berechtigungen

access_consent-Berechtigung mit Schreibzugriff für alle Einwilligungsarten im Objekt „consentSettings“


APIs testen

Diese APIs können mit JavaScript-Tests in Sandboxes verwendet werden, um Tests für benutzerdefinierte Vorlagen in Google Tag Manager zu erstellen. Für diese Test-APIs ist keine require()-Anweisung erforderlich. Weitere Informationen zu Tests benutzerdefinierter Vorlagen


assertApi

Gibt ein Matcher-Objekt zurück, mit dem sich flüssige Behauptungen über die jeweilige API machen lassen.

Syntax

assertApi(apiName)

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu prüfenden API. Derselbe String, der an require() übergeben wird.

Abgleichsmechanismen

  • Subject.wasCalled()
  • Subject.wasNotCalled()
  • Subject.wasCalledWith(...expected)
  • Subject.wasNotCalledWith(...expected)

Beispiele

assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');

assertThat

Die assertThat API ist an der [Truth]-Bibliothek von Google orientiert. Es gibt ein Objekt zurück, mit dem sich flüssig Aussagen über den Wert eines Themas treffen lassen. Bei einem Assertion-Fehler wird der Test sofort beendet und als fehlgeschlagen markiert. Ein Fehler in einem Test wirkt sich jedoch nicht auf andere Testfälle aus.

Syntax

assertThat(actual, opt_message)

Parameter

Parameter Typ Beschreibung
actual Beliebig Der Wert, der in den fließenden Prüfungen verwendet werden soll.
opt_message String Optionale Meldung, die ausgegeben wird, wenn die Assertion fehlschlägt.

Abgleichsmechanismen

Matcher Beschreibung
isUndefined() Es wird behauptet, dass das Subjekt undefined ist.
isDefined() Es wird behauptet, dass das Subjekt nicht undefined ist.
isNull() Es wird behauptet, dass das Subjekt null ist.
isNotNull() Es wird behauptet, dass das Subjekt nicht null ist.
isFalse() Es wird behauptet, dass das Subjekt false ist.
isTrue() Es wird behauptet, dass das Subjekt true ist.
isFalsy() Stellt fest, dass das Subjekt falsch ist. Falsch-Werte sind undefined, null, false, NaN, 0 und '' (leerer String).
isTruthy() Stellt fest, dass das Subjekt wahr ist. Falsch-Werte sind undefined, null, false, NaN, 0 und '' (leerer String).
isNaN() Prüft, ob das Subjekt der Wert „NaN“ ist.
isNotNaN() Prüft, ob das Subjekt einen Wert hat, der nicht NaN ist.
isInfinity() Stellt fest, dass das Subjekt positiv oder negativ unendlich ist.
isNotInfinity() Es wird behauptet, dass das Subjekt einen Wert hat, der nicht positiv oder negativ unendlich ist.
isEqualTo(expected) Prüft, ob das Subjekt dem angegebenen Wert entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isNotEqualTo(expected) Prüft, ob das Subjekt nicht mit dem angegebenen Wert übereinstimmt. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isAnyOf(...expected) Prüft, ob das Subjekt mit einem der angegebenen Werte übereinstimmt. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isNoneOf(...expected) Prüft, ob das Subjekt keinem der angegebenen Werte entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isStrictlyEqualTo(expected) Prüft, ob das Subjekt genau dem angegebenen Wert entspricht (===).
isNotStrictlyEqualTo(expected) Prüft, ob das Subjekt nicht genau (!==) mit dem angegebenen Wert übereinstimmt.
isGreaterThan(expected) Prüft, ob das Subjekt in einem geordneten Vergleich größer als (>) der angegebene Wert ist.
isGreaterThanOrEqualTo(expected) Prüft, ob das Subjekt größer oder gleich (>=) dem angegebenen Wert in einem geordneten Vergleich ist.
isLessThan(expected) Prüft, ob das Subjekt in einem geordneten Vergleich kleiner als (<) der angegebene Wert ist.
isLessThanOrEqualTo(expected) Stellt sicher, dass das Subjekt bei einem geordneten Vergleich kleiner oder gleich (<=) dem angegebenen Wert ist.
contains(...expected) Prüft, ob das Subjekt ein Array oder String ist, das alle angegebenen Werte in beliebiger Reihenfolge enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
doesNotContain(...expected) Prüft, ob das Subjekt ein Array oder String ist, das keinen der angegebenen Werte enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
containsExactly(...expected) Prüft, ob das Subjekt ein Array ist, das alle angegebenen Werte in beliebiger Reihenfolge und keine anderen Werte enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
doesNotContainExactly(...expected) Prüft, ob das Subjekt ein Array ist, das in beliebiger Reihenfolge andere Werte als die angegebenen enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
hasLength(expected) Prüft, ob das Subjekt ein Array oder String mit der angegebenen Länge ist. Die Prüfung schlägt immer fehl, wenn der Wert kein Array oder String ist.
isEmpty() Prüft, ob das Subjekt ein leeres Array oder ein leerer String ist (Länge = 0). Die Prüfung schlägt immer fehl, wenn der Wert kein Array oder String ist.
isNotEmpty() Prüft, ob das Subjekt ein Array oder String ist, das nicht leer ist (Länge > 0). Die Prüfung schlägt immer fehl, wenn der Wert kein Array oder String ist.
isArray() Stellt fest, dass der Typ des Subjekts ein Array ist.
isBoolean() Prüft, ob der Typ des Subjekts ein boolescher Wert ist.
isFunction() Es wird behauptet, dass der Typ des Subjekts eine Funktion ist.
isNumber() Prüft, ob der Typ des Subjekts eine Zahl ist.
isObject() Stellt fest, dass der Typ des Subjekts ein Objekt ist.
isString() Prüft, ob der Typ des Subjekts ein String ist.

Beispiele

assertThat(undefined).isUndefined();
assertThat(id, 'ID must be defined').isDefined();
assertThat(null).isNull();
assertThat(undefined).isNotNull();
assertThat(true).isTrue();
assertThat(false).isFalse();
assertThat(1).isTruthy();
assertThat('').isFalsy();
assertThat(1/0).isInfinity();
assertThat(0).isNotInfinity();
assertThat(-'foo').isNaN();
assertThat(100).isNotNaN();
assertThat(sentUrl).isEqualTo('https://endpoint.example.com/?account=12345');
assertThat(category).isNotEqualTo('premium');
assertThat(5).isAnyOf(1, 2, 3, 4, 5);
assertThat(42).isNoneOf('the question', undefined, 41.9);
assertThat('value').isStrictlyEqualTo('value');
assertThat('4').isNotStrictlyEqualTo(4);
assertThat(['a', 'b', 'c']).contains('a', 'c');
assertThat(['x', 'y', 'z']).doesNotContain('f');
assertThat(['1', '2', '3']).containsExactly('3', '2', '1');
assertThat(['4', '5']).doesNotContainExactly('4');
assertThat('a string').hasLength(8);
assertThat([]).isEmpty();
assertThat('another string').isNotEmpty();

fail

Der aktuelle Test schlägt sofort fehl und die angegebene Meldung wird ausgegeben, sofern vorhanden.

Syntax

fail(opt_message);

Parameter

Parameter Typ Beschreibung
opt_message String Optionaler Text für die Fehlermeldung.

Beispiel

fail('This test has failed.');

mock

Mit der mock API können Sie das Verhalten von APIs in Sandboxes überschreiben. Die Mock-API kann bedenkenlos in Vorlagencode verwendet werden, funktioniert aber nur im Testmodus. Mocks werden vor jedem Test zurückgesetzt.

Syntax

mock(apiName, returnValue);

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu mockenden API; entspricht dem String, der an require() übergeben wird.
returnValue Beliebig Der Wert, der für die API zurückgegeben werden soll, oder eine Funktion, die anstelle der API aufgerufen wird. Wenn returnValue eine Funktion ist, wird diese anstelle der Sandbox-API aufgerufen. Ist returnValue keine Funktion, wird dieser Wert anstelle der Sandbox-API zurückgegeben.

Beispiele

mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
    onSuccess();
});

mockObject

Mit der mockObject API können Sie das Verhalten von APIs in Sandboxes überschreiben, die ein Objekt zurückgeben. Die API kann sicher in Vorlagencode verwendet werden, ist aber nur im Testmodus funktionsfähig. Mocks werden vor jedem Test zurückgesetzt.

Syntax

mockObject(apiName, objectMock);

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu mockenden API; entspricht dem String, der an require() übergeben wird.
objectMock Gegenstand Der Wert, der für die API zurückgegeben werden soll, oder eine Funktion, die anstelle der API aufgerufen wird. Muss ein Objekt sein.

Beispiele

const storage = {};
mockObject('localStorage', {
  setItem: (key, value) => {storage[key] = value;},
  getItem: (key) => storage[key],
});

runCode

Führt den Code für die Vorlage, d.h. den Inhalt des Tabs Code, in der aktuellen Testumgebung mit einem bestimmten Eingabedatenobjekt aus.

Syntax

runCode(data)

Parameter

Parameter Typ Beschreibung
data Gegenstand Datenobjekt, das im Test verwendet werden soll.

Rückgabewert

Gibt den Wert einer Variablen für Variablenvorlagen zurück; für alle anderen Vorlagentypen wird undefined zurückgegeben.

Beispiel

runCode({field1: 123, field2: 'value'});