APIs für benutzerdefinierte Vorlagen

Kern-APIs

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

const myAPI = require('myAPI');

addConsentListener

Registriert eine Listener-Funktion, die ausgeführt werden soll, wenn sich der Status der angegebenen Einwilligungsart ändert.

Der angegebene Listener wird jedes Mal aufgerufen, wenn sich der Status für den angegebenen Einwilligungstyp von „verweigert“ zu „gewährt“ oder von „zugewiesen“ zu „verweigert“ ändert. Ein Einwilligungstyp ohne Status gilt als gewährt. Daher wird der Listener nicht aufgerufen, wenn eine nicht festgelegte Einwilligung in „Erteilt“ geändert wird. Listenerfunktionen sind dafür verantwortlich, dass ihr Code die richtige Anzahl von Ausführungen korrekt ausführt.

Example:

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 Die Einwilligungsart, bei der auf Statusänderungen gewartet werden soll.
listener Funktion Funktion, die ausgeführt werden soll, wenn sich der Status der angegebenen Einwilligungsart ändert.

Wenn ein Listener aufgerufen wird, werden die zu ändernde Einwilligungsart und der neue Wert dieses Einwilligungstyps übergeben:

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

Verknüpfte Berechtigungen

Berechtigung access_consent mit Lesezugriff für die Einwilligungsart.


addEventCallback

Mit der addEventCallback API können Sie eine Callback-Funktion registrieren, die am Ende eines Ereignisses aufgerufen wird. Der Callback wird aufgerufen, wenn alle Tags für das Ereignis ausgeführt wurden oder wenn das Zeitlimit für ein In-Page-Ereignis erreicht wurde. An den Callback werden zwei Werte übergeben: die ID des Containers, der die Funktion aufruft, und ein Objekt, das Informationen über das Ereignis enthält.

Syntax

addEventCallback(callback)

Parameter

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

Das Objekt eventData 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 des Tags (id), seinen Ausführungsstatus (status) und die Ausführungszeit (executionTime). Die Tag-Daten enthalten auch zusätzliche Tag-Metadaten, 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 Aliasing erforderlich ist. Weist den Wert im window-Objekt unter fromPath dem Schlüssel im window-Objekt beim toPath zu. Gibt bei Erfolg true zurück, andernfalls false.

Syntax

aliasInWindow(toPath, fromPath)

Parameter

Parameter Typ Beschreibung
toPath String Ein durch Punkte getrennter Pfad zum window-Objekt, in den ein Wert kopiert werden soll. Alle Komponenten im Pfad bis zur letzten Komponente müssen bereits im Objekt window 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. toPath benötigt Schreibzugriff, fromPath benötigt Lesezugriff.


callInWindow

Ermöglicht Ihnen, Funktionen über einen Pfad außerhalb des window-Objekts auf richtliniengesteuerte Weise 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 Typ zugeordnet werden kann, der in JavaScript in der Sandbox unterstützt wird, wird undefined zurückgegeben. Die acht Typen, die in JavaScript in einer Sandbox 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 aufzurufenden Funktion in window.
args * Argumente, die an die Funktion übergeben werden sollen.

Verknüpfte Berechtigungen

access_globals mit aktivierter Berechtigung execute.


callLater

Plant einen Aufruf einer Funktion so, dass er asynchron erfolgt. 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 derzeit dem angegebenen Schlüssel in der Datenschicht zugewiesen ist: den Wert, der für den angegebenen Schlüssel gefunden wurde, wenn es ein primitiver Typ, eine Funktion oder ein Objektliteral ist, andernfalls undefined.

Syntax

copyFromDataLayer(key[, dataLayerVersion])

Parameter

Parameter Typ Beschreibung
key String Der Schlüssel im Format „a.b.c“.
dataLayerVersion number Die optionale Datenschichtversion. Der Standardwert liegt bei 2. Es wird dringend davon abgeraten, den Wert 1 zu verwenden.

Verknüpfte Berechtigungen

read_data_layer


copyFromWindow

Kopiert eine Variable aus dem window-Objekt. Wenn der Wert in window nicht direkt einem Typ zugeordnet werden kann, der in JavaScript in einer Sandbox unterstützt wird, wird undefined zurückgegeben. Die acht Typen, die in JavaScript in einer Sandbox 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 im window, dessen Wert kopiert werden soll.

Verknüpfte Berechtigungen

access_globals


createArgumentsQueue

Erstellt eine Warteschlange mit Argumentobjekten zur Unterstützung von Tag-Lösungen, die diese erfordern.

Erstellt mit dem Argument fnKey (gleiche Semantik wie createQueue) eine Funktion im globalen Bereich (d.h. window). Nachdem die Funktion erstellt wurde, erstellt diese API mit dem Argument arrayKey ein Array in window (falls noch nicht vorhanden).

Beim Aufrufen der unter fnKey erstellten Funktion wird das Objekt mit Argumenten in das Array übertragen, das unter arrayKey erstellt wurde. Der Rückgabewert der API ist die Funktion, die unter fnKey erstellt wurde.

Für diese Funktion ist die Lese- und Schreibeinstellung für fnKey und arrayKey in der Berechtigung access_globals erforderlich.

Example:

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

Syntax

createArgumentsQueue(fnKey, arrayKey)

Parameter

Parameter Typ Beschreibung
fnKey String Der Pfad in window, in dem die Funktion festgelegt ist, falls sie noch nicht vorhanden ist. Dieses Argument unterstützt die Standardnotation. Wenn der Pfad des Schlüssels nicht vorhanden ist, wird eine Ausnahme ausgelöst. Das heißt, wenn fnKey den Wert 'one.two' hat, wird eine Ausnahme ausgelöst.
arrayKey String Der Pfad in window, in dem das Array festgelegt ist, falls es noch nicht vorhanden ist. Dieses Argument unterstützt die Standardnotation. Wenn der Pfad des Schlüssels nicht vorhanden ist, wird eine Ausnahme ausgelöst. Das heißt, wenn arrayKey den Wert 'one.two' hat 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 überträgt.

Diese Funktion erfordert die Lese- und Schreibeinstellung für arrayKey in der Berechtigung access_globals.

Example:

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

Syntax

createQueue(arrayKey)

Parameter

Parameter Typ Beschreibung
arrayKey String Der Schlüssel in window, für den das Array festgelegt ist, falls noch nicht vorhanden. Dieses Argument unterstützt die Standardnotation. 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 angegeben wurde.

Example:

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.

Example:

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 umgeschrieben werden. Gibt einen string zurück, der den als URI codierten String darstellt. Gibt undefined zurück, wenn eine ungültige Eingabe (ein einzelner Ersatzwert) vorhanden ist.

Example:

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

Syntax

encodeUri(uri)

Parameter

Parameter Typ Beschreibung
uri String Ein vollständiger URI.

Verknüpfte Berechtigungen

Keine.


encodeUriComponent

Gibt einen codierten Uniform Resource Identifier (URI) zurück, indem Sonderzeichen umgeschrieben werden. Gibt einen string zurück, der den als URI codierten String darstellt. Gibt undefined zurück, wenn eine ungültige Eingabe (ein einzelner Ersatzwert) vorhanden ist.

Example:

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

Syntax

encodeUriComponent(str)

Parameter

Parameter Typ Beschreibung
str String 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) im angegebenen Bereich zurück.

Syntax

generateRandom(min, max)

Parameter

Parameter Typ Beschreibung
min number Möglicher Mindestwert der zurückgegebenen Ganzzahl.
max number Möglicher Höchstwert der zurückgegebenen Ganzzahl.

Verknüpfte Berechtigungen

Keine.


getContainerVersion

Gibt ein Objekt zurück, das Daten zum aktuellen Container enthält. Das zurückgegebene Objekt hat 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 boolean Legt fest, ob die Cookiewerte 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 den 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 boolean Gibt an, ob alle Werte abgerufen werden sollen.

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

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

Verknüpfte Berechtigungen

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


getReferrerQueryParameters

Die getReferrerQueryParameters API verhält sich genauso wie getQueryParameters, nur dass sie sich auf die Referrer-URL und nicht auf die aktuelle URL auswirkt. Gibt den ersten oder alle Parameter für den queryKey der angegebenen Referrer-URL 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 boolean Gibt an, ob alle Werte abgerufen werden sollen.

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

  • 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

Bei einem Komponententyp liest die API das Dokumentobjekt für die Referrer-URL und gibt einen String zurück, der einen Teil der Referrer-URL darstellt. 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 von der URL zurückgegeben werden soll. Mögliche Werte sind: protocol, host, port, path, query, extension. Wenn component den Wert undefined oder null hat oder keiner dieser Komponenten entspricht, 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. Bevorzugen Sie 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)

Notes

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

Eingabewert Ergebnis
undefined 'Nicht definiert'
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 URL oder einen Teil der aktuellen URL für einen Komponententyp und einige Konfigurationsparameter darstellt.

Syntax

getUrl(component)

Parameter

Parameter Typ Beschreibung
component String Die Komponente, die von der URL zurückgegeben werden soll. Hier muss entweder protocol, host, port, path, query, extension oder fragment angegeben werden. Wenn die Komponente undefined oder null ist oder keiner dieser Komponenten entspricht, wird der gesamte Wert href zurückgegeben.

Verknüpfte Berechtigungen

get_url


gtagSet

Überträgt einen gtag-Befehl an die Datenschicht, der so schnell wie möglich verarbeitet wird, nachdem das aktuelle Ereignis und alle von ihm ausgelösten Tags die Verarbeitung abgeschlossen haben (oder das Zeitlimit für die Tag-Verarbeitung erreicht wurde). Die Aktualisierung wird in diesem Container garantiert vor allen Elementen in der Datenschicht-Warteschlange verarbeitet.

Wenn der Aufruf beispielsweise über ein Tag erfolgt, das bei der Initialisierung der Einwilligung ausgelöst wurde, wird die Aktualisierung angewendet, bevor das Initialisierungsereignis verarbeitet wird. Beispiele: ads_data_redaction wird auf true oder false gesetzt 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, bei dem der globale Status für die zugehörigen Eigenschaften aktualisiert wird.

Verknüpfte Berechtigungen

write_data_layer prüft die Schreibberechtigung für dataLayer für alle angegebenen Schlüssel. Wenn die Eingabe in gtagSet ein einfaches Objekt ist, prüft die API für alle aufgeschlüsselten Schlüssel im Objekt eine Schreibberechtigung. Für gtagSet({foo: {bar: 'baz'}}) prüft die API beispielsweise, ob die API Schreibberechtigung für foo.bar hat.

Wenn die Eingabe für gtagSet ein Schlüssel und ein nicht einfacher Objektwert ist, prüft die API die Schreibberechtigung für diesen Schlüssel (z.B. für gtagSet('abc', true) ), die API prüft die Schreibberechtigung für 'abc'.

Wenn das Eingabeobjekt einen Zyklus enthält, werden nur Schlüssel geprüft, die vor demselben Objekt liegen.


injectHiddenIframe

Fügt der Seite einen unsichtbaren iFrame hinzu.

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

Syntax

injectHiddenIframe(url, onSuccess)

Parameter

Parameter Typ Beschreibung
url String Die URL, die als Wert für das Attribut src des iFrames verwendet werden soll.
onSuccess Funktion Wird aufgerufen, wenn der Frame erfolgreich geladen wurde.

Verknüpfte Berechtigungen

inject_hidden_iframe


injectScript

Fügt der Seite ein Skript-Tag hinzu, um die angegebene URL asynchron zu laden. Die Callbacks werden als Funktionsinstanzen angegeben und in JavaScript-Funktionen eingebunden, die an sie weiterleiten.

Syntax

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

Parameter

Parameter Typ Beschreibung
url String Die Adresse des Skripts, das eingeschleust werden soll.
onSuccess Funktion Wird aufgerufen, wenn das Skript erfolgreich geladen wurde.
onFailure Funktion Wird aufgerufen, wenn das Laden des Skripts fehlschlägt.
cacheToken String Optionaler String, mit dem die angegebene URL angegeben wird, im Cache gespeichert werden soll. Wenn dieser Wert angegeben ist, wird nur ein Skriptelement erstellt, um das JavaScript anzufordern. Alle weiteren Ladeversuche führen dazu, dass die angegebenen Methoden onSuccess und onFailure in die Warteschlange gestellt werden, bis das Skript geladen wird.

Verknüpfte Berechtigungen

inject_script


isConsentGranted

Gibt „true“ zurück, wenn die angegebene Einwilligungsart gewährt wird.

Die Einwilligung für eine bestimmte Einwilligungsart gilt als erteilt, wenn die Einwilligungsart auf „Erteilt“ oder nicht festgelegt wurde. Wenn die Einwilligungsart auf einen anderen Wert festgelegt ist, gilt sie als nicht erteilt.

Auf der Benutzeroberfläche von Tag Manager für die Tag-Einstellungen kann festgelegt werden, dass das Creative immer ausgelöst wird. Wenn ein Tag, bei dem „Immer auslösen“ aktiviert ist, diese API verwendet, gilt die Einwilligung als erteilt und true wird unabhängig vom tatsächlichen Status der Einwilligung zurückgegeben.

Example:

const isConsentGranted = require('isConsentGranted');

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

Syntax

isConsentGranted(consentType)

Parameter

Parameter Typ Beschreibung
consentType String Die Einwilligungsart, deren Status geprüft werden soll.

Verknüpfte Berechtigungen

Berechtigung access_consent mit Lesezugriff für die Einwilligungsart.


JSON

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

Die Funktion parse() parst einen JSON-String, um den durch den String beschriebenen Wert oder das Objekt zu erstellen. Wenn der Wert nicht geparst werden kann (z.B. bei fehlerhaftem JSON-Format), gibt die Funktion undefined zurück. Wenn der Eingabewert kein String ist, wird die Eingabe in einen String umgewandelt.

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

Syntax

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

Parameter

JSON.parse

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

JSON.stringify

Parameter Typ Beschreibung
value Beliebig 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 für den 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

Protokolliert Argumente in der Browserkonsole.

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 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 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 Wert, der konvertiert werden soll.

Verknüpfte Berechtigungen

Keine.


makeTableMap

Konvertiert ein einfaches Tabellenobjekt mit zwei Spalten in ein Map-Objekt. Dadurch wird ein SIMPLE_TABLE-Vorlagenfeld mit zwei Spalten in ein überschaubares Format geändert.

Diese Funktion könnte beispielsweise ein Tabellenobjekt konvertieren:

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

in eine Karte umwandeln:

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

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

Syntax

makeTableMap(tableObj, keyColumnName, valueColumnName)

Parameter

Parameter Typ Beschreibung
tableObj Liste Das Tabellenobjekt, das konvertiert werden soll. Es ist eine Liste von Karten, wobei jeder Map eine Zeile in der Tabelle darstellt. Jeder Eigenschaftsname in einem Zeilenobjekt ist der Spaltenname, und der Eigenschaftswert ist der Spaltenwert in der Zeile.
keyColumnName String Name der Spalte, deren Werte im konvertierten Map zu Schlüsseln werden.
valueColumnName String Name der Spalte, deren Werte im konvertierten Map zu Werten werden.

Verknüpfte Berechtigungen

Keine.


Math

Ein Objekt, das Math-Funktionen bereitstellt.

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

Parameter für mathematische Funktionen werden in Zahlen umgewandelt.

Verknüpfte Berechtigungen

Keine.


Object

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

Die Methode keys() bietet das Standardbibliotheksverhalten Object.keys(). Sie gibt ein Array der Namen der aufzählbaren Eigenschaften eines bestimmten Objekts in derselben Reihenfolge zurück wie bei einer for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode values() bietet das Standardbibliotheksverhalten Object.values(). Sie gibt ein Array mit den eigenen aufzählbaren Attributwerten eines bestimmten Objekts in derselben Reihenfolge zurück wie bei einer for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode entries() bietet das Verhalten der Standardbibliothek Object.entries(). Sie gibt ein Array mit den [key, value]-Paaren für Attribute mit Aufzählungszeichen eines bestimmten Objekts in derselben Reihenfolge zurück wie bei einer for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode freeze() bietet das Verhalten der Standardbibliothek Object.freeze(). Ein fixiertes Objekt kann nicht mehr geändert werden. Wenn Sie es einfrieren, können ihm keine neuen Eigenschaften hinzugefügt, vorhandene Eigenschaften entfernt und Werte vorhandener Eigenschaften nicht mehr geändert werden. freeze() gibt dasselbe Objekt zurück, das übergeben wurde. Ein primitives Argument oder ein Nullargument wird wie ein fixiertes Objekt behandelt und zurückgegeben.

Die Methode delete() bietet das Verhalten des Löschoperators der Standardbibliothek. Sie entfernt den angegebenen Schlüssel aus dem Objekt, sofern das Objekt nicht eingefroren ist. Wie der Löschoperator der Standardbibliothek wird true zurückgegeben, 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 den folgenden Punkten vom Löschoperator der Standardbibliothek:

  • keyToDelete darf kein String sein, der durch Punkte getrennt ist und einen verschachtelten Schlüssel angibt.
  • delete() kann nicht verwendet werden, um Elemente aus einem Array zu entfernen.
  • Mit delete() können keine Attribute aus dem globalen Geltungsbereich 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 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 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 Objekt, dessen Schlüssel/Wert-Paare aufgelistet werden sollen. Wenn die Eingabe kein Objekt ist, wird sie in ein Objekt umgewandelt.

Object.freeze

Parameter Typ Beschreibung
objectInput Beliebig Das zu fixierende Objekt. Wenn die Eingabe kein Objekt ist, wird sie als fixiertes Objekt behandelt.

Object.delete

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

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 ähnlich wie das URL-Objekt alle Komponenten einer bestimmten URL enthält.

Diese API gibt undefined für jede fehlerhafte URL zurück. Bei richtig formatierten URLs haben Felder, die nicht im URL-String vorhanden sind, einen leeren String oder im Fall von searchParams ein leeres Objekt.

Das zurückgegebene Objekt hat 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

Fragen Sie die zulässigen und eingeschränkten Berechtigungen ab. Gibt einen boolean Wert zurück: true, wenn eine Berechtigung gewährt wird, andernfalls false.

Syntax

queryPermission(permission, functionArgs*)

Parameter

Parameter Typ Beschreibung
permission String Name der Berechtigung.
functionArgs Beliebig Die Funktionsargumente variieren je nach abgefragter Berechtigung. Siehe Funktionsargumente weiter unten.

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. Übergeben Sie den Komponentennamen als zweites Argument, um abzufragen, ob eine bestimmte Komponente gelesen werden kann:

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

Wenn Sie prüfen möchten, ob ein bestimmter Abfrageschlüssel lesbar ist, übergeben Sie den Abfrageschlüssel 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 aus 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

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

Syntax

sendPixel(url, onSuccess, onFailure)

Parameter

Parameter Typ Beschreibung
url String Wohin das Pixel gesendet werden soll
onSuccess Funktion Wird aufgerufen, wenn das Pixel erfolgreich geladen wurde. Hinweis: Auch wenn die Anfrage erfolgreich gesendet wird, 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

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

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, Expiration, Max-Age, Secure und SameSite an. Weitere Informationen finden Sie unten im Abschnitt Optionen.
encode boolean Legt fest, ob der Cookiewert mit dem encodeURIComponent() von JavaScript codiert werden soll. Die Standardeinstellung ist true.

  • Domain: wird von der options['domain']-Property festgelegt, falls vorhanden. Legen Sie für diesen Wert 'auto' fest, um zu versuchen, das Cookie mit der größtmöglichen Domain (je nach Speicherort des Dokuments) zu schreiben. Wenn das nicht funktioniert, werden immer weiter engere Subdomains verwendet. Wenn all dies 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 angegebene Domain in document.cookie geschrieben wird, verwendet der User-Agent standardmäßig die Domain des Cookies auf den Host des aktuellen Speicherorts des Dokuments.
  • Pfad: von options['path'] festgelegt, falls vorhanden. Wird ein Cookie ohne angegebenen Pfad in document.cookie geschrieben, verwendet der User-Agent den Pfad des Cookies standardmäßig auf den Pfad des aktuellen Speicherorts des Dokuments.
  • Max-Age: Wird von options['max-age'] festgelegt, falls vorhanden.
  • Läuft ab: Wird von options['expires'] festgelegt, falls vorhanden. Falls vorhanden, muss dies ein Datumsstring im UTC-Format sein. Mit Date.toUTCString() kann ein Date für diesen Parameter formatiert werden.
  • Sicher:Wird von options['secure'] festgelegt, falls vorhanden.
  • SameSite:Wird von options['samesite'] festgelegt, falls vorhanden.

Verknüpfte Berechtigungen

set_cookies


setDefaultConsentState

Sendet eine standardmäßige Aktualisierung der Einwilligung an die Datenschicht, die so schnell wie möglich verarbeitet wird, nachdem das aktuelle Ereignis und alle von ihm ausgelösten Tags die Verarbeitung abgeschlossen haben (oder das Zeitlimit für die Tag-Verarbeitung erreicht wurde). Die Aktualisierung wird garantiert in diesem Container vor allen Elementen in der Datenschicht verarbeitet, die in der Warteschlange stehen. Weitere Informationen zur Einwilligung

Example:

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 Einwilligungsarten definiert.

Das Objekt consentSettings ist eine Zuordnung beliebiger Strings der Einwilligungsart 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 Werte außer „gewährt“ werden als „Abgelehnt“ behandelt. Wenn Sie den Wert auf „Nicht definiert“ festlegen, hat das keine Auswirkungen auf den vorherigen Wert.
region Array Ein optionales Array mit Regionscodes, die angeben, für welche Region die Einwilligungseinstellungen gelten. Regionscodes werden mithilfe des Landes und/oder der Untergruppen im Format ISO 3166-2 angegeben.
wait_for_update number Gibt einen Millisekundenwert an, um zu steuern, wie lange auf das Senden von Daten gewartet werden soll. Wird bei Einwilligungstools verwendet, die asynchron geladen werden.

Verknüpfte Berechtigungen

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


setInWindow

Legt den angegebenen Wert in window beim angegebenen Schlüssel fest. Wenn bereits ein Wert vorhanden ist, wird bei dieser Methode der Wert in window standardmäßig nicht festgelegt. Legen Sie overrideExisting auf true fest, um den Wert in der window unabhängig davon festzulegen, ob ein vorhandener Wert vorhanden ist. Gibt einen boolean Wert zurück: true, wenn der Wert erfolgreich festgelegt wurde, andernfalls false.

Syntax

setInWindow(key, value, overrideExisting)

Parameter

Parameter Typ Beschreibung
key String Der Schlüssel in window, in dem der Wert platziert werden soll.
value * Der in window festzulegende Wert.
overrideExisting boolean 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

Berechnet den SHA-256-Digest der Eingabe und ruft einen Callback mit dem in base64 codierten Digest auf, es sei denn, das options-Objekt gibt eine andere Ausgabecodierung an.

Example:

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 Hashwert berechnet wird.
onSuccess Funktion Wird mit dem resultierenden Digest aufgerufen, in base64 codiert, es sei denn, das options-Objekt gibt eine andere Ausgabecodierung an.
onFailure Funktion Wird aufgerufen, wenn beim Berechnen des Digests ein Fehler auftritt oder wenn 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 Optional, um die Ausgabecodierung anzugeben. Wenn 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 für den Zugriff auf den Vorlagenspeicher zurück. Durch das Speichern von Vorlagen können Daten für verschiedene Ausführungen einer einzelnen Vorlage freigegeben werden. Im Vorlagenspeicher gespeicherte Daten bleiben für die Lebensdauer der Seite bestehen.

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

Sendet eine Einwilligungsaktualisierung an die Datenschicht, die so schnell wie möglich verarbeitet wird, nachdem das aktuelle Ereignis und alle durch es ausgelösten Tags verarbeitet wurden oder das Zeitlimit für die Tag-Verarbeitung erreicht wurde. Das Update wird in diesem Container garantiert vor den Elementen in der Datenschicht verarbeitet, die sich in der Warteschlange befinden. Weitere Informationen zur Einwilligung

Example:

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 Einwilligungsarten aktualisiert.

Das Objekt consentSettings ist eine Zuordnung beliebiger Strings der Einwilligungsart zu 'granted' oder 'denied'. Folgende Werte werden unterstützt:

Schlüsselname Typ Beschreibung
consentType String Der Wert für jede Einwilligungsart kann auf „Gewährt“ oder „Abgelehnt“ festgelegt werden. Jeder andere Wert als „gewährt“ wird als „abgelehnt“ behandelt. Wenn Sie den Wert auf „nicht definiert“ festlegen, hat das keine Auswirkungen auf den vorherigen Wert.

Verknüpfte Berechtigungen

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


APIs testen

Diese APIs arbeiten mit JavaScript-Tests in einer Sandbox zusammen, 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 mit benutzerdefinierten Vorlagen


assertApi

Gibt ein Matcher-Objekt zurück, mit dem flüssige Aussagen über die angegebene API getroffen werden können.

Syntax

assertApi(apiName)

Parameter

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

Matcher

  • 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 der [Truth]-Bibliothek von Google nachempfunden. Sie gibt ein Objekt zurück, mit dem fließend Aussagen über den Wert eines Subjekts gemacht werden können. Ein assertionsfehler beendet den Test sofort und markiert ihn als fehlgeschlagen. Ein Fehler in einem Test hat jedoch keine Auswirkungen auf andere Testläufe.

Syntax

assertThat(actual, opt_message)

Parameter

Parameter Typ Beschreibung
actual Beliebig Der bei den Prüfungen zu verwendende Wert.
opt_message String Optionale Nachricht, die ausgegeben wird, wenn die Assertion fehlschlägt.

Matcher

Matcher Beschreibung
isUndefined() Bestätigt, dass das Subjekt undefined ist.
isDefined() Erklärt, dass das Thema nicht undefined ist.
isNull() Bestätigt, dass das Subjekt null ist.
isNotNull() Erklärt, dass das Thema nicht null ist.
isFalse() Bestätigt, dass das Subjekt false ist.
isTrue() Bestätigt, dass das Subjekt true ist.
isFalsy() Behauptung, dass das Subjekt falsch ist Falsche Werte sind undefined, null, false, NaN, 0 und' (leerer String).
isTruthy() Behauptung, das Subjekt ist wahrheitsgemäß. Falsche Werte sind undefined, null, false, NaN, 0 und' (leerer String).
isNaN() Bestätigt, dass das Subjekt der Wert NaN ist.
isNotNaN() Bestätigt, dass das Subjekt ein beliebiger Wert außer NaN ist.
isInfinity() Behauptet, dass das Subjekt positiv oder negativ unendlich ist.
isNotInfinity() Gibt an, dass das Subjekt ein beliebiger Wert außer positivem oder negativem unendlich ist.
isEqualTo(expected) Unternimmt, dass das Subjekt dem angegebenen Wert entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
isNotEqualTo(expected) Unternimmt, dass das Subjekt nicht dem angegebenen Wert entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isAnyOf(...expected) Unternimmt, dass das Subjekt einem der angegebenen Werte entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isNoneOf(...expected) Liefert, dass das Subjekt keinem der angegebenen Werte entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
isStrictlyEqualTo(expected) Stellt fest, dass das Subjekt genau mit dem angegebenen Wert gleich (===) ist.
isNotStrictlyEqualTo(expected) Gibt an, dass das Subjekt nicht genau mit dem angegebenen Wert gleich (!==) ist.
isGreaterThan(expected) Bestätigt, dass das Subjekt in einem geordneten Vergleich größer als (>) ist.
isGreaterThanOrEqualTo(expected) Gibt an, dass das Subjekt in einem geordneten Vergleich größer oder gleich (>=) ist.
isLessThan(expected) Bestätigt, dass das Subjekt in einem geordneten Vergleich kleiner als (<) ist.
isLessThanOrEqualTo(expected) Stellt fest, dass das Subjekt in einem geordneten Vergleich kleiner oder gleich (<=) ist.
contains(...expected) Stellt fest, dass das Subjekt ein Array oder ein String ist, das alle angegebenen Werte in beliebiger Reihenfolge enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
doesNotContain(...expected) Bestätigt, dass das Thema ein Array oder ein String ist, der bzw. der keinen der angegebenen Werte enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
containsExactly(...expected) Stellt fest, dass das Subjekt ein Array ist, das alle angegebenen Werte in beliebiger Reihenfolge enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
doesNotContainExactly(...expected) Stellt fest, dass das Subjekt ein Array ist, das einen anderen Satz von Werten als die angegebenen Werte in beliebiger Reihenfolge enthält. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
hasLength(expected) Bestätigt, dass das Thema ein Array oder ein String mit der angegebenen Länge ist. Die Assertion schlägt immer fehl, wenn der Wert kein Array oder String ist.
isEmpty() Bestätigt, dass das Thema ein leeres Array oder String ist (Länge = 0). Die Assertion schlägt immer fehl, wenn der Wert kein Array oder String ist.
isNotEmpty() Bestätigt, dass das Thema ein Array oder ein String ist, das bzw. der nicht leer ist (Länge > 0). Die Assertion schlägt immer fehl, wenn der Wert kein Array oder String ist.
isArray() Bestätigt, dass der Typ des Themas ein Array ist.
isBoolean() Bestätigt, dass der Typ des Subjekts ein boolescher Wert ist.
isFunction() Bestätigt, dass der Typ des Subjekts eine Funktion ist.
isNumber() Bestätigt, dass der Typ des Themas eine Zahl ist.
isObject() Bestätigt, dass der Typ des Themas ein Objekt ist.
isString() Bestätigt, dass der Typ des Themas 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

Schlägt den aktuellen Test sofort fehl und gibt die angegebene Nachricht aus, sofern angegeben.

Syntax

fail(opt_message);

Parameter

Parameter Typ Beschreibung
opt_message String Optionaler Text der Fehlermeldung.

Beispiel

fail('This test has failed.');

mock

Mit der mock API können Sie das Verhalten von in der Sandbox ausgeführten APIs überschreiben. Die Mock API kann in Vorlagencode sicher verwendet werden, funktioniert jedoch nicht, wenn sie sich nicht im Testmodus befindet. Die Simulationen werden vor jedem Test zurückgesetzt.

Syntax

mock(apiName, returnValue);

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu simulierenden API; derselbe String, der an require() übergeben wird
returnValue Beliebig Der Wert, der für die API oder eine Funktion zurückgegeben werden soll, die anstelle der API aufgerufen wird. Wenn returnValue eine Funktion ist, wird diese Funktion anstelle der Sandboxed API aufgerufen. Wenn returnValue etwas anderes als eine Funktion ist, wird dieser Wert anstelle der Sandboxed API zurückgegeben.

Beispiele

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

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