APIs für serverseitiges Tagging

In diesem Dokument werden die APIs für das serverseitige Tagging beschrieben.


addEventCallback

Registriert eine Rückruffunktion, die am Ende eines Ereignisses aufgerufen wird. Die Callback wird aufgerufen, wenn alle Tags für das Ereignis ausgeführt wurden. Die Callback werden zwei Werte übergeben: die ID des Containers, der die Funktion aufruft. und ein Objekt, das Informationen über das Ereignis enthält.

Wenn diese API in einem Tag verwendet wird, wird sie dem aktuellen Ereignis zugeordnet. Wenn diese API in einem Client verwendet wird, muss sie mithilfe der Methode Die bindToEvent-Funktion der runContainer API. Weitere Informationen finden Sie in der beispiel.

Syntax

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // Take some action based on the event data.
});

Parameter

Parameter Typ Beschreibung
callback Funktion Die am Ende des Ereignisses aufzurufende Funktion.

Das eventData-Objekt enthält die folgenden Daten:

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

In einem Client:

const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

claimRequest();

const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
  runContainer(evt, /* onComplete= */ (bindToEvent) => {
    bindToEvent(addEventCallback)((containerId, eventData) => {
      logToConsole('Event Number: ' + i);
      eventData.tags.forEach((tag) => {
        logToConsole('Tag ID: ' + tag.id);
        logToConsole('Tag Status: ' + tag.status);
        logToConsole('Tag Execution Time: ' + tag.executionTime);
      });
    });
    if (events.length === ++eventsCompleted) {
      returnResponse();
    }
  });
});

In einem Tag:

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // This will be called at the end of the current event.
});

Zugehörige Berechtigungen

read_event_metadata


callLater

Plant einen asynchronen Aufruf einer Funktion. Die Funktion ist aufgerufen, nachdem der aktuelle Code zurückgegeben wurde. Dies entspricht setTimeout(<function>, 0)

Beispiel

const callLater = require('callLater');
const logToConsole = require('logToConsole');

callLater(() => {
  logToConsole('Logged asynchronously');
});

Syntax

callLater(function)

Parameter

Parameter Typ Beschreibung
function Funktion Die aufzurufende Funktion.

Zugehörige Berechtigungen

Keine.


claimRequest

Verwenden Sie diese API in einem Client, um die Anfrage zu beanspruchen. Sobald ein Antrag beansprucht wurde, Der Container führt keine zusätzlichen Clients aus.

Diese API löst eine Ausnahme aus, wenn sie in einem Tag oder einer Variablen aufgerufen wird. Diese API löst eine Ausnahme, wenn der Aufruf erfolgt, nachdem der Client zurückgegeben hat (z.B. bei Aufruf in einem asynchronen Callbacks wie in callLater oder der runContainer-Funktion onComplete.

Ein Client sollte die Anfrage über diese API beanspruchen, bevor die runContainer-API.

Beispiel

const claimRequest = require('claimRequest');

claimRequest();

Syntax

claimRequest();

Zugehörige Berechtigungen

Keine.


computeEffectiveTldPlusOne

Gibt die effektive Top-Level-Domain + 1 (eTLD+1) der angegebenen Domain oder URL zurück. eTLD+1 wird berechnet, indem die Domain mit der Public Suffix List verglichen wird. Regeln. eTLD+1 ist normalerweise die Domain der höchsten Ebene, auf der Sie Cookie.

Wenn das Argument null oder nicht definiert ist, wird der Argumentwert zurückgegeben. unverändert lassen. Andernfalls wird das Argument in einen String umgewandelt. Wenn das Argument nicht eine gültige Domain oder URL enthält, wird ein leerer String zurückgegeben. Wenn der Server nicht , um die öffentliche Suffixliste abzurufen, wird der Argumentwert unverändert zurückgegeben.

Beispiel

const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');

// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');

// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');

Syntax

computeEffectiveTldPlusOne(domainOrUrl);

Parameter

Parameter Typ Beschreibung
domainOrUrl String Eine Domain oder URL, auf der eTLD+1 berechnet werden soll.

Zugehörige Berechtigungen

Keine.


createRegex

Erstellt eine neue Regex-Instanz und gibt sie in einem Objekt zurück. Sie können nicht greifen Sie direkt auf den regulären Ausdruck zu. Sie können sie jedoch an die testRegex API übergeben. String.replace(), String.match() und String.search().

Gibt null zurück, wenn der reguläre Ausdruck ungültig oder Re2 auf dem Server nicht verfügbar ist.

Diese API verwendet ein Re2- Implementierung. Das Docker-Image des Servers muss mindestens die Version 2.0.0 haben.

Beispiel

const createRegex = require('createRegex');

const domainRegex = createRegex('\\w+\\.com', 'i');

// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');

Syntax

createRegex(pattern, flags);

Parameter

Parameter Typ Beschreibung
pattern String Text des regulären Ausdrucks.
flags String Ein optionaler String, der die Flags für den zu erstellenden regulären Ausdruck enthält. „g“ (global) und „i“ (Groß-/Kleinschreibung ignorieren) werden unterstützt. Alle anderen Zeichen sind wird stillschweigend ignoriert.

Zugehörige Berechtigungen

Keine.

Mindestversion der Image-Version

2.0.0


decodeUri

Decodiert alle codierten Zeichen im bereitgestellten URI. Gibt einen string zurück, der steht für den decodierten URI. Gibt undefined zurück, wenn ein ungültiger Wert angegeben wurde Eingabe.

Beispiel

const decodeUri = require('decodeUri');

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

Syntax

decodeUri(encoded_uri);

Parameter

Parameter Typ Beschreibung
encoded_uri String Einen URI, der von encodeUri() oder auf andere Weise.

Zugehörige Berechtigungen

Keine.


decodeUriComponent

Decodiert alle codierten Zeichen in der bereitgestellten URI-Komponente. Gibt Folgendes zurück: string für die decodierte URI-Komponente Gibt undefined zurück, wenn bei einer ungültigen Eingabe.

Beispiel

const decodeUriComponent = require('decodeUriComponent');

const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
  // ...
}

Syntax

decodeUriComponent(encoded_uri_component);

Parameter

Parameter Typ Beschreibung
encoded_uri_component String Eine URI-Komponente, die durch encodeUriComponent() oder auf andere Weise nutzen.

Zugehörige Berechtigungen

Keine.


encodeUri

Gibt einen codierten URI (Uniform Resource Identifier) zurück, indem spezielle Zeichen. Gibt einen string zurück, der den angegebenen String darstellt und codiert ist. als URI.

Beispiel

const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');

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

Syntax

encodeUri(uri);

Parameter

Parameter Typ Beschreibung
uri String Einen vollständigen URI.

Zugehörige Berechtigungen

Keine.


encodeUriComponent

Gibt einen codierten URI (Uniform Resource Identifier) zurück, indem spezielle Zeichen. Gibt einen string zurück, der den bereitgestellten String darstellt. URI.

Beispiel

const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');

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

Syntax

encodeUriComponent(str);

Parameter

Parameter Typ Beschreibung
str String Eine Komponente eines URI.

Zugehörige Berechtigungen

Keine.


extractEventsFromMpv1

Übersetzt eine eingehende Measurement Protocol V1-Anfrage in eine Liste von Ereignissen in Einheitliches Schemaformat. Gibt die Liste der extrahierten Ereignisse zurück. Ein Fehler wird ausgegeben, wenn die Anfrage nicht das richtige Format hat.

Beispiel

const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  const events = extractEventsFromMpv1();
  for (let i = 0; i < events.length; ++i) {
    const event = events[i];
    // Process event.
  }
}

Syntax

extractEventsFromMpv1();

Zugehörige Berechtigungen

Erfordert die Berechtigung read_request. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • body
  • query parameters

extractEventsFromMpv2

Übersetzt eine eingehende Measurement Protocol V2-Anfrage in eine Liste von Ereignissen in Einheitliches Schemaformat. Gibt die Liste der extrahierten Ereignisse zurück. Ein Fehler wird ausgegeben, wenn die Anfrage nicht das richtige Format hat.

Beispiel

const extractEventsFromMpv2 = require('extractEventsFromMpv2');
const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  const events = extractEventsFromMpv2();
  for (let i = 0; i < events.length; ++i) {
    const event = events[i];
    // Process event.
  }
}

Syntax

extractEventsFromMpv2();

Zugehörige Berechtigungen

Erfordert die Berechtigung read_request. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • body
  • query parameters

fromBase64

Decodiert einen base64-codierten String. 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') {
  // ...
}

Zugehörige Berechtigungen

Keine.


generateRandom

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

Beispiel

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

Syntax

generateRandom(min, max);

Parameter

Parameter Typ Beschreibung
min number Minimaler potenzieller Wert der zurückgegebenen Ganzzahl (einschließlich).
max number Maximaler potenzieller Wert der zurückgegebenen Ganzzahl (einschließlich).

Zugehörige Berechtigungen

Keine.


getAllEventData

Gibt eine Kopie der Ereignisdaten zurück.

Syntax

getAllEventData();

Zugehörige Berechtigungen

read_event_data


getClientName

Gibt einen String zurück, der den Namen des aktuellen Clients enthält.

Syntax

getClientName();

Zugehörige Berechtigungen

read_container_data


getContainerVersion

Gibt ein Objekt mit Daten zum aktuellen Container zurück. Die zurückgegebene hat die folgenden Felder:

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

Beispiel

const getContainerVersion = require('getContainerVersion');

const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];

Syntax

getContainerVersion();

Zugehörige Berechtigungen

read_container_data


getCookieValues

Gibt ein Array zurück, das die Werte aller Cookies mit dem angegebenen Namen enthält.

Beispiel

const getCookieValues = require('getCookieValues');

const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
  // ...
}

Syntax

getCookieValues(name[, noDecode]);

Parameter

Parameter Typ Beschreibung
name String Name des Cookies.
noDecode Boolescher Wert Wenn true, werden die Cookiewerte vor der zurückgegeben. Die Standardeinstellung ist false.

Zugehörige Berechtigungen

get_cookies


getEventData

Gibt eine Kopie des Werts im angegebenen Pfad in den Ereignisdaten zurück. Rückgaben undefined, wenn keine Ereignisdaten oder im angegebenen Pfad kein Wert vorhanden ist.

Beispiel

const getEventData = require('getEventData');

const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');

Parameter

Parameter Typ Beschreibung
keyPath Beliebig Der Pfad des Schlüssels. Die Pfadkomponenten sind durch Punkte getrennt. Die Pfadkomponenten können Schlüssel in einem Objekt oder Indexe in einem Array sein. Wenn keyPath ist kein String, sondern ein String.

Syntax

getEventData(keyPath);

Zugehörige Berechtigungen

read_event_data


getGoogleAuth

Gibt ein Autorisierungsobjekt zurück, das bei Verwendung mit sendHttpGet oder sendHttpRequest Autorisierungsheader für Google Cloud APIs enthalten. Diese API verwendet Standardanmeldedaten für Anwendungen zur automatischen Suche nach Anmeldedaten im Serverumgebung.

Beispiel

const getGoogleAuth = require('getGoogleAuth');
const logToConsole = require('logToConsole');
const sendHttpGet = require('sendHttpGet');

const auth = getGoogleAuth({
  scopes: ['https://www.googleapis.com/auth/datastore']
});

sendHttpGet(
  'https://firestore.googleapis.com/v1/projects/my-project/databases/(default)/documents/collection/document',
  {authorization: auth}
).then((result) => {
  if (result.statusCode >= 200 && result.statusCode < 300) {
    logToConsole('Result: ' + result.body);
    data.gtmOnSuccess();
  } else {
    data.gtmOnFailure();
  }
});

Syntax

getGoogleAuth(scopes);

Parameter

Parameter Typ Beschreibung
scopes Array ein Array mit OAuth 2.0 Google API-Bereichen für Zugriff anfordern.

Zugehörige Berechtigungen

Erfordert die Berechtigung use_google_credentials. Die Berechtigung muss mit einem oder mehreren zulässigen Bereichen konfiguriert ist.


getGoogleScript

Ruft eine Ressource von einem vordefinierten Satz von Google-Skripts ab und gibt eine promise mit dem Skript und den zugehörigen Caching-Metadaten an.

Das Promise wird in ein Objekt aufgelöst, das zwei Schlüssel enthält: script und metadata. Wenn die Anfrage fehlschlägt, wird das Promise mit einem reason-Schlüssel abgelehnt.

Das metadata-Objekt enthält die folgenden Caching-Metadaten basierend auf dem Ressourcenantwortheader; ist jedes Feld nur vorhanden, wenn das entsprechende -Header in der Ressourcenantwort vorhanden ist.

{
  'cache-control': string,
  'expires': string,
  'last-modified': string,
}

Beispiel

const getGoogleScript = require('getGoogleScript');

getGoogleScript('ANALYTICS').then((result) => {
  // Operate on result.script and result.metadata here.
});

Syntax

getGoogleScript(script[, options]);

Parameter

Parameter Typ Beschreibung
script String Der Name des Skripts. Unterstützte Skripts sind 'ANALYTICS', 'GTAG' und 'GTM'

Die 'ANALYTICS' ruft die Option das Google Analytics-Skript https://www.google-analytics.com/analytics.js

Die Mit der Option „'GTAG'“ wird das allgemeine Website-Tag (gtag.js) abgerufen. Script von https://www.googletagmanager.com/gtag/js.

Mit der Option 'GTM' wird Google Tag Manager Script von https://www.googletagmanager.com/gtm.js.
options Gegenstand Optionale Anfrageoptionen. Unten finden Sie die unterstützten Optionen.

Optionen

Option Typ Beschreibung
id String Gilt für 'GTAG' mit der gtag-Mess-ID und 'GTM' durch die Webcontainer-ID (z. B. GTM-XXXX).
debug Beliebig Bei Wahrheit wird die Debug-Version der Messung angefordert und zurückgegeben. .
timeout number Das Zeitlimit für die Anfrage in Millisekunden werden nicht-positive Werte ignoriert. Wenn das Zeitlimit überschreitet, wird der Rückruf mit undefined für den Skriptwert und {} für den Metadatenobjekt.

Nicht erkannte Optionstasten werden ignoriert.

Zugehörige Berechtigungen

Erfordert die Berechtigung send_http. Die Berechtigung muss so konfiguriert sein, dass Zugriff auf mindestens:

  • Google Domains zulassen

getRemoteAddress

Gibt eine string-Darstellung der IP-Adresse zurück, an die die Anfrage z.B. 12.345.67.890 für IPv4 oder 2001:0db8:85a3:0:0:8a2e:0370:7334 für IPv6, indem Sie Anfrageheader wie Forwarded und X-Forwarded-For lesen. Hinweis: Diese API unternimmt einen Best-Effort-Versuch, die ursprüngliche IP-Adresse zu ermitteln, aber kann nicht garantiert werden, dass das Ergebnis korrekt ist.

Syntax

getRemoteAddress();

Zugehörige Berechtigungen

Erfordert die Berechtigung read_request. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • Überschriften Forwarded und X-Forwarded-For
  • Remote-IP-Adresse

getRequestBody

Gibt den Anfragetext als String zurück, falls vorhanden, andernfalls als undefined.

Syntax

getRequestBody();

Zugehörige Berechtigungen

read_request


getRequestHeader

Gibt den Wert des benannten Anfrageheaders als string zurück, falls vorhanden, oder Andernfalls undefined. Wenn der Header wiederholt wird, werden die zurückgegebenen Werte verknüpft. zusammen mit ', '.

Beispiel

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

Syntax

getRequestHeader(headerName);

Parameter

Parameter Typ Beschreibung
headerName String Der Name der Kopfzeile. Bei diesem Wert wird die Groß-/Kleinschreibung nicht berücksichtigt.

Zugehörige Berechtigungen

read_request


getRequestMethod

Gibt die Anfragemethode zurück, z.B. 'GET' oder 'POST' als String

Beispiel

const getRequestMethod = require('getRequestMethod');

if (getRequestMethod() === 'POST') {
  // Handle the POST request here.
}

Syntax

getRequestMethod();

Zugehörige Berechtigungen

Keine.


getRequestPath

Gibt den Anfragepfad ohne den Abfragestring zurück. Lautet die URL beispielsweise '/foo?id=123', gibt '/foo' zurück. Löscht den Server automatisch Container-URL-Präfix aus dem Pfad an. Beispiel: Die Servercontainer-URL lautet https://example.com/analytics und der Anfragepfad '/analytics/foo' ist, gibt '/foo' zurück.

Beispiel

const getRequestPath = require('getRequestPath');

const requestPath = getRequestPath();
if (requestPath === '/') {
  // Handle a request for the root path.
}

Syntax

getRequestPath();

Zugehörige Berechtigungen

read_request


getRequestQueryParameter

Gibt den decodierten Wert des benannten Abfragestringparameters als String zurück. oder undefined, wenn der Parameter nicht vorhanden ist. Wenn der Parameter in Abfragestring enthält der erste Wert, der im Abfragestring erscheint, zurückgegeben.

Beispiel

const getRequestQueryParameter = require('getRequestQueryParameter');

const query = getRequestQueryParameter('query');
if (query) {
  // Process query here.
}

Syntax

getRequestQueryParameter(name);

Parameter

Parameter Typ Beschreibung
name String Der Name des Abfrageparameters.

Zugehörige Berechtigungen

read_request


getRequestQueryParameters

Gibt die Abfrageparameter der eingehenden HTTP-Anfrage als Objekt zurück, das die Namen der Suchparameter in den entsprechenden Wert bzw. die entsprechenden Werte ein. Die Parameternamen und Werte decodiert werden.

Beispiel

const getRequestQueryParameters = require('getRequestQueryParameters');

const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
  // Handle the search query here.
  const maxResults = queryParameters['max_results'];
}

Syntax

getRequestQueryParameters();

Zugehörige Berechtigungen

read_request


getRequestQueryString

Gibt die Anfrageabfrage als String ohne das vorangestellte Fragezeichen oder einen Leerer String, wenn die Anfrage-URL keinen Abfragestring enthält.

Beispiel

const getRequestQueryString = require('getRequestQueryString');

const queryString = getRequestQueryString();
if (queryString !== '') {
  // Handle the query string.
}

Syntax

getRequestQueryString();

Zugehörige Berechtigungen

read_request


getTimestamp

Veraltet. Bevorzugen Sie getTimestampMillis.

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

Syntax

getTimestamp();

Zugehörige Berechtigungen

Keine.


getTimestampMillis

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

Syntax

getTimestampMillis();

Zugehörige Berechtigungen

Keine.


getType

Gibt einen String zurück, der den Typ des angegebenen Werts beschreibt.

Eingabetyp Zurückgegebener Wert
String 'string'
number 'number'
Boolescher Wert 'boolean'
Null 'null'
nicht definiert 'undefined'
Array 'array'
Objekt 'object'
Funktion 'function'

Beispiel

const getType = require('getType');

const type = getType(value);
if (type === 'string') {
  // Handle string input.
} else if (type === 'number') {
  // Handle numeric input.
} else {
  logToConsole('Unsupported input type: ', type);
}

Syntax

getType(value);

Parameter

Parameter Typ Beschreibung
value Beliebig Eingabewert.

Zugehörige Berechtigungen

Keine.


hmacSha256

Berechnet eine codierte Signatur mithilfe der hashbasierten Nachrichtenauthentifizierung Code (HMAC) mit SHA-256. Die Standardeinstellung ist base64url-Codierung.

Legen Sie die Umgebungsvariable SGTM_CREDENTIALS auf dem Server fest, um diese API zu verwenden zum Pfad einer UTF-8-codierten JSON-Schlüsseldatei im folgenden Format hinzu:

{
  "key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
  "key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
  ...
}

Die Werte sind base64-codierte HMAC-Schlüssel.

Beispiel

const hmacSha256 = require('hmacSha256');
const toBase64 = require('toBase64');

const header = toBase64('{"alg":"HS256","typ":"JWT"}', {urlEncoding: true});
const claim = toBase64('{"sub":"1234567890","iat":1698164946}', {urlEncoding: true});
const signature = hmacSha256(header + '.' + claim, 'key1');

const jwt = header + "." + claim + '.' + signature;

Syntax

hmacSha256(data, keyId, options)

Parameter

Parameter Typ Beschreibung
data String Die Daten, mit denen der HMAC-Wert berechnet werden soll.
keyId String Eine Schlüssel-ID aus der JSON-Schlüsseldatei, die auf den Schlüssel verwendet werden soll.
options Gegenstand Optionale API-Konfiguration. (Siehe Optionen unten.

Optionen

Option Typ Beschreibung
outputEncoding String Gibt das Codierungsformat für den gibt. Unterstützte Formate: hex, base64 oder base64url. Standardeinstellung: base64url, falls nicht angegeben.

Zugehörige Berechtigungen

use_custom_private_keys

Mindestversion der Image-Version

1.0.0


isRequestMpv1

Gibt true zurück, wenn die eingehende Anfrage eine Measurement Protocol V1-Anfrage ist, oder Andernfalls false.

Beispiel

const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  // Handle Measurement Protocol V1 request.
  const events = extractEventsFromMpv1();
}

Syntax

isRequestMpv1();

Zugehörige Berechtigungen

Keine.


isRequestMpv2

Gibt true zurück, wenn die eingehende Anfrage eine Measurement Protocol V2-Anfrage ist, oder Andernfalls false.

Beispiel

const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  // Handle Measurement Protocol V2 request.
  const events = extractEventsFromMpv2();
}

Syntax

isRequestMpv2();

Zugehörige Berechtigungen

Keine.


logToConsole

Protokolliert die Argumente in der Konsole.

Diese Logs sind im Log-Explorer der Google Cloud Console sichtbar. Führen Sie im Log-Explorer die Abfrage logName =~ "stdout" aus, um Logeinträge aufzurufen die von dieser API erstellt wurden.

Beispiel

const logToConsole = require('logToConsole');

const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);

Syntax

logToConsole(argument1[, argument2, ...]);

Parameter

Die API akzeptiert ein oder mehrere Argumente, von denen jedes in einen String konvertiert wird, wenn erforderlich und in der Konsole protokolliert.

Zugehörige Berechtigungen

logging


makeInteger

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

Syntax

makeInteger(value);

Parameter

Parameter Typ Beschreibung
value alle Typen Wert, der konvertiert werden soll.

Zugehörige Berechtigungen

Keine.


makeNumber

Wandelt den gegebenen Wert in eine Zahl um.

Syntax

makeNumber(value);

Parameter

Parameter Typ Beschreibung
value alle Typen Wert, der konvertiert werden soll.

Zugehörige Berechtigungen

Keine.


makeString

Gibt den gegebenen Wert als string zurück.

Syntax

makeString(value);

Parameter

Parameter Typ Beschreibung
value alle Typen Wert, der konvertiert werden soll.

Zugehörige Berechtigungen

Keine.


makeTableMap

Wandelt ein einfaches Tabellenobjekt mit zwei Spalten in einen Map um. Damit werden Ändern Sie ein SIMPLE_TABLE-Vorlagenfeld mit zwei Spalten in ein leichter überschaubares Format.

Die folgende 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: Die konvertierten Map der Schlüssel/Wert-Paare wurden oder null auf andere Weise.

Syntax

makeTableMap(tableObj, keyColumnName, valueColumnName);

Parameter

Parameter Typ Beschreibung
tableObj Liste Das Tabellenobjekt, das konvertiert werden soll. Es ist eine Liste von Karten, in denen alle Map steht für eine Zeile in der Tabelle. Jeder Eigenschaftsname in einem Das Zeilenobjekt ist der Spaltenname und der Eigenschaftswert ist die Spalte Wert in der Zeile.
keyColumnName String Name der Spalte, deren Werte in der konvertierten Datei zu Schlüsseln werden. Map
valueColumnName String Name der Spalte, deren Werte in der konvertierten Tabelle zu Werten werden. Map

Zugehörige Berechtigungen

Keine.


parseUrl

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

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

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

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

Beispiel

const parseUrl = require('parseUrl');

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

Syntax

parseUrl(url);

Parameter

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

Zugehörige Berechtigungen

Keine.


returnResponse

Löscht die Antwort, die zuvor von anderen Vorlagen mithilfe der APIs festgelegt wurde die die Antwort ändern, einschließlich setCookie, setPixelResponse, setResponseBody setResponseHeader und setResponseStatus. Die Standardeinstellung ist der HTTP-Statuscode 200. leerer Textkörper und keine Kopfzeilen.

Es wird empfohlen, diese API aus einer Clientvorlage zu verwenden.

Syntax

returnResponse();

Beispiel

Beispiel für runContainer

Zugehörige Berechtigungen

return_response


runContainer

Führt die Containerlogik (Variablen, Trigger, Tags) im Bereich eines Ereignisses aus. Wenn diese API während der Containerausführung aufgerufen wird, wird der Container noch einmal ausgeführt.

Die Callbacks onComplete und onStart empfangen eine Funktion namens bindToEvent Verwenden Sie bindToEvent, um eine API im Kontext des Ereignisses auszuführen. Weitere Informationen finden Sie im addEventCallback-Beispiel.

Es wird empfohlen, diese API aus einer Clientvorlage zu verwenden.

const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

// Runs the container with a simple pageview event and then returns a response.
runContainer({'event_name': 'pageview'}, () => returnResponse());

Syntax

runContainer(event, onComplete, onStart);

Parameter

Parameter Typ Beschreibung
event Gegenstand Die Ereignisparameter.
onComplete Funktion Ein Callback, der aufgerufen wird, nachdem alle Tags ausgelöst wurden.
onStart Funktion Ein Callback, der sofort aufgerufen wird, bevor die Tags ausgelöst werden.

Zugehörige Berechtigungen

run_container


sendEventToGoogleAnalytics

Sendet ein einzelnes Ereignis anhand von allgemeinen Ereignisdaten an Google Analytics und gibt Folgendes zurück: promise, das in ein Objekt mit einem location-Schlüssel aufgelöst wird, oder in ein Objekt mit einem reason-Schlüssel zurückweist. Das Ziel, Universal Analytics oder Google Analytics 4 basiert auf der Mess-ID im Ereignis Daten.

Das Feld location ist auf den Header location festgelegt, falls vorhanden.

Beispiel

const logToConsole = require('logToConsole');
const sendEventToGoogleAnalytics = require('sendEventToGoogleAnalytics');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');

// Sends an event to Google Analytics and returns failure if the request did not
// succeed. Additionally, if the request resulted in a redirect request, the
// code nominates a redirect response to be returned.
sendEventToGoogleAnalytics(event).then((response) => {
  if (response.location) {
    setResponseHeader('location', response.location);
    setResponseStatus(302);
  } else {
    setResponseStatus(200);
  }
  data.gtmOnSuccess();
}).catch((error) => {
  logToConsole(error.reason);
  setResponseStatus(500);
  data.gtmOnFailure();
});

Syntax

sendEventToGoogleAnalytics(event);

Parameter

Parameter Typ Beschreibung
event Gegenstand Das Ereignis im einheitlichen Schemaformat.

Zugehörige Berechtigungen

Erfordert die Berechtigung send_http. Die Berechtigung muss so konfiguriert sein, dass Zugriff auf mindestens:

  • Google Domains zulassen

sendHttpGet

Sendet eine HTTP GET-Anfrage an die angegebene URL und gibt eine promise, das mit dem Ergebnis aufgelöst wird, sobald die Anfrage abgeschlossen ist, oder eine Zeitüberschreitung auftritt.

Das aufgelöste Ergebnis ist ein Objekt, das drei Schlüssel enthält: statusCode, headers, und body. Wenn die Anfrage fehlgeschlagen ist (z.B. ungültige URL, keine Weiterleitung zum Host, SSL-Verhandlung fehlgeschlagen usw.), wird das Promise abgelehnt mit: {reason: 'failed'}. Wenn die Option timeout festgelegt wurde und es zu einer Zeitüberschreitung bei der Anfrage kam, Promise wird abgelehnt mit: {reason: 'timed_out'}

Beispiel

const sendHttpGet = require('sendHttpGet');

// Returns the response body as the value for a variable.
return sendHttpGet('https://example.com/item/' + data.itemId, {
  headers: {key: 'value'},
  timeout: 500,
}).then((result) => result.body, () => undefined);

Syntax

sendHttpGet(url[, options]);

Parameter

Parameter Typ Beschreibung
url String Die angeforderte URL
options Gegenstand Optionale Anfrageoptionen. (Siehe Optionen unten.

Optionen

Option Typ Beschreibung
headers String Zusätzliche Anfrageheader.
timeout number Das Zeitlimit in Millisekunden vor dem Anfrage abgebrochen. Die Standardeinstellung ist 15000.
authorization Gegenstand Optionales Autorisierungsobjekt aus dem getGoogleAuth-Anruf wegen Einbeziehung Autorisierungs-Header beim Senden von Anfragen an googleapis.com.

Zugehörige Berechtigungen

send_http


sendHttpRequest

Sendet eine HTTP-Anfrage an die angegebene URL und gibt ein Promise zurück die mit der Antwort aufgelöst wird, wenn die Anfrage abgeschlossen ist oder das Zeitlimit überschritten wird.

Das aufgelöste Ergebnis ist ein Objekt, das drei Schlüssel enthält: statusCode, headers, und body. Wenn die Anfrage fehlgeschlagen ist (z.B. ungültige URL, keine Weiterleitung zum Host, SSL-Verhandlung fehlgeschlagen usw.), wird das Promise abgelehnt mit: {reason: 'failed'}. Wenn die Option timeout festgelegt wurde und es zu einer Zeitüberschreitung bei der Anfrage kam, Promise wird abgelehnt mit: {reason: 'timed_out'}

Beispiel

const sendHttpRequest = require('sendHttpRequest');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');

const postBody = 'interaction=click&campaign=promotion&medium=email';
// Sends a POST request and nominates response based on the response to the POST
// request.
sendHttpRequest('https://example.com/collect', {
  headers: {key: 'value'},
  method: 'POST',
  timeout: 500,
}, postBody).then((result) => {
  setResponseStatus(result.statusCode);
  setResponseBody(result.body);
  setResponseHeader('cache-control', result.headers['cache-control']);
});

Syntax

sendHttpRequest(url[, options[, body]]);

Parameter

Parameter Typ Beschreibung
url String Die angeforderte URL
options Gegenstand Optionale Anfrageoptionen. (Siehe Optionen unten.
body String Optionaler Anfragetext.

Optionen

Option Typ Beschreibung
headers String Zusätzliche Anfrageheader.
method Gegenstand Die Anfragemethode. Die Standardeinstellung ist GET.
timeout number Das Zeitlimit in Millisekunden vor dem Anfrage abgebrochen. Die Standardeinstellung ist 15000.
authorization Gegenstand Optionales Autorisierungsobjekt aus dem getGoogleAuth-Anruf wegen Einbeziehung Autorisierungs-Header beim Senden von Anfragen an googleapis.com.

Zugehörige Berechtigungen

send_http


sendPixelFromBrowser

Sendet einen Befehl zum Laden der angegebenen URL als <img>-Tag an den Browser. Dieses Befehlsprotokoll wird im Google-Tag für GA4 unterstützt und Google Analytics: GA-Ereignis-Web-Tags. Sie müssen den Servercontainer konfigurieren URL Weitere Informationen finden Sie in der Anleitung.

Diese API gibt false zurück, wenn die eingehende Anfrage den Befehl nicht unterstützt oder die Antwort bereits gelöscht wurde. Andernfalls wird diese API gibt true zurück.

Beispiel:

const sendPixelFromBrowser = require('sendPixelFromBrowser');

sendPixelFromBrowser('https://example.com/?id=123');

Syntax

sendPixelFromBrowser(url)

Parameter

Parameter Typ Beschreibung
url String Die URL, die an den Browser gesendet werden soll.

Zugehörige Berechtigungen

send_pixel_from_browser


setCookie

Legt ein Cookie mit den angegebenen Optionen fest oder löscht es.

Zum Löschen eines Cookies muss ein Cookie mit demselben Pfad und derselben Domain wie der mit dem das Cookie erstellt wurde, und weisen Sie ihm einen Wert für "expires" zu, der in der Vergangenheit liegt. z.B. "Thu, 01 Jan 1970 00:00:00 GMT"

Beachten Sie, dass returnResponse aufgerufen werden muss, damit die Antwort auf an den Client zurückgesendet wird.

Beispiel

const setCookie = require('setCookie');

// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});

Syntax

setCookie(name, value[, options[, noEncode]]);

Parameter

Parameter Typ Beschreibung
name String Der Name des Cookies. Beim Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden.
value String Der Cookiewert.
options Gegenstand Optionale Cookieattribute:domain, expires und fallbackDomain,httpOnly, max- age, path, secure, undsameSite. (Siehe Optionen.
noEncode Boolescher Wert Bei „true“ wird der Cookiewert nicht codiert. Standardeinstellung: false

  • domain:Der Host, an den das Cookie gesendet wird. Wenn die Einstellung auf das auf "auto" setzen, wird der Host automatisch mithilfe der Funktion folgende Strategie:

    • eTLD+1 des Forwarded-Headers, falls vorhanden.
    • eTLD+1 des X-Forwarded-Host-Headers, falls vorhanden.
    • eTLD+1 des Host-Headers.
  • expires: Die maximale Lebensdauer des Cookies. Muss im UTC-Format angegeben werden Datumszeichenfolge, z.B. „Sa., 26. Okt. 1985, 08:21:00 GMT“ Wenn sowohl expires als auch max-age sind festgelegt, max-age hat Vorrang.

  • httpOnly Verhindert, dass JavaScript auf das Cookie zugreift, wenn true.

  • max-age: Anzahl der Sekunden, bis das Cookie abläuft. Eine Null oder ein negativer Wert läuft das Cookie sofort ab. Wenn sowohl expires als auch max-age festgelegt sind, hat max-age Vorrang.

  • path: Pfad, der in der angeforderten URL vorhanden sein muss. Andernfalls kann der Browser ihn nicht verwenden. Cookie-Header senden.

  • secure: Wenn die Richtlinie auf true gesetzt ist, wird das Cookie nur an den Server gesendet, wenn ein Anfrage wird von einem https:-Endpunkt gesendet.

  • sameSite: Gibt an, dass ein Cookie nicht ursprungsübergreifend gesendet werden darf -Anfragen. Muss 'strict', 'lax' oder 'none' sein.

Zugehörige Berechtigungen

set_cookie


setPixelResponse

Legt den Antworttext auf ein 1x1-GIF fest, setzt den Content-Type-Header auf 'image/gif', legt Caching-Header fest, sodass User-Agents die Antwort nicht im Cache speichern, und legt fest, Antwortstatus auf 200.

Beachten Sie, dass returnResponse aufgerufen werden muss, damit die Antwort auf an den Client zurückgesendet wird.

Syntax

setPixelResponse();

Zugehörige Berechtigungen

Erfordert die Berechtigung access_response. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • headers – Die folgenden Schlüssel müssen zugelassen werden
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

Legt den Antworttext für das Argument fest.

Beachten Sie, dass returnResponse aufgerufen werden muss, damit die Antwort auf an den Client zurückgesendet wird.

Syntax

setResponseBody(body[, encoding]);

Parameter

Parameter Typ Beschreibung
body String Der Wert, der als Antworttext festgelegt werden soll.
encoding String Die Zeichencodierung des Antworttexts (standardmäßig 'utf8'. Unterstützte Werte sind 'ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary' und 'hex'.

Zugehörige Berechtigungen

Erfordert die Berechtigung access_response. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • body

setResponseHeader

Legt einen Header in der Antwort fest, die zurückgegeben wird. Wenn ein Header mit diesem Namen (Groß-/Kleinschreibung nicht berücksichtigend) festgelegt wurde, wird der letztere Aufruf den vom vorherigen Aufrufer festgelegten Wert überschreiben oder löschen.

Beachten Sie, dass returnResponse aufgerufen werden muss, damit die Antwort auf an den Client zurückgesendet wird.

Syntax

setResponseHeader(name, value);

Parameter

Parameter Typ Beschreibung
name String Der Name der Kopfzeile. Bei HTTP-Header-Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Der Header werden in Kleinbuchstaben geschrieben.
value string nicht definiert Der Headerwert. Wenn null oder nicht definiert ist, wird der benannte Header gelöscht aus der zurückgegebenen Antwort.

Zugehörige Berechtigungen

Erfordert die Berechtigung access_response. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • headers

setResponseStatus

Legt den HTTP-Statuscode der zurückgegebenen Antwort fest.

Beachten Sie, dass returnResponse aufgerufen werden muss, damit die Antwort auf an den Client zurückgesendet wird.

Syntax

setResponseStatus(statusCode);

Parameter

Parameter Typ Beschreibung
statusCode number Der HTTP-Statuscode, der zurückgegeben werden soll.

Zugehörige Berechtigungen

Erfordert die Berechtigung access_response. Die Berechtigung muss so konfiguriert sein, Zugriff erlauben auf mindestens:

  • status

sha256

Berechnet den SHA-256-Digest der Eingabe und ruft einen Callback mit der Digest mit base64-Codierung, sofern das options-Objekt kein anderes für die Ausgabecodierung.

Die API-Signatur und das Verhalten stimmen mit der sha256 API für Webcontainer überein. Für benutzerdefinierte Vorlagen in Servercontainern sollte jedoch sha256Sync API für einfacheren Code

Beispiel

const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256 = require('sha256');

sha256('inputString', (digest) => {
  sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digest));
});

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

Syntax

sha256(input, onSuccess, options = undefined);

Parameter

Parameter Typ Beschreibung
input String Der zu hashende String.
onSuccess Funktion Wird mit dem resultierenden Digest aufgerufen, in base64 codiert, es sei denn, der Das options-Objekt gibt eine andere Ausgabecodierung an.
options Gegenstand Optionales Optionsobjekt, um die Ausgabecodierung anzugeben. Wenn angegeben ist, sollte das Objekt den Schlüssel outputEncoding enthalten. mit dem Wert base64 oder hex.

Zugehörige Berechtigungen

Keine.


sha256Sync

Berechnet und gibt den SHA-256-Digest der Eingabe, codiert in base64, zurück. es sei denn, das options-Objekt gibt eine andere Ausgabecodierung an.

Beispiel

const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
const sha256Sync = require('sha256Sync');

const digestBase64 = sha256Sync('inputString');
const digestHex = sha256Sync('inputString', {outputEncoding: 'hex'});
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestBase64));
sendHttpGet('https://example.com/collect?id=' + encodeUriComponent(digestHex));

Syntax

sha256Sync(input, options = undefined);

Parameter

Parameter Typ Beschreibung
input String Der zu hashende String.
options Gegenstand Optionales Optionsobjekt, um die Ausgabecodierung anzugeben. Wenn angegeben ist, sollte das Objekt den Schlüssel outputEncoding enthalten. mit dem Wert base64 oder hex.

Zugehörige Berechtigungen

Keine.


templateDataStorage

Gibt ein Objekt mit Methoden für den Zugriff auf den Vorlagendatenspeicher zurück. Vorlage Mit der Datenspeicherung können Daten für die Ausführungen einer einzelnen Vorlage freigegeben werden. Im Vorlagendatenspeicher gespeicherte Daten bleiben auf dem Server erhalten, auf dem die Container. In den meisten Fällen wird der Container von mehreren Servern ausgeführt, Das Speichern von Daten im Vorlagendatenspeicher garantiert nicht, dass jede nachfolgende -Anfrage Zugriff auf die Daten hat.

Die „Daten“ im Namen „templateDataStorage“ bezieht sich auf die Tatsache, nicht funktionsbezogene Datentypen können mit dieser API gespeichert werden. Alle Funktionen oder Verweise auf Funktionen, die an die API übergeben wurden, werden stattdessen als null gespeichert.

Syntax

const templateDataStorage = require('templateDataStorage');

// Returns a copy of the value stored for the given key, or null if nothing
// is stored with that key.
templateDataStorage.getItemCopy(key);

// Stores a copy of the value for the given key (or removes the data stored
// for the given key if the input value is null).
templateDataStorage.setItemCopy(key, value);

// Removes the value stored for the given key, if present.
templateDataStorage.removeItem(key);

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

Beispiel

const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseStatus = require('setResponseStatus');
const templateDataStorage = require('templateDataStorage');

// Check to see if the item is in the cache.
const cachedBody = templateDataStorage.getItemCopy(data.key);
if (cachedBody) {
  setResponseBody(cachedBody);
  data.gtmOnSuccess();
  return;
}

sendHttpGet(data.url).then((result) => {
  if (result.statusCode >= 200 && result.statusCode < 300) {
    setResponseBody(result.body);
    templateDataStorage.setItemCopy(data.key, result.body);
    data.gtmOnSuccess();
  } else {
    data.gtmOnFailure();
  }
  setResponseStatus(result.statusCode);
});

Zugehörige Berechtigungen

access_template_storage


testRegex

Testet einen String mit einem regulären Ausdruck, der über die createRegex API erstellt wurde. Gibt true zurück wenn der reguläre Ausdruck übereinstimmt. Andernfalls wird false zurückgegeben.

Ein regulärer Ausdruck, der mit dem globalen Flag erstellt wurde, ist zustandsorientiert. Weitere Informationen finden Sie in der Weitere Informationen finden Sie in der Dokumentation zu RegExp.

Beispiel

const createRegex = require('createRegex');
const testRegex = require('testRegex');

const domainRegex = createRegex('\\w+\\.com', 'i');

// createRegex returns null if the regex is invalid or Re2 is not available.
if (domainRegex === null) return;

// Returns true
testRegex(domainRegex, 'example.com/foobar');

Syntax

testRegex(regex, string);

Parameter

Parameter Typ Beschreibung
regex Objekt Der zu testende reguläre Ausdruck, der von der createRegex API zurückgegeben wird.
string String Zu testender String.

Zugehörige Berechtigungen

Keine.


toBase64

Codiert einen String als base64 oder base64url. Die Standardeinstellung ist die base64-Codierung.

Syntax

toBase64(input, options);

Parameter

Parameter Typ Beschreibung
input String Zu codierender String.
options Gegenstand Optionale API-Konfiguration. (Siehe Optionen unten.

Optionen

Option Typ Beschreibung Mindestversion
urlEncoding Boolescher Wert Falls wahr, wird das Ergebnis mit base64url-Format. 1.0.0

Beispiel

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});

Zugehörige Berechtigungen

Keine.


BigQuery

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

Mit der Funktion BigQuery.insert können Daten in eine BigQuery-Tabelle geschrieben werden. Es ein Zusage-Angebot zurückgegeben, das nach einer erfolgreichen Einfügung aufgelöst wird, oder wird bei einem Fehler abgelehnt.

Wenn das Einfügen erfolgreich ist, wird das Versprechen ohne Argumente aufgelöst.

Wenn das Einfügen fehlschlägt, wird das Versprechen mit einer Liste von Objekten abgelehnt, die Fehlerursache und eventuell ein Zeilenobjekt, wenn ein Fehler auftritt. Es ist möglich, dass Teil der Anfrage erfolgreich abgeschlossen werden, andere Teile jedoch nicht. Das Promise wird in diesem Fall mit einer Liste von Fehlern für jede Zeile mit einem Zeilenobjekt, um zu erkennen, welche Zeilen eingefügt wurden Weitere Informationen finden Sie unter Fehlerbeispiele unten. Weitere Informationen finden Sie unter Die BigQuery-Dokumentation zu Fehler .

Syntax

BigQuery.insert(connectionInfo, rows[, options]);

Parameter Typ Beschreibung
connectionInfo Gegenstand Definiert Informationen, die zum Herstellen einer Verbindung zu einer BigQuery-Tabelle erforderlich sind. Es gibt Ein optionaler Parameter und zwei erforderliche Parameter:
  • projectIdoptional Google Cloud Platform Projekt-ID. Wenn keine Angabe gemacht wird, wird projectId aus folgenden Quellen abgerufen: die Umgebungsvariable GOOGLE_CLOUD_PROJECT als „long“, als access_bigquery ist die Berechtigungseinstellung für die Projekt-ID auf * oder GOOGLE_CLOUD_PROJECT. Wenn der Servercontainer auf Google Cloud ausgeführt, wird GOOGLE_CLOUD_PROJECT ist bereits auf die ID des Google Cloud-Projekts festgelegt.
  • datasetId: BigQuery-Dataset-ID.
  • tableId: BigQuery-Tabellen-ID.
rows Array Die Zeilen, die in die Tabelle eingefügt werden sollen.
options Gegenstand Optionale Anfrageoptionen. Folgende Optionen werden unterstützt: ignoreUnknownValues und skipInvalidRows. Unbekannte Optionstasten werden ignoriert. (Siehe Optionen.

Parameter Typ Beschreibung
ignoreUnknownValues Boolescher Wert Wenn dieser Wert auf true gesetzt ist, werden Zeilen akzeptiert, die Werte enthalten. die nicht mit dem Schema übereinstimmen. Die unbekannten Werte werden ignoriert. Standardeinstellungen an false.
skipInvalidRows Boolescher Wert Wenn true festgelegt ist, werden alle gültigen Zeilen einer Anfrage eingefügt. auch wenn ungültige Zeilen vorhanden sind. Die Standardeinstellung ist false.

Fehlerbeispiele

Der Fehler „Modul nicht gefunden“ bedeutet, dass in Ihrem Servercontainer wahrscheinlich ein ältere Version unseres Images, in der das BigQuery-Modul noch nicht enthalten war. Stellen Sie den Servercontainer mit denselben Einstellungen noch einmal über unser Bereitstellungsskript Das Modul wird automatisch eingefügt, sobald der Vorgang abgeschlossen ist.

Ein Fehler ohne Einfügen weist in der Regel ein Fehlerobjekt mit einem reason-Schlüssel auf:

[{reason: 'invalid'}]

Ein Einfügungsfehler kann mehrere Fehlerobjekte mit einem errors-Array enthalten. und ein row-Objekt. Das folgende Beispiel zeigt eine Fehlerantwort von Einfügen von zwei Zeilen, bei denen nur eine Zeile einen Fehler aufweist:

[
  {
    "errors": [
      {
        "reason":"invalid"
      }
    ],
    "row": {
      "string_col":"otherString",
      "number_col":-3,
      "bool_col":3
    }
  },
  {
    "errors": [
      {
        "reason":"stopped"
      }
    ],
    "row": {
      "string_col":"stringValue",
      "number_col":5,
      "bool_col:false
    }
  }
]

Beispiel

const BigQuery = require('BigQuery');

const connectionInfo = {
  'projectId': 'gcp-cloud-project-id',
  'datasetId': 'destination-dataset',
  'tableId': 'destination-table',
};

const rows = [{
  'column1': 'String1',
  'column2': 1234,
}];

const options = {
  'ignoreUnknownValues': true,
  'skipInvalidRows': false,
};

BigQuery.insert(connectionInfo, rows, options)
  .then(data.gtmOnSuccess, data.gtmOnFailure);

Zugehörige Berechtigungen

access_bigquery


Firestore

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

Diese API unterstützt nur Firestore im nativen Modus, nicht Firestore im Datastore-Modus Außerdem unterstützt die API nur die Verwendung der Standarddatenbank.

Firestore.read

Die Funktion Firestore.read liest Daten aus einem Firestore-Dokument und gibt ein Promise zurück, das in ein Objekt aufgelöst wird, das zwei Schlüssel enthält: id und data. Wenn das Dokument nicht vorhanden ist, lehnt das Versprechen mit einer Objekt mit einem reason-Schlüssel, der gleich not_found ist.

Syntax

Firestore.read(path[, options]);

Parameter Typ Beschreibung
path String Der Pfad zum Dokument oder zur Sammlung. Darf nicht mit einem „/“.
options Gegenstand Optionale Anfrageoptionen. Folgende Optionen werden unterstützt: projectId, disableCache und transaction Unbekannt Optionstasten ignoriert werden. (Siehe Optionen.

Parameter Typ Beschreibung
projectId String Optional: Google Cloud Platform-Projekt-ID. Bei Auslassung wird der Parameter projectId wird aus der Umgebungsvariablen abgerufen GOOGLE_CLOUD_PROJECT fest, solange das access_firestore ist die Berechtigungseinstellung für die Projekt-ID auf * oder GOOGLE_CLOUD_PROJECT. Wenn der Servercontainer auf Google Cloud, GOOGLE_CLOUD_PROJECT ist bereits festgelegt auf die ID des Google Cloud-Projekts.
disableCache Boolescher Wert Optional: Bestimmt, ob der Cache deaktiviert wird. Caching ist standardmäßig aktiviert, wodurch die Ergebnisse für die Dauer der Anfrage.
transaction String Optional: Der Wert wird abgerufen aus Firestore.runTransaction(). Kennzeichnet den Vorgang, der in einem Transaktion.

Beispiel

const Firestore = require('Firestore');

return Firestore.read('collection/document', {
  projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);

Firestore.write

Die Funktion Firestore.write schreibt Daten in ein Firestore-Dokument oder . Wenn der Pfad auf eine Sammlung verweist, wird ein Dokument mit einer eine zufällig generierte ID. Wenn der Pfad auf ein Dokument verweist und dieses nicht existiert, erstellt. Diese API gibt ein Promise zurück, das in die ID des Dokument hinzugefügt oder geändert. Auch bei Verwendung der Transaktionsoption gibt ein Promise zurück, enthält aber nicht die ID, da die Schreibvorgänge in Batches zusammengefasst werden.

Syntax

Firestore.write(path, input[, options]);

Parameter

Parameter Typ Beschreibung
path String Der Pfad zum Dokument oder zur Sammlung. Darf nicht mit einem „/“.
input Gegenstand Wert, der in das Dokument geschrieben werden soll. Wenn die Option zum Zusammenführen festgelegt ist, Die API führt die Schlüssel aus der Eingabe im Dokument zusammen.
options Gegenstand Optionale Anfrageoptionen. Folgende Optionen werden unterstützt: projectId, merge und transaction Unbekannte Optionstasten werden ignoriert. (Siehe Optionen.

Parameter Typ Beschreibung
projectId String Optional: Google Cloud Platform-Projekt-ID. Bei Auslassung wird der Parameter projectId wird aus der Umgebungsvariablen abgerufen GOOGLE_CLOUD_PROJECT fest, solange das access_firestore ist die Berechtigungseinstellung für die Projekt-ID auf * oder GOOGLE_CLOUD_PROJECT. Wenn der Servercontainer auf Google Cloud, GOOGLE_CLOUD_PROJECT ist bereits festgelegt auf die ID des Google Cloud-Projekts.
merge Boolescher Wert Optional: Wenn festgelegt auf true, führen Sie dann die Schlüssel aus der Eingabe im Dokument zusammen. Andernfalls wird mit der Methode das gesamte Dokument überschrieben. Die Standardeinstellung ist false.
transaction String Optional: Der Wert wird abgerufen aus Firestore.runTransaction(). Kennzeichnet den Vorgang, der in einem Transaktion.

Beispiel

const Firestore = require('Firestore');

const input = {key1: 'value1', key2: 12345};

Firestore.write('collection/document', input, {
  projectId: 'gcp-cloud-project-id',
  merge: true,
}).then((id) => {
  data.gtmOnSuccess();
}, data.gtmOnFailure);

Firestore.query

Die Funktion Firestore.query fragt die angegebene Sammlung ab und gibt einen Versprechen, das in ein Array von Firestore-Dokumenten aufgelöst wird, die der Abfrage entsprechen . Das Firestore-Dokumentobjekt ist das gleiche wie oben in Firestore.read Wenn es keine Dokumente gibt, die den Abfragebedingungen entsprechen, wird das zurückgegebene Promise in ein leeres Array aufgelöst.

Syntax

Firestore.query(collection, queryConditions[, options]);

Parameter Typ Beschreibung
collection String Der Pfad zur Sammlung. Darf nicht mit einem „/“.
queryConditions Array Ein Array von Abfragebedingungen. Jede Suchanfrage hat die Form eines Array mit drei Werten: key, operator und expectedValue. Beispiel: [[‘id’, ‘<’, ‘5’], ['state', ‘==’, ‘CA’]].

Die Bedingungen werden durch eine UND-Verbindung verknüpft, um das Abfrageergebnisse zu erstellen. Bitte Siehe Firestore-Abfrageoperatoren für eine Liste kompatibler Abfragen .
options Gegenstand Optionale Anfrageoptionen. Folgende Optionen werden unterstützt: projectId, disableCache limit und transaction. Unbekannt Optionstasten ignoriert werden. (Siehe Optionen.

Parameter Typ Beschreibung
projectId String Optional: Google Cloud Platform-Projekt-ID. Bei Auslassung wird der Parameter projectId wird aus der Umgebungsvariablen abgerufen GOOGLE_CLOUD_PROJECT fest, solange das access_firestore ist die Berechtigungseinstellung für die Projekt-ID auf * oder GOOGLE_CLOUD_PROJECT. Wenn der Servercontainer auf Google Cloud, GOOGLE_CLOUD_PROJECT ist bereits festgelegt auf die ID des Google Cloud-Projekts.
disableCache Boolescher Wert Optional: Bestimmt, ob der Cache deaktiviert wird. Caching ist standardmäßig aktiviert, wodurch die Ergebnisse für die Dauer der Anfrage.
limit number Optional: Ändert die maximale Anzahl der von der Abfrage. Der Standardwert ist 5.
transaction String Optional: Der Wert wird abgerufen aus Firestore.runTransaction(). Kennzeichnet den Vorgang, der in einem Transaktion.

Beispiel

const Firestore = require('Firestore');

const queries = const queries = [['id', '==', '5']];

return Firestore.query('collection', queries, {
  projectId: 'gcp-cloud-project-id',
  limit: 1,
}).then((documents) => documents[0].data.key, () => undefined);

Firestore.runTransaction

Mit der Funktion Firestore.runTransaction kann der Nutzer in kleinstmöglichen Schritten in Firestore lesen und schreiben können. Wenn ein gleichzeitiger Schreibvorgang oder eine andere Transaktion tritt ein Konflikt auf, wird die Transaktion bis zu zweimal wiederholt. Wenn er fehlschlägt nach insgesamt drei Versuchen wird die API mit einem Fehler abgelehnt. Diese API gibt ein Versprechen, das für jeden Schreibvorgang in ein Array von Dokument-IDs aufgelöst wird. Ist die Transaktion erfolgreich, wird sie mit dem Fehler abgelehnt, wenn sie fehlschlägt.

Syntax

Firestore.runTransaction(callback[, options]);

Parameter

Parameter Typ Beschreibung
callback Funktion Ein Callback, der mit einer String-Transaktions-ID aufgerufen wird. Die Die Transaktions-ID kann an Lese-/Schreib-/Abfrage-API-Aufrufe übergeben werden. Diese Callback-Funktion muss ein Promise zurückgeben. Der Callback kann bis zu dreimal ausgeführt werden, bevor er fehlschlägt.
options Gegenstand Optionale Anfrageoptionen. Die nur unterstützte Option ist projectId. Unbekannte Optionstasten werden ignoriert. (Siehe Optionen.

Parameter Typ Beschreibung
projectId String Optional: Google Cloud Platform-Projekt-ID. Bei Auslassung wird der Parameter projectId wird aus der Umgebungsvariablen abgerufen GOOGLE_CLOUD_PROJECT fest, solange das access_firestore ist die Berechtigungseinstellung für die Projekt-ID auf * oder GOOGLE_CLOUD_PROJECT. Wenn der Servercontainer auf Google Cloud, GOOGLE_CLOUD_PROJECT ist bereits festgelegt auf die ID des Google Cloud-Projekts.

Beispiel

const Firestore = require('Firestore');

const path = 'collection/document';
const projectId = 'gcp-cloud-project-id';

Firestore.runTransaction((transaction) => {
  const transactionOptions = {
    projectId: projectId,
    transaction: transaction,
  };
  // Must return a promise.
  return Firestore.read(path, transactionOptions).then((result) => {
    const newInputCount = result.data.inputCount + 1;
    const input = {key1: 'value1', inputCount: newInputCount};
    return Firestore.write(path, input, transactionOptions);
  });
}, {
  projectId: projectId
}).then((ids) => {
  data.gtmOnSuccess();
}, data.gtmOnFailure);

Fehlerbeispiel

In jeder Firestore-Funktion verfügbare Fehler werden mit einem Objekt abgelehnt mit einem reason-Schlüssel:

Firestore.read(...).then(onSuccess, (error) => {
  if (error.reason === 'unknown') {
    // Handle the unknown error here.
  }
});

Die Fehlergründe können unter anderem Firestore REST API-Fehler enthalten Codes.

Zugehörige Berechtigungen

access_firestore


JSON

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

Die Funktion parse() parst einen JSON-String, um den Wert oder das Objekt zu erstellen. das durch den String beschrieben wird. 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 der Die Eingabe wird 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

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

Syntax

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

Zugehörige 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.

Zugehörige Berechtigungen

Keine.


Messages

Die folgenden APIs arbeiten zusammen, um die Übergabe von Nachrichten zwischen verschiedenen Teile eines Containers.


addMessageListener

Fügt eine Funktion hinzu, die auf eine Nachricht eines bestimmten Typs wartet. Wenn eine Nachricht dieses Typs über die sendMessage API gesendet wird (in der Regel über ein Tag), die -Callback synchron ausgeführt. Der Callback wird mit zwei Parametern ausgeführt:

  1. messageType:string
  2. message:Object

Wenn der Callback in einem Client hinzugefügt wird, empfängt der Callback Nachrichten über alle Ereignisse, die der Kunde erstellt. Ob der Rückruf Nachrichten empfangen soll aus einem bestimmten Ereignis abzurufen, dann binden Sie diese API mithilfe von bindToEvent an das Ereignis. in der Funktion onStart der runContainer API ein. Siehe Beispiel.

Syntax

const addMessageListener = require('addMessageListener');

addMessageListener('send_pixel', (messageType, message) => {
  // This will be run whenever something sends a 'send_pixel' message.
});

Parameter

Parameter Typ Beschreibung
messageType String Der Nachrichtentyp, der überwacht werden soll. Wenn der Wert kein String ist, lautet er erzwingt wird.
callback Funktion Der Callback, der ausgeführt werden soll, wenn eine Nachricht des entsprechenden Nachrichtentyps gesendet. Wenn der Callback keine Funktion ist, unternimmt die API nichts.

Beispiel

const addMessageListener = require('addMessageListener');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');

claimRequest();
addMessageListener('send_pixel', (messageType, message) => {
  // This will be run whenever a tag sends a 'send_pixel' message.
});

const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((event, i) => {
  runContainer(events[i], /* onComplete= */ () => {
    if (events.length === ++eventsCompleted) {
      returnResponse();
    }
  }, /* onStart= */ (bindToEvent) => {
    if (i === 0) {
      bindToEvent(addMessageListener)('send_pixel', (messageType, message) => {
        // This will be called whenever a tag for the first event sends a
        // 'send_pixel' message.
      });
    }
  });
});

Zugehörige Berechtigungen

Erfordert die Berechtigung use_message. Die Berechtigung muss so konfiguriert sein, dass mindestens:

  • Einen Nachrichtentyp mit Usage von listen oder listen_and_send.

hasMessageListener

Gibt "true" zurück, wenn für den angegebenen Nachrichtentyp ein Nachrichten-Listener hinzugefügt wurde. Andernfalls wird „false“ zurückgegeben.

Syntax

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

Zugehörige Berechtigungen

Keine.


sendMessage

Sendet eine Nachricht des angegebenen Typs an einen registrierten Listener. Dies kann verwendet werden, um Nachrichten von einem Tag an den Client zurückzusenden, der den Container ausgeführt hat.

Syntax

const sendMessage = require('sendMessage');

sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});

Parameter

Parameter Typ Beschreibung
messageType String Der zu sendende Nachrichtentyp. Wenn der Wert kein String ist, wird er in einen String umgewandelt.
message Gegenstand Die zu sendende Nachricht. Wenn die Nachricht kein Objekt ist, unternimmt die API nichts.

Zugehörige Berechtigungen

Erfordert die Berechtigung use_message. Die Berechtigung muss so konfiguriert sein, dass mindestens:

  • Einen Nachrichtentyp mit Usage von listen_and_send oder send.

Object

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

Die Methode keys() stellt die Standardbibliothek Object.keys() bereit. verhalten. Sie gibt ein Array der eigenen aufzählbaren Eigenschaft eines bestimmten Objekts zurück. in derselben Reihenfolge wie eine for...in...-Schleife. Wenn der Eingabewert kein Objekt ist, wird sie in ein Objekt umgewandelt.

Die Methode values() stellt die Standardbibliothek Object.values() bereit. verhalten. Sie gibt ein Array der eigenen aufzählbaren Eigenschaftswerte eines bestimmten Objekts zurück. in derselben Reihenfolge wie bei einer for...in...-Schleife. Wenn der Eingabewert kein -Objekt enthält, wird er in ein -Objekt umgewandelt.

Die Methode entries() stellt die Standardbibliothek Object.entries() bereit. verhalten. Sie gibt ein Array der eigenen aufzählbaren Eigenschaft eines bestimmten Objekts zurück. [key, value]-Paare werden in derselben Reihenfolge wie in einer for...in...-Schleife dargestellt. Wenn die Eingabewert kein Objekt ist, wird er in ein Objekt umgewandelt.

Die Methode freeze() stellt die Standardbibliothek Object.freeze() bereit. verhalten. Ein fixiertes Objekt kann nicht mehr geändert werden. wird durch das Einfrieren eines Objekts verhindert, neue Eigenschaften hinzugefügt, vorhandene Unterkünfte entfernt werden, und die Werte vorhandener Eigenschaften werden geändert. freeze() gibt den Fehlerwert übergebenen Objekt. Primitive oder Null-Argumente wenn es sich um ein fixiertes Objekt handelt, und wird zurückgegeben.

Die Methode delete() stellt den Löschoperator der Standardbibliothek bereit. verhalten. Sie entfernt den angegebenen Schlüssel aus dem Objekt, sofern das Objekt nicht fixiert ist. Wie beim Löschoperator der Standardbibliothek wird true zurückgegeben, wenn die erste Eingabe Der Wert (objectInput) ist ein Objekt, das nicht fixiert ist, auch wenn die zweite Eingabe Der Wert (keyToDelete) gibt einen nicht vorhandenen Schlüssel an. Sie gibt false in alle anderen Fälle. Er unterscheidet sich jedoch vom Löschoperator für die Standardbibliothek. auf folgende Arten:

  • keyToDelete darf kein durch Punkte getrennter String sein, der einen verschachtelten Schlüssel angibt.
  • delete() kann nicht zum Entfernen von Elementen aus einem Array verwendet werden.
  • Mit delete() können keine Properties 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 aufgelistet werden sollen Wenn die Eingabe kein Objekt ist, zu einem Objekt erzwungen.

Object.values

Parameter Typ Beschreibung
objectInput Beliebig Objekt, dessen Werte aufgezählt werden sollen Wenn die Eingabe kein Objekt ist, wird er 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 enthält, wird er in ein -Objekt umgewandelt.

Object.freeze

Parameter Typ Beschreibung
objectInput Beliebig Das Objekt, das fixiert werden soll. Wenn die Eingabe kein Objekt ist, wird es wie ein fixiertes Objekt behandelt.

Object.delete

Parameter Typ Beschreibung
objectInput Beliebig 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.

Promise

Gibt ein Objekt zurück, das Methoden für die Interaktion mit Promise-Objekten bereitstellt.

Funktional gesehen entsprechen Promise-Objekte JavaScript-Promises. Jede Instanz hat drei Methoden, um ein Promise zurückzugeben, das weitere Maßnahmen ermöglicht, wenn ein Promise beglichen:

  • .then() verarbeitet sowohl die geklärten als auch die abgelehnten Anfragen. Es sind zwei Callbacks als Parameter: einer für den Erfolgsfall und einer für den Fehler Fall.
  • .catch(): Nur abgelehnte Anfragen werden bearbeitet. Nimmt einen Rückruf als .
  • .finally() – bietet eine Möglichkeit, den Code auszuführen, unabhängig davon, ob das Promise geklärt oder abgelehnt wurde. Nimmt einen Callback als Parameter an, der mit kein Argument.

eine Variable, die ein Versprechen zurückgibt, dass es dem aufgelösten Wert des Versprechens entspricht. false, wenn das Versprechen abgelehnt wird.

Beispiel

promise.then((resolvedValue) => {
    // Handles when promise resolves.
  }, (rejectedValue) => {
    // Handles when promise rejects.
  });
promise.catch((rejectedValue) => {
    // Handles when promise rejects.
  });
promise.finally(() => {
    // Runs regardless of whether or not the previous promise resolves or
    // rejects.
  });

Promise.all

Gibt ein Promise zurück, das entweder

  • wird aufgelöst, wenn alle Eingaben gelöst sind, oder
  • wird abgelehnt, wenn eine der Eingaben abgelehnt wird

Syntax

Promise.all(inputs);

Parameter

Parameter Typ Beschreibung
inputs Array Ein Array von Werten oder Versprechen. Wenn eine Eingabe kein Promise ist, wird die Eingabe wie der aufgelöste Wert eines Promise weitergegeben. Wirf einen Fehler, wenn die Eingabe kein Array ist.

Beispiel

const Promise = require('Promise');
const sendHttpGet = require('sendHttpGet');

return Promise.all(['a', sendHttpGet('https://example.com')])
  .then((results) => {
    // results will equal: ['a', {statusCode: 200, headers: {}, body: ''}]
  });

Zugehörige Berechtigungen

Keine.

Promise.create

Erstellt ein Promise, das funktional einem JavaScript-Promise entspricht.

Syntax

Promise.create(resolver);

Parameter

Parameter Typ Beschreibung
resolver Funktion Eine Funktion, die durch zwei Funktionen aufgerufen wird: Resolve und Ablehnen. Das zurückgegebene Promise wird aufgelöst oder abgelehnt, wenn das entsprechende aufgerufen wird. Gibt einen Fehler aus, wenn Resolver keine Funktion ist.

Beispiel

const Promise = require('Promise');

return Promise.create((resolve, reject) => {
  // Do asynchronous work that eventually calls resolve() or reject()
});

Zugehörige Berechtigungen

Keine.

APIs testen

Diese APIs arbeiten mit JavaScript-Tests in der Sandbox zusammen, um Tests für benutzerdefinierte in Google Tag Manager erstellen. Diese Test-APIs benötigen kein require() . [Weitere Informationen zu Tests in benutzerdefinierten Vorlagen]


assertApi

Gibt ein Abgleichobjekt zurück, mit dem Assertions zum gegeben ist.

Syntax

assertApi(apiName)

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu überprüfenden API. denselben String, der an require()

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. Es wird ein -Objekt, mit dem fließend Assertions zum Wert eines Objekts gemacht werden können. Eine Bei einem Assertion-Fehler wird der Test sofort beendet und als fehlgeschlagen markiert. Sie können jedoch hat ein Fehler in einem Test keine Auswirkungen auf andere Testfälle.

Syntax

assertThat(actual, opt_message)

Parameter

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

Matcher

Matcher Beschreibung
isUndefined() Bestätigt, dass der Betreff undefined ist.
isDefined() Erklärt, dass der Betreff nicht undefined ist.
isNull() Bestätigt, dass der Betreff null ist.
isNotNull() Erklärt, dass der Betreff nicht null ist.
isFalse() Bestätigt, dass der Betreff false ist.
isTrue() Bestätigt, dass der Betreff true ist.
isFalsy() Hiermit wird behauptet, dass das Motiv falsch ist. Falsche Werte sind undefined, null, false NaN, 0 und „ (leerer String).
isTruthy() Es wird behauptet, dass das Subjekt wahr ist. 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() Bestimmt, dass das Subjekt positiv oder negativ ist.
isNotInfinity() Behauptet, dass das Subjekt ein beliebiger Wert außer einem positiven oder negativen Wert ist Unendlich.
isEqualTo(expected) Bestätigt, dass das Subjekt mit dem angegebenen Wert übereinstimmt. Dies ist ein Wert keinen Referenzvergleich. Inhalte von Objekten und Arrays rekursiv verglichen werden.
isNotEqualTo(expected) Erklärt, dass das Subjekt nicht mit dem angegebenen Wert übereinstimmt. Dies ist ein und keinen Referenzvergleich. Der Inhalt von Objekten und werden Arrays rekursiv verglichen.
isAnyOf(...expected) Bestätigt, dass das Subjekt einem der angegebenen Werte entspricht. Dies ist ein und keinen Referenzvergleich. Der Inhalt von Objekten und werden Arrays rekursiv verglichen.
isNoneOf(...expected) Bestimmt, dass das Subjekt mit keinem der angegebenen Werte übereinstimmt. Dieses ist ein Wertvergleich, kein Referenzvergleich. Inhalt von Objekten und Arrays rekursiv verglichen werden.
isStrictlyEqualTo(expected) Behauptet, dass das Subjekt strikt gleich (===) ist mit dem gegeben ist.
isNotStrictlyEqualTo(expected) Behauptet, dass das Subjekt nicht genau gleich (!==) ist mit gegeben ist.
isGreaterThan(expected) Erklärt, dass das Motiv größer als (>) die angegebene ist Wert in einem geordneten Vergleich.
isGreaterThanOrEqualTo(expected) Bestimmt, dass das Subjekt größer oder gleich (>=) den angegebenen Wert in einem geordneten Vergleich.
isLessThan(expected) Erklärt, dass das Subjekt kleiner als (<) der angegebenen ist Wert in einem geordneten Vergleich.
isLessThanOrEqualTo(expected) Gibt an, dass das Subjekt kleiner oder gleich (<=) ist den gegebenen Wert in einem geordneten Vergleich an.
contains(...expected) Bestätigt, dass das Subjekt ein Array oder ein String ist, der alle der in beliebiger Reihenfolge anzeigen. Dies ist ein Wertvergleich, keine Referenz vergleichen. Der Inhalt von Objekten und Arrays wird verglichen. rekursiv.
doesNotContain(...expected) Bestimmt, dass das Subjekt ein Array oder ein String ist, der keinen der folgenden Werte enthält: die angegebenen Werte. Dies ist ein Wertvergleich, kein Referenzvergleich. Die Inhalte von Objekten und Arrays werden rekursiv verglichen.
containsExactly(...expected) Bestätigt, dass das Subjekt ein Array ist, das alle angegebenen Werte in beliebiger Reihenfolge und keine anderen Werte. Dies ist ein Wertvergleich, kein Referenzvergleich. Der Inhalt von Objekten und Arrays wird verglichen. rekursiv.
doesNotContainExactly(...expected) Bestätigt, dass das Subjekt ein Array ist, das einen anderen Satz enthält. von Werten aus den gegebenen Werten in beliebiger Reihenfolge. Das ist ein Wertvergleich, keinen Referenzvergleich. Der Inhalt von Objekten und Arrays ist rekursiv verglichen werden.
hasLength(expected) Bestätigt, dass das Subjekt 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() Bestimmt, 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 .
isNotEmpty() Bestimmt, dass das Subjekt ein Array oder String ist, der nicht leer ist (Länge > 0). Die Assertion schlägt immer fehl, wenn der Wert kein Array ist oder einer Zeichenfolge.
isArray() Bestätigt, dass der Typ des Subjekts 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() Erklärt, dass der Typ des Subjekts eine Zahl ist.
isObject() Bestätigt, dass der Typ des Subjekts ein Objekt ist.
isString() Bestätigt, dass der Typ des Subjekts ein String ist.

Beispiele

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

fail

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

Syntax

fail(opt_message);

Parameter

Parameter Typ Beschreibung
opt_message String Optionaler Fehlermeldungstext.

Beispiel

fail('This test has failed.');

mock

Mit der mock API können Sie das Verhalten von in einer Sandbox ausgeführten APIs überschreiben. Das Modell Die API kann im Vorlagencode sicher verwendet werden, ist aber nur im Testmodus betriebsbereit. Die Simulationen werden vor jedem Test zurückgesetzt.

Syntax

mock(apiName, returnValue);

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu testenden API. denselben String, der an require()
returnValue Beliebig Der Wert, der für die API zurückgegeben werden soll, oder eine Funktion, die anstelle der der API erstellen. Wenn returnValue eine Funktion ist, wird diese Funktion in die in einer Sandbox ausgeführte API eingesetzt wird. returnValue ist ein anderer Wert als eine Funktion, wird dieser Wert anstelle des in der Sandbox der API erstellen.

Beispiele

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

mockObject

Mit der mockObject API können Sie das Verhalten von in einer Sandbox ausgeführten APIs überschreiben, gibt ein -Objekt zurück. Die Verwendung der API im Vorlagencode ist sicher, aber betriebsbereit nur im Testmodus. Die Simulationen werden vor jedem Test zurückgesetzt.

Syntax

mockObject(apiName, objectMock);

Parameter

Parameter Typ Beschreibung
apiName String Der Name der zu testenden API. denselben String, der an require()
objectMock Gegenstand Der Wert, der für die API zurückgegeben werden soll, oder eine Funktion, die anstelle der der API erstellen. Muss ein -Objekt sein.

Beispiele

const storage = {};
let firestoreId = 1;

function asTestPromise(result) {
  return {
    then: (callback) => callback(result)
  };
}

mockObject('Firestore', {
  write: (collection, input) => {
    storage[collection + '/' + (++firestoreId)] = input;
    return asTestPromise(firestoreId);
  },
  read: (document) => asTestPromise({data: storage[document]})
});

runCode

Führt den Code für die Vorlage, d.h. den Inhalt des Tabs Code, im aktuelle Testumgebung mit einem bestimmten Eingabedatenobjekt

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. gibt undefined zurück für alle anderen Vorlagentypen.

Beispiel

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