APIs für benutzerdefinierte Vorlagen

Wichtige APIs

Diese APIs funktionieren mit Sandbox-JavaScript, 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 des angegebenen Einwilligungstyps ändert.

Der angegebene Listener wird immer dann aufgerufen, wenn sich der Status des angegebenen Einwilligungstyps von „verweigert“ oder „gewährt“ in „verweigert“ ändert. Eine Einwilligungsart ohne Status gilt als gewährt. Der Listener wird also nicht aufgerufen, wenn ein nicht festgelegter Einwilligungstyp auf „Erteilt“ aktualisiert wird. Listener-Funktionen sind dafür verantwortlich, dass ihr Code die richtige Anzahl von Ausführungen ausführt.

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, auf den Statusänderungen beobachtet werden sollen.
listener Funktion Die Funktion, die ausgeführt werden soll, wenn sich der Status des angegebenen Einwilligungstyps ändert.

Wenn ein Listener aufgerufen wird, werden die geänderte Einwilligungsart und der neue Wert dieser Einwilligungsart übergeben:

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

Verknüpfte Berechtigungen

Berechtigung access_consent mit Lesezugriff auf 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 ein Zeitlimit für ein In-Page-Ereignis erreicht ist. An den Callback werden zwei Werte übergeben: die ID des Containers, der die Funktion aufruft, und ein Objekt, das Informationen zum Ereignis enthält.

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 mit Tag-Datenobjekten. Jedes Tag, das während des Ereignisses ausgelöst wird, hat einen Eintrag in diesem Array. Das Tag-Datenobjekt enthält die ID des Tags (id), den 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 erstellen (z.B. window.foo = window.bar), der bestimmte Tags unterstützt, für die ein Alias erforderlich ist. Weist den Wert im Objekt window, der am fromPath zu finden ist, dem Schlüssel im Objekt window in dem Objekt toPath zu. Gibt true zurück, wenn der Vorgang erfolgreich war. Andernfalls false.

Syntax

aliasInWindow(toPath, fromPath)

Parameter

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


callInWindow

Damit können Sie Funktionen pfadgesteuert über einen Pfad vom Objekt window aufrufen. 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 zugewiesen werden kann, der in einer Sandbox unterstützt wird, wird undefined zurückgegeben. Die sechs Sandbox-Typen, die 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 punktgetrennter Pfad zur Funktion in window, die aufgerufen werden soll.
args * An die Funktion zu übergebende Argumente.

Verknüpfte Berechtigungen

access_globals mit aktivierter Berechtigung execute.


callLater

Plant einen Aufruf einer Funktion, der asynchron ausgeführt werden soll. Die Funktion wird aufgerufen, nachdem der aktuelle Code zurückgegeben wurde. Das 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 Datenschicht zugewiesen ist: der Wert, der am angegebenen Schlüssel gefunden wird, wenn es sich um einen einfachen Typ, eine Funktion oder ein Objektliteral handelt, oder 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. Wir raten dringend davon ab, 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 einer Sandbox unterstützt wird, wird undefined zurückgegeben. Die acht Typen, die in der Sandbox-JavaScript-Datei 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, in den der Wert kopiert wird.

Verknüpfte Berechtigungen

access_globals


createArgumentsQueue

Erstellt eine Warteschlange, die mit Argumentobjekten gefüllt ist, um Tag-Lösungen zu unterstützen, die sie erfordern.

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

Wenn die Funktion, die unter fnKey erstellt wurde, aufgerufen wird, wird deren Argumentobjekt in das unter arrayKey erstellte Array verschoben. Der Rückgabewert der API ist die unter fnKey erstellte Funktion.

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

Beispiel:

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

Syntax

createArgumentsQueue(fnKey, arrayKey)

Parameter

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

Verknüpfte Berechtigungen

access_globals


createQueue

Erstellt ein Array in window (wenn 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 für die Berechtigung access_globals.

Beispiel:

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

Syntax

createQueue(arrayKey)

Parameter

Parameter Typ Beschreibung
arrayKey String Der Schlüssel in window, bei dem das Array festgelegt ist, falls noch nicht vorhanden. 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 bereitgestellten 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 durch encodeUri() oder auf andere Weise codiert wurde.

Verknüpfte Berechtigungen

Keine.


decodeUriComponent

Decodiert alle codierten Zeichen in der bereitgestellten URI-Komponente. Gibt einen String zurück, der die decodierte URI-Komponente darstellt. Gibt undefined zurück, wenn die Eingabe ungültig ist.

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 maskiert werden. Gibt einen String zurück, der den angegebenen String darstellt, der als URI codiert ist. Gibt undefined zurück, wenn die Eingabe ungültig ist (ein einziger Ersatzwert).

Beispiel:

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 maskiert werden. Gibt einen String zurück, der den angegebenen String darstellt, der als URI codiert ist. Gibt undefined zurück, wenn die Eingabe ungültig ist (ein einziger Ersatzwert).

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 die Eingabe ungültig ist.

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


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 Maximaler potenzieller Wert 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 Boolesch Steuert, ob die Cookiewerte mit JavaScript decodeURIComponent() 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 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, geschieht Folgendes:

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

Verknüpfte Berechtigungen

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


getReferrerQueryParameters

Die getReferrerQueryParameters API funktioniert genauso wie die getQueryParameters, mit Ausnahme der Verweis-URL und nicht der aktuellen URL. Gibt den ersten oder alle Parameter für die queryKey des angegebenen Verweises 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 Gibt an, ob alle Werte abgerufen werden sollen.

Lautet die Verweis-URL beispielsweise https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo, 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 muss 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 Verweis-URL und gibt einen String zurück, der einen Teil der Verweis-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. Kann eines der folgenden sein: protocol, host, port, path, query, extension. Wenn component den Wert undefined oder null hat oder mit keiner dieser Komponenten übereinstimmt, wird die gesamte URL zurückgegeben.

Verknüpfte Berechtigungen

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


getTimestamp

Veraltet. getTimestampMillis bevorzugen.

Gibt eine Zahl zurück, die die aktuelle Zeit in Millisekunden seit der Unix-Epoche darstellt, 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 darstellt, 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)

Anmerkungen

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

Eingabewert Ergebnis
undefined nicht definiert
null null
true „Boolesch“
12 „Zahl“
'string' String
{ a: 3 } Objekt
[ 1, 3 ] Array
(x) => x + 1 „Funktion“

Verknüpfte Berechtigungen

Keine.


getUrl

Gibt einen String zurück, der alle oder einen Teil der aktuellen URL, d. h. 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. Muss einer der folgenden sein: protocol, host, port, path, query, extension, fragment. Wenn die Komponente undefined oder null ist oder mit keiner dieser Komponenten übereinstimmt, wird der gesamte href-Wert zurückgegeben.

Verknüpfte Berechtigungen

get_url


gtagSet

Übermittelt einen gtag-set-Befehl an die Datenschicht, damit dieses schnellstmöglich verarbeitet wird, nachdem das aktuelle Ereignis und alle vom Tag ausgelösten Tags abgeschlossen sind (oder das Zeitlimit für die Tag-Verarbeitung erreicht wurde). Die Aktualisierung wird in diesem Container auf jeden Fall verarbeitet, bevor Elemente in der Datenschicht in die Warteschlange gestellt werden.

Wird beispielsweise von einem Tag aufgerufen, das bei Initialisierung der Einwilligung ausgelöst wird, wird die Aktualisierung vor der Verarbeitung des Initialisierungsereignisses angewendet. Beispiele: ads_data_redaction wird auf true oder false oder url_passthrough auf true oder false festgelegt.

Beispiele:

const gtagSet = require('gtagSet');

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

Syntax

gtagSet(object)

Parameter

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

Verknüpfte Berechtigungen

write_data_layer prüft für alle angegebenen Schlüssel die Schreibberechtigung für dataLayer. Wenn eine Eingabe in gtagSet ein einfaches Objekt ist, prüft die API die Schreibberechtigung für alle vereinfachten Schlüssel innerhalb dieses Objekts, z.B. bei gtagSet({foo: {bar: 'baz'}}), sucht die API nach Schreibberechtigungen für foo.bar.

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

Wenn ein Zyklus im Eingabeobjekt vorhanden ist, werden nur Schlüssel überprüft, bevor das gleiche Objekt erreicht wird.


injectHiddenIframe

Fügt der Seite einen unsichtbaren iFrame hinzu.

Callbacks werden als Funktionsinstanzen angegeben und in JavaScript-Funktionen eingeschlossen, die diese aufrufen.

Syntax

injectHiddenIframe(url, onSuccess)

Parameter

Parameter Typ Beschreibung
url String Die URL, die als Wert des iFrame-Attributs src 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 zurückgegeben und in JavaScript-Funktionen eingeschlossen, die sie aufrufen.

Syntax

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

Parameter

Parameter Typ Beschreibung
url String Die Adresse des Skripts, das eingefügt werden soll.
onSuccess Funktion Wird aufgerufen, wenn das Skript erfolgreich geladen wurde.
onFailure Funktion Wird aufgerufen, wenn das Skript nicht geladen werden kann.
cacheToken String Optionaler String, der angibt, ob die angegebene URL im Cache gespeichert werden soll. Wenn dieser Wert angegeben ist, wird nur ein Skriptelement erstellt, um das JavaScript anzufordern. Alle weiteren Versuche, die Seiten zu laden, führen dazu, dass die angegebenen Methoden onSuccess und onFailure in die Warteschlange gestellt werden, bis das Skript geladen wurde.

Verknüpfte Berechtigungen

inject_script


isConsentGranted

Gibt „true“ zurück, wenn der angegebene Einwilligungstyp gewährt wurde.

Die Einwilligung für einen bestimmten Einwilligungstyp gilt als gewährt, wenn die Einwilligungsart auf „Gewährt“ oder gar nicht gesetzt wurde. Wenn für die Einwilligungsart ein anderer Wert festgelegt ist, wird sie als nicht erteilt betrachtet.

In der Tag Manager-Benutzeroberfläche für die Tag-Einstellungen gibt es die Option, die immer ausgelöst werden soll. Wenn ein Tag mit aktivierter API diese API verwendet, wird die Einwilligung erteilt und true unabhängig vom tatsächlichen Einwilligungsstatus zurückgegeben.

Beispiel:

const isConsentGranted = require('isConsentGranted');

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

Syntax

isConsentGranted(consentType)

Parameter

Parameter Typ Beschreibung
consentType String Die Einwilligungsart, die den Status prüfen soll.

Verknüpfte Berechtigungen

Berechtigung access_consent mit Lesezugriff auf die Einwilligungsart.


JSON

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

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

Die Funktion stringify() wandelt die Eingabe in einen JSON-String um. 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
Stringeingabe 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
value 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 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 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 ein Map um. Dadurch wird ein SIMPLE_TABLE-Vorlagenfeld mit zwei Spalten in ein übersichtlicheres Format geändert.

Diese Funktion kann beispielsweise ein Tabellenobjekt konvertieren:

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

in eine Karte ein:

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

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

Syntax

makeTableMap(tableObj, keyColumnName, valueColumnName)

Parameter

Parameter Typ Beschreibung
tableObj Auflisten Das zu konvertierende Tabellenobjekt. Dies ist eine Liste mit Karten, von denen jeder Map eine Zeile in der Tabelle darstellt. Jeder Attributname in einem Zeilenobjekt ist der Spaltenname und der Attributwert ist der Spaltenwert in der Zeile.
keyColumnName String Name der Spalte, deren Werte in den konvertierten Map in Schlüssel umgewandelt werden.
valueColumnName String Name der Spalte, deren Werte in den konvertierten Map-Wert umgewandelt 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

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() liefert das Verhalten der Standardbibliothek Object.keys(). Sie gibt ein Array mit den Aufzählungswerten eines bestimmten Objekts in der Reihenfolge zurück, in der sich eine for...in...-Schleife befindet. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode values() bietet das Verhalten der Standardbibliothek Object.values(). Sie gibt ein Array mit den eigenen Aufzählungswerten für ein bestimmtes Objekt 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() liefert das Verhalten der Standardbibliothek Object.entry(). Sie gibt ein Array mit den eigenen Aufzählungselementen [key, value] eines bestimmten Objekts in derselben Reihenfolge zurück, in der eine for...in...-Schleife ausgeführt werden würde. Wenn der Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode freeze() liefert das Verhalten der Standardbibliothek Object.freeze(). Ein eingefrorenes Objekt kann nicht mehr geändert werden. Das Einfrieren eines Objekts verhindert, dass neue Attribute hinzugefügt, bestehende Attribute entfernt oder die Werte vorhandener Attribute geändert werden. freeze() gibt dasselbe Objekt zurück, das übergeben wurde. Ein einfaches oder Null-Argument wird so behandelt, als wäre es ein eingefrorenes Objekt, und wird zurückgegeben.

Die Methode delete() liefert das Verhalten des Operators für die Standardbibliothek. Der angegebene Schlüssel wird nur dann aus dem Objekt entfernt, wenn das Objekt einfriert. Wie beim Löschen der Standardbibliothek wird auch dann 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. Es unterscheidet sich jedoch in folgenden Punkten vom Operator „Standardbibliothek“:

  • keyToDelete darf kein punktgetrennter String sein, der einen verschachtelten Schlüssel angibt.
  • Mit delete() können keine Elemente aus einem Array entfernt werden.
  • Mit delete() können keine Attribute aus dem globalen Bereich 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
Objekteingabe Beliebig Das Objekt, dessen Schlüssel aufgelistet werden sollen. Wenn die Eingabe kein Objekt ist, wird sie in ein Objekt umgewandelt.

Objekt.Werte

Parameter Typ Beschreibung
Objekteingabe Beliebig Das Objekt, dessen Werte aufgelistet werden sollen. Wenn die Eingabe kein Objekt ist, wird sie in ein Objekt umgewandelt.

Object.entry

Parameter Typ Beschreibung
Objekteingabe 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
Objekteingabe Beliebig Das Objekt, das gesperrt werden soll Wenn die Eingabe kein Objekt ist, wird sie als eingefrorenes Objekt behandelt.

Objekt löschen

Parameter Typ Beschreibung
Objekteingabe Beliebig Das Objekt, dessen Schlüssel gelöscht werden soll.
KeyToDelete String Der Schlüssel auf oberster 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 alle Komponenten der jeweiligen URL enthält, ähnlich wie das Objekt URL.

Diese API gibt für jede fehlerhafte URL undefined zurück. Bei richtig formatierten URLs haben Felder, die nicht im URL-String vorhanden sind, den Wert eines leeren Strings 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 den Booleschen Wert true zurück, wenn eine Berechtigung gewährt wurde. Andernfalls wird false zurückgegeben.

Syntax

queryPermission(permission, functionArgs*)

Parameter

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

Funktionsargumente

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

writeGlobals, readGlobals: Der zweite Parameter muss 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 abfragen möchten, ob eine bestimmte Komponente gelesen werden kann, übergeben Sie den Namen der Komponente als zweites Argument:

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

Wenn Sie prüfen möchten, ob ein bestimmter Abfrageschlüssel lesbar ist, übergeben Sie diesen 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 nach Name. Gibt eine Funktion oder ein Objekt zurück, die aus 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

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

Syntax

sendPixel(url, onSuccess, onFailure)

Parameter

Parameter Typ Beschreibung
url String Wo soll das Pixel gesendet werden?
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 wird. Hinweis: Selbst wenn die Anfrage erfolgreich gesendet wird, kann onFailure ausgeführt werden, 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 es.

Syntax

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

Parameter

Parameter Typ Beschreibung
name String Name des Cookies.
value String Wert des Cookies.
options Objekt Gibt die Attribute Domain, Pfad, Ablaufdatum, Höchstalter, Sicher und SameSite an. Weitere Informationen finden Sie unter Optionen unten.
encode Boolesch Steuert, ob der Cookie-Wert mit encodeURIComponent() von JavaScript codiert werden soll. Die Standardeinstellung ist true.

Optionen

  • Domain: Von options['domain']-Property festgelegt, falls vorhanden. Setzen Sie diesen Wert auf 'auto', um das Cookie mit der größtmöglichen Domain basierend auf dem Dokumentspeicherort zu schreiben. Wenn dies fehlschlägt, werden nach und nach engere Subdomains verwendet. Wenn alles scheitert, wird versucht, das Cookie ohne Domain zu schreiben. Wenn kein Wert festgelegt ist, wird versucht, das Cookie ohne angegebene Domain zu schreiben. Hinweis: Wenn ein Cookie ohne angegebene Domain in document.cookie geschrieben wird, wird die Domain des Cookies standardmäßig auf den Host des aktuellen Dokumentspeicherorts gesetzt.
  • Pfad: Wird von options['path'] festgelegt, falls vorhanden. Wenn ein Cookie ohne angegebenen Pfad in document.cookie geschrieben wird, legt der User-Agent den Pfad des Cookies standardmäßig auf den Pfad des aktuellen Dokumentspeicherorts fest.
  • Max. Alter:Wird von options['max-age'] festgelegt, falls vorhanden.
  • Läuft ab:Wird von options['expires'] festgelegt, falls vorhanden. Wenn 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

Es wird eine standardmäßige Aktualisierung der Einwilligung an die Datenschicht übertragen, die so schnell wie möglich nach dem aktuellen Ereignis und den von ihm ausgelösten Tags verarbeitet wird oder das Zeitlimit für die Tag-Verarbeitung erreicht ist. Die Aktualisierung wird in diesem Container garantiert vor allen Elementen in der Datenschicht verarbeitet, die in die Warteschlange gestellt wurden. 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 Objekt Ein Objekt, das den Standardstatus für die angegebenen Einwilligungsarten 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 jede Einwilligungsart kann auf „gewährt“ oder „verweigert“ gesetzt werden. Alle Werte außer „gewährt“ werden als „verweigert“ behandelt. Wenn Sie diesen Wert auf „nicht definiert“ festlegen, hat das keine Auswirkungen auf den vorherigen Wert.
region Array Ein optionales Array von Regionscodes, das angibt, für welche Region die Einwilligungseinstellungen gelten. Regionscodes werden durch Länder- und/oder Unterteilungen im Format ISO 3166-2 dargestellt.
wait_for_update number Gibt einen Millisekundenwert an, um festzulegen, wie lange vor dem 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. Standardmäßig wird mit dieser Methode der Wert für window nicht festgelegt, wenn bereits ein Wert vorhanden ist. Setzen Sie overrideExisting auf true, um den Wert in window festzulegen, unabhängig vom Vorhandensein eines vorhandenen Werts. Gibt einen Booleschen 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, an dem der Wert platziert 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

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.

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 String, für den der Hash berechnet werden soll.
onSuccess Funktion Wird mit dem resultierenden Digest aufgerufen, codiert in base64, 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 bietet. Der Callback wird mit einem Objekt aufgerufen, das den Namen des Fehlers und die Nachricht enthält.
options Objekt 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. Mit dem Vorlagenspeicher können Daten für die Ausführung einer einzigen 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 String, der codiert werden soll.

Beispiel

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');

Verknüpfte Berechtigungen


updateConsentState

Es wird eine Einwilligungsaktualisierung in die Datenschicht übertragen, um so bald wie möglich nach dem aktuellen Ereignis und allen von ihm ausgelösten Tags verarbeitet zu werden bzw. das Zeitlimit für die Tag-Verarbeitung wurde erreicht. Die Aktualisierung wird in diesem Container auf jeden Fall verarbeitet, bevor Elemente in der Datenschicht in die Warteschlange gestellt werden. 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 Objekt Ein Objekt, das den Status für die angegebenen Einwilligungsarten 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 jede Einwilligungsart kann auf „gewährt“ oder „abgelehnt“ gesetzt werden. Alle Werte außer „gewährt“ werden als „Abgelehnt“ behandelt. Wenn Sie den Wert auf „undefined“ 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 funktionieren in Sandbox-JavaScript-Tests, 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 für benutzerdefinierte Vorlagen


assertApi

Gibt ein Matcher-Objekt zurück, mit dem fließende Assertions zur angegebenen API gemacht werden können.

Syntax

assertApi(apiName)

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu prüfenden API. Derselbe 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 dem Modell der [Truth]-Bibliothek von Google nachempfunden. Sie gibt ein Objekt zurück, mit dem fließende Assertions zum Wert eines Subjekts erstellt werden können. Bei einem fehlgeschlagenen Fehler wird der Test sofort beendet und als fehlgeschlagen markiert. 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 Wert für die fließende Überprüfung.
opt_message String Optionale Nachricht, die ausgegeben wird, wenn die Assertion fehlschlägt.

Matcher

Matcher Beschreibung
isUndefined() Es wird behauptet, dass der Betreff undefined ist.
isDefined() Es wird behauptet, dass der Betreff nicht undefined ist.
isNull() Es wird behauptet, dass der Betreff null ist.
isNotNull() Es wird behauptet, dass der Betreff nicht null ist.
isFalse() Es wird behauptet, dass der Betreff false ist.
isTrue() Es wird behauptet, dass der Betreff true ist.
isFalsy() Es wird behauptet, das Subjekt fälschlich zu sein. Falsche Werte sind undefined, null, false, NaN, 0 und (*) (leerer String).
isTruthy() Es wird behauptet, das Thema sei wahr. Falsche Werte sind undefined, null, false, NaN, 0 und (*) (leerer String).
isNaN() Es wird behauptet, dass das Subjekt der Wert NaN ist.
isNotNaN() Es wird behauptet, dass das Subjekt neben NaN ein beliebiger Wert ist.
isInfinity() Es wird behauptet, dass das Thema positiv oder negativ unendlich ist.
isNotInfinity() Es wird behauptet, dass das Thema ein beliebiger Wert neben einem positiven oder negativen Infinity ist.
isEqualTo(expected) Es wird behauptet, dass der Subjekt dem angegebenen Wert entspricht. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isNotEqualTo(expected) Es wird behauptet, dass der Subjekt nicht mit dem angegebenen Wert übereinstimmt. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isAnyOf(...expected) Es wird behauptet, dass der Betreff einem der angegebenen Werte entspricht. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isNoneOf(...expected) Es wird behauptet, dass der Betreff mit keinem der angegebenen Werte übereinstimmt. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
isStrictlyEqualTo(expected) Es wird behauptet, dass der Betreff (===) genau dem angegebenen Wert entspricht.
isNotStrictlyEqualTo(expected) Gibt an, dass der Betreff (!==) nicht genau dem angegebenen Wert entspricht.
isGreaterThan(expected) Gibt an, dass der Betreff größer als (>) dem angegebenen Wert in einem geordneten Vergleich ist.
isGreaterThanOrEqualTo(expected) Gibt an, dass das Thema (>=) größer oder gleich dem angegebenen Wert in einem geordneten Vergleich ist.
isLessThan(expected) Gibt an, dass der Betreff kleiner als (<) dem angegebenen Wert in einem geordneten Vergleich ist.
isLessThanOrEqualTo(expected) Gibt an, dass das Thema kleiner als oder gleich (<=) dem angegebenen Wert in einem geordneten Vergleich ist.
contains(...expected) Behauptet, der Betreff ist ein Array oder String, der alle angegebenen Werte in beliebiger Reihenfolge enthält. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
doesNotContain(...expected) Damit wird behauptet, dass es sich bei dem Betreff um ein Array oder einen String handelt, der keinen der angegebenen Werte enthält. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
containsExactly(...expected) Behauptet, der Betreff ist ein Array, das alle angegebenen Werte in beliebiger Reihenfolge und keine anderen Werte enthält. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
doesNotContainExactly(...expected) Behauptet, der Subjekt ist ein Array, das eine andere Gruppe von Werten von den angegebenen Werten in beliebiger Reihenfolge enthält. Dies ist ein Wertevergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird rekursiv verglichen.
hasLength(expected) Damit wird behauptet, dass es sich bei dem Betreff um ein Array oder einen String mit der angegebenen Länge handelt. Die Assertion schlägt immer fehl, wenn der Wert kein Array oder String ist.
isEmpty() Damit wird behauptet, dass das Subjekt ein leeres Array oder ein leerer String ist (Länge = 0). Die Assertion schlägt immer fehl, wenn der Wert kein Array oder String ist.
isNotEmpty() Damit wird behauptet, dass es sich bei dem Betreff um ein Array oder einen String handelt, der nicht leer ist (Länge > 0). Die Assertion schlägt immer fehl, wenn der Wert kein Array oder String ist.
isArray() Damit wird behauptet, dass es sich bei dem Betreff um ein Array handelt.
isBoolean() Damit wird bestätigt, dass der Betreff ein boolescher Wert ist.
isFunction() Es wird behauptet, dass es sich bei dem Typ des Subjekts um eine Funktion handelt.
isNumber() Es wird behauptet, dass der Betreff eine Zahl ist.
isObject() Geltt, dass der Typ des Subjekts ein Objekt ist.
isString() Damit wird behauptet, dass es sich bei dem Betreff um einen String handelt.

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 Nachricht wird ausgegeben, 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 Sandbox-APIs überschreiben. Die Mock-API kann im Vorlagencode sicher verwendet werden. Wenn der Testmodus nicht aktiviert ist, funktioniert sie nicht. Diese 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 zurückgegeben werden soll, oder eine Funktion, 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, also den Inhalt des Tabs Code, in der aktuellen Testumgebung mit einem bestimmten Eingabedatenobjekt aus.

Syntax

runCode(data)

Parameter

Parameter Typ Beschreibung
data Objekt 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'});