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
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
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
getClientName
Gibt einen String zurück, der den Namen des aktuellen Clients enthält.
Syntax
getClientName();
Zugehörige Berechtigungen
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
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
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
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
undX-Forwarded-For
- Remote-IP-Adresse
getRequestBody
Gibt den Anfragetext als String zurück, falls vorhanden, andernfalls als undefined
.
Syntax
getRequestBody();
Zugehörige Berechtigungen
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
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
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
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
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
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
Mindestversion der Image-Version
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
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
Zugehörige Berechtigungen
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
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
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
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
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.
- eTLD+1 des
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 auchmax-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 auchmax-age
festgelegt sind, hatmax-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 einemhttps:
-Endpunkt gesendet.sameSite: Gibt an, dass ein Cookie nicht ursprungsübergreifend gesendet werden darf -Anfragen. Muss
'strict'
,'lax'
oder'none'
sein.
Zugehörige Berechtigungen
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 werdencontent-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
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:
|
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 . |
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
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);
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
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:
messageType:string
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
vonlisten
oderlisten_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
vonlisten_and_send
odersend
.
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'});