API de taggage côté serveur

Ce document décrit les API pour le taggage côté serveur.


addEventCallback

Enregistre une fonction de rappel qui sera invoquée à la fin d'un événement. La est invoqué lorsque toutes les balises de l'événement ont été exécutées. La est transmis à deux valeurs: l'ID du conteneur qui appelle la fonction. et un objet contenant des informations sur l'événement.

Lorsque cette API est utilisée dans un tag, elle est associée à l'événement actuel. Lorsque cette l'API est utilisée dans un client, elle doit être liée à un événement spécifique à l'aide de la fonction bindToEvent de l'API runContainer. Consultez le example.

Syntaxe

const addEventCallback = require('addEventCallback');

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

Paramètres

Paramètre Type Description
callback function Fonction à invoquer à la fin de l'événement.

L'objet eventData contient les données suivantes:

Nom de la clé Type Description
tags Array Tableau d'objets de données de tags. Toutes les balises déclenchées pendant l'événement auront une entrée dans ce tableau. L'objet de données de tag contient le paramètre l'ID de la balise (id), son état d'exécution (status), et son temps d'exécution (executionTime). Les données de la balise incluent également s'il s'agit des métadonnées configurées au niveau de la balise.

Dans un 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();
    }
  });
});

Dans un tag:

const addEventCallback = require('addEventCallback');

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

Autorisations associées

read_event_metadata


callLater

Planifie un appel à une fonction pour qu'il s'exécute de manière asynchrone. La fonction sera appelé après le retour du code actuel. Cela équivaut à setTimeout(<function>, 0)

Exemple

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

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

Syntaxe

callLater(function)

Paramètres

Paramètre Type Description
function function Fonction à appeler.

Autorisations associées

Aucun


claimRequest

Utilisez cette API dans un client pour revendiquer la requête. Une fois la demande revendiquée, le conteneur n'exécute pas de clients supplémentaires.

Cette API génère une exception si elle est appelée dans un tag ou une variable. Cette API génère une une exception si elle est appelée après le retour du client (par exemple, si elle est appelée dans un comme dans callLater ou dans la fonction onComplete runContainer).

Un client doit revendiquer la requête à l'aide de cette API avant d'appeler la méthode API runContainer.

Exemple

const claimRequest = require('claimRequest');

claimRequest();

Syntaxe

claimRequest();

Autorisations associées

Aucun


computeEffectiveTldPlusOne

Renvoie le domaine de premier niveau effectif + 1 (eTLD+1) du domaine ou de l'URL donnés. L'eTLD+1 est calculé en évaluant le domaine par rapport à la liste des suffixes publics. des règles de pare-feu. L'eTLD+1 est généralement le domaine de plus haut niveau sur lequel vous pouvez définir un cookie.

Si l'argument est nul ou indéfini, sa valeur est renvoyée. non modifiées. Sinon, l'argument est converti par coercition en chaîne. Si l'argument n'est pas un domaine ou une URL valide, une chaîne vide est renvoyée. Si le serveur ne parvient pas pour récupérer la liste des suffixes publics, la valeur de l'argument est renvoyée telle quelle.

Exemple

const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');

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

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

Syntaxe

computeEffectiveTldPlusOne(domainOrUrl);

Paramètres

Paramètre Type Description
domainOrUrl chaîne Domaine ou URL sur lequel calculer l'eTLD+1.

Autorisations associées

Aucun


createRegex

Crée une instance d'expression régulière et la renvoie encapsulée dans un objet. Vous ne pouvez pas accéder directement à l'expression régulière. Cependant, vous pouvez le transmettre à l'API testRegex, String.replace(), String.match() et String.search().

Renvoie null si l'expression régulière n'est pas valide ou si la valeur Re2 n'est pas disponible sur le serveur.

Cette API utilise un framework Re2 la mise en œuvre. L'image Docker du serveur doit utiliser la version 2.0.0 ou une version ultérieure.

Exemple

const createRegex = require('createRegex');

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

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

Syntaxe

createRegex(pattern, flags);

Paramètres

Paramètre Type Description
pattern chaîne Texte de l'expression régulière.
flags chaîne Chaîne facultative contenant les options de l'expression régulière en cours de création. Les paramètres "g" (global) et "i" (ignorer la casse) sont pris en charge. Tous les autres caractères sont ignoré silencieusement.

Autorisations associées

Aucun

Version minimale de l'image

2.0.0


decodeUri

Décode tous les caractères encodés dans l'URI fourni. Renvoie une chaîne qui : qui représente l'URI décodé. Renvoie undefined lorsque la valeur est incorrecte saisie.

Exemple

const decodeUri = require('decodeUri');

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

Syntaxe

decodeUri(encoded_uri);

Paramètres

Paramètre Type Description
encoded_uri chaîne Un URI qui a été encodé par encodeUri() ou par un autre moyen.

Autorisations associées

Aucun


decodeUriComponent

Décode tous les caractères encodés dans le composant URI fourni. Renvoie une chaîne qui représente le composant URI décodé. Renvoie undefined lorsque saisie incorrecte.

Exemple

const decodeUriComponent = require('decodeUriComponent');

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

Syntaxe

decodeUriComponent(encoded_uri_component);

Paramètres

Paramètre Type Description
encoded_uri_component chaîne Un composant d'URI encodé encodeUriComponent() ou par d'autres moyens.

Autorisations associées

Aucun


encodeUri

Renvoie un URI (Uniform Resource Identifier) encodé en échappant les codes caractères. Renvoie une chaîne qui représente la chaîne fournie encodée. en tant qu'URI.

Exemple

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

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

Syntaxe

encodeUri(uri);

Paramètres

Paramètre Type Description
uri chaîne URI complet.

Autorisations associées

Aucun


encodeUriComponent

Renvoie un URI (Uniform Resource Identifier) encodé en échappant les codes caractères. Renvoie une chaîne qui représente la chaîne fournie encodée sous la forme un URI.

Exemple

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

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

Syntaxe

encodeUriComponent(str);

Paramètres

Paramètre Type Description
str chaîne Composant d'un URI.

Autorisations associées

Aucun


extractEventsFromMpv1

Convertit une requête du protocole de mesure V1 entrante en liste d'événements dans Format Unified Schema. Renvoie la liste des événements extraits. Génère une erreur si la requête n'est pas au bon format.

Exemple

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.
  }
}

Syntaxe

extractEventsFromMpv1();

Autorisations associées

Nécessite l'autorisation read_request. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • body
  • query parameters

extractEventsFromMpv2

Convertit une requête entrante du protocole de mesure V2 en liste d'événements dans Format Unified Schema. Renvoie la liste des événements extraits. Génère une erreur si la requête n'est pas au bon format.

Exemple

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.
  }
}

Syntaxe

extractEventsFromMpv2();

Autorisations associées

Nécessite l'autorisation read_request. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • body
  • query parameters

fromBase64

Décode une chaîne encodée en base64. Renvoie undefined si l'entrée n'est pas valide.

Syntaxe

fromBase64(base64EncodedString);

Paramètres

Paramètre Type Description
base64EncodedString chaîne Chaîne encodée en base64.

Exemple

const fromBase64 = require('fromBase64');

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

Autorisations associées

Aucun


generateRandom

Renvoie un nombre (entier) aléatoire compris dans la plage donnée.

Exemple

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

Syntaxe

generateRandom(min, max);

Paramètres

Paramètre Type Description
min nombre Valeur potentielle minimale de l'entier renvoyé (inclus).
max nombre Valeur potentielle maximale de l'entier renvoyé (inclus).

Autorisations associées

Aucun


getAllEventData

Renvoie une copie des données d'événement.

Syntaxe

getAllEventData();

Autorisations associées

read_event_data


getClientName

Renvoie une chaîne contenant le nom du client actuel.

Syntaxe

getClientName();

Autorisations associées

read_container_data


getContainerVersion

Renvoie un objet contenant des données sur le conteneur actuel. La valeur renvoyée comporte les champs suivants:

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

Exemple

const getContainerVersion = require('getContainerVersion');

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

Syntaxe

getContainerVersion();

Autorisations associées

read_container_data


getCookieValues

Renvoie un tableau contenant les valeurs de tous les cookies portant le nom donné.

Exemple

const getCookieValues = require('getCookieValues');

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

Syntaxe

getCookieValues(name[, noDecode]);

Paramètres

Paramètre Type Description
name chaîne Nom du cookie.
noDecode booléen Si la valeur est true, les valeurs du cookie ne seront pas décodées avant d'être renvoyé. La valeur par défaut est false.

Autorisations associées

get_cookies


getEventData

Renvoie une copie de la valeur au chemin d'accès indiqué dans les données d'événement. Renvoie undefined s'il n'y a pas de données d'événement ou s'il n'existe aucune valeur au niveau du chemin d'accès donné.

Exemple

const getEventData = require('getEventData');

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

Paramètres

Paramètre Type Description
keyPath tous Chemin de la clé, où les composants du chemin sont séparés par des points. La les composants de chemin peuvent être des clés d'un objet ou des index dans un tableau. Si keyPath n'est pas une chaîne, il est converti en chaîne.

Syntaxe

getEventData(keyPath);

Autorisations associées

read_event_data


getGoogleAuth

Renvoie un objet d'autorisation qui, lorsqu'il est utilisé avec sendHttpGet ou sendHttpRequest, incluent un en-tête d'autorisation pour les API Google Cloud. Cette API utilise Identifiants par défaut de l'application pour trouver automatiquement les identifiants à partir du de l'environnement de serveur.

Exemple

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

Syntaxe

getGoogleAuth(scopes);

Paramètres

Paramètre Type Description
scopes Array un tableau des champs d'application des API Google OAuth 2.0 à demander l'accès.

Autorisations associées

Nécessite l'autorisation use_google_credentials. L'autorisation doit être configurés avec un ou plusieurs champs d'application autorisés.


getGoogleScript

Récupère une ressource à partir d'un ensemble prédéterminé de scripts Google, puis renvoie une promise avec le script et les métadonnées de mise en cache associées.

La promesse sera résolue en un objet contenant deux clés: script et metadata Si la requête échoue, la promesse est refusée avec une clé reason.

L'objet metadata contient les métadonnées de mise en cache suivantes en fonction du en-têtes de réponse aux ressources. chaque champ ne sera présent que si le est présent dans la réponse de la ressource.

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

Exemple

const getGoogleScript = require('getGoogleScript');

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

Syntaxe

getGoogleScript(script[, options]);

Paramètres

Paramètre Type Description
script chaîne Nom du script. Les scripts compatibles sont les suivants : 'ANALYTICS', 'GTAG' et 'GTM'

Le 'ANALYTICS' récupère le script Google Analytics à partir de https://www.google-analytics.com/analytics.js

Les L'option 'GTAG' permet de récupérer le global site tag (gtag.js). de https://www.googletagmanager.com/gtag/js.

L'option 'GTM' récupère les identifiants Google Tag Manager de https://www.googletagmanager.com/gtm.js.
options objet Options de requête facultatives. Vous trouverez ci-dessous la liste des options compatibles.

Options

Option Type Description
id chaîne Applicable à 'GTAG' avec l'ID de mesure gtag et 'GTM' par l'ID du conteneur Web (par exemple, GTM-XXXX).
debug tous S'il est vrai, demande et renvoie la version de débogage de la mesure script.
timeout nombre Le délai avant expiration de la requête, en millisecondes les valeurs non positives sont ignorées. Si la requête expire, le rappel est invoqué avec undefined pour la valeur de script et {} pour la .

Les clés d'option non reconnues sont ignorées.

Autorisations associées

Nécessite l'autorisation send_http. L'autorisation doit être configurée pour autoriser aient accès à au moins:

  • Autoriser les domaines Google

getRemoteAddress

Renvoie une représentation sous forme de chaîne de l'adresse IP dans laquelle la requête (ex. : 12.345.67.890 pour IPv4 ou 2001:0db8:85a3:0:0:8a2e:0370:7334 pour IPv6, en lisant des en-têtes de requêtes tels que Forwarded et X-Forwarded-For. Remarque: Cette API tente au mieux de découvrir l'adresse IP d'origine, mais il ne peut pas garantir l'exactitude du résultat.

Syntaxe

getRemoteAddress();

Autorisations associées

Nécessite l'autorisation read_request. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • En-têtes Forwarded et X-Forwarded-For
  • Adresse IP distante

getRequestBody

Renvoie le corps de la requête sous forme de chaîne, le cas échéant, ou undefined dans le cas contraire.

Syntaxe

getRequestBody();

Autorisations associées

read_request


getRequestHeader

Renvoie la valeur de l'en-tête de requête nommé sous forme de chaîne, le cas échéant. undefined dans le cas contraire. Si l'en-tête est répété, les valeurs renvoyées sont jointes avec ', '.

Exemple

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

Syntaxe

getRequestHeader(headerName);

Paramètres

Paramètre Type Description
headerName chaîne Nom de l'en-tête. Cette valeur n'est pas sensible à la casse.

Autorisations associées

read_request


getRequestMethod

Renvoie la méthode de requête. Exemple : 'GET' ou 'POST', sous forme de chaîne.

Exemple

const getRequestMethod = require('getRequestMethod');

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

Syntaxe

getRequestMethod();

Autorisations associées

Aucun


getRequestPath

Renvoie le chemin de la requête sans la chaîne de requête. Par exemple, si l'URL est '/foo?id=123', qui renvoie '/foo'. Supprime automatiquement le serveur préfixe d'URL de conteneur du chemin d'accès. Par exemple, si l'URL de conteneur du serveur est https://example.com/analytics et le chemin de la requête est '/analytics/foo', renvoie '/foo'.

Exemple

const getRequestPath = require('getRequestPath');

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

Syntaxe

getRequestPath();

Autorisations associées

read_request


getRequestQueryParameter

Renvoie la valeur décodée du paramètre de chaîne de requête nommé sous forme de chaîne. ou undefined si le paramètre n'est pas présent. Si le paramètre est répété dans la chaîne de requête, la première valeur qui apparaît dans la chaîne de requête sera renvoyé.

Exemple

const getRequestQueryParameter = require('getRequestQueryParameter');

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

Syntaxe

getRequestQueryParameter(name);

Paramètres

Paramètre Type Description
name chaîne Nom du paramètre de requête.

Autorisations associées

read_request


getRequestQueryParameters

Renvoie les paramètres de requête de la requête HTTP entrante en tant qu'objet mappé de paramètres de requête à la ou aux valeurs correspondantes. Noms des paramètres et les valeurs sont décodées.

Exemple

const getRequestQueryParameters = require('getRequestQueryParameters');

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

Syntaxe

getRequestQueryParameters();

Autorisations associées

read_request


getRequestQueryString

Renvoie la requête de requête sous forme de chaîne, sans le point d'interrogation au début ni un chaîne vide si l'URL de requête n'inclut pas de chaîne de requête.

Exemple

const getRequestQueryString = require('getRequestQueryString');

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

Syntaxe

getRequestQueryString();

Autorisations associées

read_request


getTimestamp

Obsolète. Optez pour getTimestampMillis.

Affiche un nombre qui représente l'heure actuelle en millisecondes depuis Unix. epoch, telle que renvoyée par Date.now().

Syntaxe

getTimestamp();

Autorisations associées

Aucun


getTimestampMillis

Affiche un nombre qui représente l'heure actuelle en millisecondes depuis Unix. epoch, telle que renvoyée par Date.now().

Syntaxe

getTimestampMillis();

Autorisations associées

Aucun


getType

Renvoie une chaîne décrivant le type de la valeur donnée.

Type d'entrée Valeur renvoyée
chaîne 'string'
nombre 'number'
booléen 'boolean'
null 'null'
non défini 'undefined'
Array 'array'
Objet 'object'
Fonction 'function'

Exemple

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

Syntaxe

getType(value);

Paramètres

Paramètre Type Description
value tous Valeur d'entrée.

Autorisations associées

Aucun


hmacSha256

Calcule une signature encodée à l'aide de l'authentification de message basée sur le hachage Code (HMAC) avec SHA-256. Par défaut, l'encodage base64url est utilisé.

Pour utiliser cette API, définissez la variable d'environnement SGTM_CREDENTIALS sur le serveur au chemin d'un fichier de clé JSON encodé au format UTF-8 au format suivant:

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

Les valeurs sont des clés HMAC encodées en base64.

Exemple

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;

Syntaxe

hmacSha256(data, keyId, options)

Paramètres

Paramètre Type Description
data chaîne Données pour calculer la valeur HMAC.
keyId chaîne ID de clé issu du fichier de clé JSON faisant référence à clé à utiliser.
options objet Configuration d'API facultative. (Voir Options ci-dessous.)

Options

Option Type Description
outputEncoding chaîne Spécifie le format d'encodage de l'élément la valeur renvoyée. Les formats acceptés sont hex, base64 ou base64url. La valeur par défaut est base64url si non spécifié.

Autorisations associées

use_custom_private_keys

Version minimale de l'image

1.0.0


isRequestMpv1

Renvoie true si la requête entrante est une requête du protocole de mesure V1. false dans les autres cas.

Exemple

const isRequestMpv1 = require('isRequestMpv1');

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

Syntaxe

isRequestMpv1();

Autorisations associées

Aucun


isRequestMpv2

Renvoie true si la requête entrante est une requête du protocole de mesure V2. false dans les autres cas.

Exemple

const isRequestMpv2 = require('isRequestMpv2');

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

Syntaxe

isRequestMpv2();

Autorisations associées

Aucun


logToConsole

Consigne son ou ses arguments dans la console.

Ces journaux sont visibles dans l'explorateur de journaux de la console Google Cloud. Dans l'explorateur de journaux, exécutez la requête logName =~ "stdout" pour afficher les entrées de journal. créés par cette API.

Exemple

const logToConsole = require('logToConsole');

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

Syntaxe

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

Paramètres

L'API utilise un ou plusieurs arguments, chacun converti en chaîne, si nécessaires et connectés à la console.

Autorisations associées

logging


makeInteger

Convertit la valeur donnée en nombre (entier).

Syntaxe

makeInteger(value);

Paramètres

Paramètre Type Description
value tout type Valeur à convertir.

Autorisations associées

Aucun


makeNumber

Convertit la valeur donnée en nombre.

Syntaxe

makeNumber(value);

Paramètres

Paramètre Type Description
value tout type Valeur à convertir.

Autorisations associées

Aucun


makeString

Renvoie la valeur donnée sous forme de chaîne.

Syntaxe

makeString(value);

Paramètres

Paramètre Type Description
value tout type Valeur à convertir.

Autorisations associées

Aucun


makeTableMap

Convertit un objet de table simple comportant deux colonnes en Map. Ceci est utilisé pour modifier un champ de modèle SIMPLE_TABLE avec deux colonnes pour en faire un champ plus facile à gérer .

Par exemple, cette fonction peut convertir un objet de table:

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

dans une carte:

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

Renvoie un objet: la valeur Map convertie des paires clé-valeur a été ajoutée à ou null dans le cas contraire.

Syntaxe

makeTableMap(tableObj, keyColumnName, valueColumnName);

Paramètres

Paramètre Type Description
tableObj Liste Objet table à convertir. Il s'agit d'une liste de cartes où chaque Map représente une ligne du tableau. Chaque nom de propriété est le nom de la colonne et la valeur de la propriété est la colonne dans la ligne.
keyColumnName chaîne Nom de la colonne dont les valeurs deviendront des clés dans la colonne Map
valueColumnName chaîne Nom de la colonne dont les valeurs deviendront des valeurs dans la colonne Map

Autorisations associées

Aucun


parseUrl

Renvoie un objet contenant toutes les parties d'une URL donnée, semblable à l'objet URL.

Cette API renvoie undefined pour toutes les URL dont le format est incorrect. Pour un format correct URL, les champs non présents dans la chaîne d'URL auront pour valeur une chaîne vide, ou, dans le cas de searchParams, un objet vide.

L'objet renvoyé comporte les champs suivants:

{
  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,
}

Exemple

const parseUrl = require('parseUrl');

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

Syntaxe

parseUrl(url);

Paramètres

Paramètre Type Description
url chaîne URL complète qui sera analysée.

Autorisations associées

Aucun


returnResponse

Vide la réponse précédemment définie par d'autres modèles à l'aide des API qui modifient la réponse, y compris setCookie, setPixelResponse, setResponseBody setResponseHeader et setResponseStatus. La valeur par défaut est un code d’état HTTP 200, un corps vide et aucun en-tête.

Il est recommandé d'utiliser cette API à partir d'un modèle client.

Syntaxe

returnResponse();

Exemple

Consultez l'exemple runContainer.

Autorisations associées

return_response


runContainer

Exécute la logique de conteneur (variables, déclencheurs, balises) dans le champ d'application d'un événement. Si cette API est appelée lors de l'exécution du conteneur, le conteneur est de nouveau exécuté.

Les rappels onComplete et onStart reçoivent une fonction appelée bindToEvent Utilisez bindToEvent pour exécuter une API dans le contexte de l'événement. Pour en savoir plus, consultez l'exemple addEventCallback.

Il est recommandé d'utiliser cette API à partir d'un modèle client.

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());

Syntaxe

runContainer(event, onComplete, onStart);

Paramètres

Paramètre Type Description
event objet Paramètres de l'événement.
onComplete function Rappel invoqué une fois le déclenchement de toutes les balises terminé.
onStart function Un rappel qui est invoqué immédiatement avant le déclenchement des balises

Autorisations associées

run_container


sendEventToGoogleAnalytics

Envoie un événement unique à l'aide de données d'événement communes à Google Analytics et renvoie une promesse qui renvoie vers un objet avec une clé location ou rejette vers un objet avec une clé reason. La destination, Universal Analytics ou Google Analytics 4, se base sur l'ID de mesure de l'événement données.

Le champ location est défini sur l'en-tête location, s'il est présent.

Exemple

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

Syntaxe

sendEventToGoogleAnalytics(event);

Paramètres

Paramètre Type Description
event objet L'événement au format Unified Schema.

Autorisations associées

Nécessite l'autorisation send_http. L'autorisation doit être configurée pour autoriser aient accès à au moins:

  • Autoriser les domaines Google

sendHttpGet

Envoie une requête HTTP GET à l'URL spécifiée et renvoie une promesse qui se résout avec le résultat une fois la demande traitée ou arrive à expiration.

Le résultat résolu est un objet contenant trois clés: statusCode, headers, et body. Si la requête échoue (par exemple, URL non valide, aucun routage vers l'hôte, (échec de la négociation SSL, etc.), la promesse sera refusée avec: {reason: 'failed'}. Si l'option timeout a été définie et que la requête a expiré, la La promesse sera refusée avec: {reason: 'timed_out'}

Exemple

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

Syntaxe

sendHttpGet(url[, options]);

Paramètres

Paramètre Type Description
url chaîne URL demandée.
options objet Options de requête facultatives. (Voir Options ci-dessous.)

Options

Option Type Description
headers chaîne En-têtes de requête supplémentaires.
timeout nombre Délai avant expiration, en millisecondes, avant l'événement requête est annulée. La valeur par défaut est 15000.
authorization objet objet d'autorisation facultatif de appel à getGoogleAuth pour inclure d'autorisation lors des requêtes à googleapis.com.

Autorisations associées

send_http


sendHttpRequest

Envoie une requête HTTP à l'URL spécifiée et affiche une promesse qui se résout avec la réponse une fois la requête terminée ou expirée.

Le résultat résolu est un objet contenant trois clés: statusCode, headers, et body. Si la requête échoue (par exemple, URL non valide, aucun routage vers l'hôte, (échec de la négociation SSL, etc.), la promesse sera refusée avec: {reason: 'failed'}. Si l'option timeout a été définie et que la requête a expiré, la La promesse sera refusée avec: {reason: 'timed_out'}

Exemple

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

Syntaxe

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

Paramètres

Paramètre Type Description
url chaîne URL demandée.
options objet Options de requête facultatives. (Voir Options ci-dessous.)
body chaîne Corps de la requête facultatif.

Options

Option Type Description
headers chaîne En-têtes de requête supplémentaires.
method objet Méthode de la requête. La valeur par défaut est GET.
timeout nombre Délai avant expiration, en millisecondes, avant l'événement requête est annulée. La valeur par défaut est 15000.
authorization objet objet d'autorisation facultatif de appel à getGoogleAuth pour inclure d'autorisation lors des requêtes à googleapis.com.

Autorisations associées

send_http


sendPixelFromBrowser

Envoie une commande au navigateur pour charger l'URL fournie en tant que tag <img>. Ce est compatible avec la balise Google pour GA4 et Google Analytics: Événement GA. Vous devez configurer le conteneur serveur URL. Pour en savoir plus, consultez les instructions.

Cette API renvoie false si la requête entrante n'est pas compatible avec la commande protocole, ou si la réponse a déjà été vidée. Sinon, cette API renvoie true.

Exemple :

const sendPixelFromBrowser = require('sendPixelFromBrowser');

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

Syntaxe

sendPixelFromBrowser(url)

Paramètres

Paramètre Type Description
url chaîne URL à envoyer au navigateur.

Autorisations associées

send_pixel_from_browser


setCookie

Définit ou supprime un cookie selon les options spécifiées.

Pour supprimer un cookie, vous devez en définir un dont le chemin et le domaine sont identiques à ceux d'un cookie, et lui attribuer une valeur d'expiration passée, Ex. : "Thu, 01 Jan 1970 00:00:00 GMT"

Notez que returnResponse doit être appelé pour que la réponse à être renvoyé au client.

Exemple

const setCookie = require('setCookie');

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

Syntaxe

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

Paramètres

Paramètre Type Description
name chaîne Nom du cookie. Le nom n'est pas sensible à la casse.
value chaîne Valeur du cookie.
options objet Attributs de cookie facultatifs:domaine, expire, fallbackDomain,httpOnly, max- age, path, secure et sameSite. (Voir Options ci-dessous.)
noEncode booléen Si la valeur est "true", la valeur du cookie ne sera pas encodée. La valeur par défaut est false

Options

  • domain:hôte auquel le cookie sera envoyé. S'il est défini sur la valeur la valeur "auto", l'hôte est automatiquement calculé à l'aide de stratégie suivante:

    • eTLD+1 de l'en-tête Forwarded, le cas échéant.
    • eTLD+1 de l'en-tête X-Forwarded-Host, le cas échéant.
    • eTLD+1 de l'en-tête Host.
  • expires: durée de vie maximale du cookie. Il doit s'agir d'un fichier au format UTC Chaîne de date (par exemple, "Sam. 26 oct. 1985 08:21:00 GMT". Si expires et max-age sont définis, max-age est prioritaire.

  • httpOnly: empêche JavaScript d'accéder au cookie si la valeur est true.

  • max-age: nombre de secondes avant l'expiration du cookie. Un zéro ou une valeur négative le cookie va expirer immédiatement. Si expires et max-age sont définis, max-age est prioritaire.

  • path: chemin d'accès qui doit exister dans l'URL demandée, sans quoi le navigateur envoyez l'en-tête de cookie.

  • secure (sécurisé) : si la valeur est définie sur true, le cookie n'est envoyé au serveur que lorsqu'un est effectuée à partir d'un point de terminaison https:.

  • sameSite: affirme qu'un cookie ne doit pas être envoyé avec une origine multi-origine requêtes. Doit être 'strict', 'lax' ou 'none'.

Autorisations associées

set_cookie


setPixelResponse

Définit le corps de la réponse sur un GIF 1 x 1, définit l'en-tête Content-Type sur "image/gif" définit les en-têtes de mise en cache de sorte que les user-agents ne mettent pas en cache la réponse, et définit l'état de la réponse sur 200.

Notez que returnResponse doit être appelé pour que la réponse à être renvoyé au client.

Syntaxe

setPixelResponse();

Autorisations associées

Nécessite l'autorisation access_response. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • headers : les clés suivantes doivent être autorisées
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

Définit le corps de la réponse sur l'argument.

Notez que returnResponse doit être appelé pour que la réponse à être renvoyé au client.

Syntaxe

setResponseBody(body[, encoding]);

Paramètres

Paramètre Type Description
body chaîne Valeur à définir comme corps de la réponse.
encoding chaîne Encodage des caractères du corps de la réponse (par défaut, 'utf8'). Les valeurs acceptées incluent 'ascii', 'utf8', 'utf16le', 'ucs2' 'base64', 'latin1', 'binary' et 'hex'.

Autorisations associées

Nécessite l'autorisation access_response. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • body

setResponseHeader

Définit un en-tête dans la réponse à renvoyer. Si un en-tête portant ce nom (non sensible à la casse) a déjà été défini par cette API, ce dernier appel écraser ou effacer la valeur définie par l'appelant précédent.

Notez que returnResponse doit être appelé pour que la réponse à être renvoyé au client.

Syntaxe

setResponseHeader(name, value);

Paramètres

Paramètre Type Description
name chaîne Nom de l'en-tête. Les noms d'en-tête HTTP ne sont pas sensibles à la casse, le nom s'affiche en minuscules.
value chaîne non définie Valeur de l'en-tête. Si la valeur est nulle ou non définie, l'en-tête nommé est effacé. de la réponse qui sera renvoyée.

Autorisations associées

Nécessite l'autorisation access_response. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • headers

setResponseStatus

Définit le code d'état HTTP de la réponse qui sera renvoyée.

Notez que returnResponse doit être appelé pour que la réponse à être renvoyé au client.

Syntaxe

setResponseStatus(statusCode);

Paramètres

Paramètre Type Description
statusCode nombre Code d'état HTTP à renvoyer.

Autorisations associées

Nécessite l'autorisation access_response. L'autorisation doit être configurée pour autoriser l'accès à au moins:

  • status

sha256

Calcule le condensé SHA-256 de l'entrée et invoque un rappel avec condensé encodé en base64, sauf si l'objet options spécifie une autre l'encodage de sortie.

Cette signature et ce comportement d'API correspondent à ceux de l'API sha256 pour les conteneurs Web. Toutefois, les modèles personnalisés des conteneurs serveur doivent utiliser l'API sha256Sync pour simplifier le code.

Exemple

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

Syntaxe

sha256(input, onSuccess, options = undefined);

Paramètres

Paramètre Type Description
input chaîne Chaîne à hacher.
onSuccess function Appelée avec le condensé obtenu, encodé en base64, sauf si L'objet options spécifie un autre encodage de sortie.
options objet Facultatif. Objet d'options permettant de spécifier l'encodage de sortie. Si l'objet doit contenir la clé outputEncoding dont la valeur est base64 ou hex.

Autorisations associées

Aucun


sha256Sync

Calcule et renvoie le condensé SHA-256 de l'entrée, encodé en base64. sauf si l'objet options spécifie un encodage de sortie différent.

Exemple

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

Syntaxe

sha256Sync(input, options = undefined);

Paramètres

Paramètre Type Description
input chaîne Chaîne à hacher.
options objet Facultatif. Objet d'options permettant de spécifier l'encodage de sortie. Si l'objet doit contenir la clé outputEncoding dont la valeur est base64 ou hex.

Autorisations associées

Aucun


templateDataStorage

Renvoie un objet avec des méthodes permettant d'accéder au stockage des données des modèles. Modèle Le stockage des données permet de partager les données entre les exécutions d'un même modèle. Les données stockées dans l'espace de stockage du modèle sont conservées sur le serveur exécutant conteneur. Dans la plupart des cas, plusieurs serveurs exécutent le conteneur. le stockage de données dans le modèle de stockage ne garantit pas que toutes les demandes suivantes aura accès aux données.

Le « données » dans le nom "templateDataStorage". fait référence au fait que seules, les types de données qui ne sont pas fonctionnelles peuvent être stockés à l'aide de cette API. Toutes les fonctions ou les références aux fonctions transmises à l'API seront stockées sous la forme null.

Syntaxe

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();

Exemple

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

Autorisations associées

access_template_storage


testRegex

Teste une chaîne par rapport à une expression régulière créée via l'API createRegex. Renvoie true si l'expression régulière correspond. Renvoie false dans les autres cas.

Une expression régulière créée avec l'option globale est avec état. Consultez le RegExp.

Exemple

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

Syntaxe

testRegex(regex, string);

Paramètres

Paramètre Type Description
regex Objet Expression régulière à tester, renvoyée par l'API createRegex.
string chaîne Chaîne de test à tester.

Autorisations associées

Aucun


toBase64

Encode une chaîne au format base64 ou base64url. Par défaut, l'encodage base64 est utilisé.

Syntaxe

toBase64(input, options);

Paramètres

Paramètre Type Description
input chaîne Chaîne à encoder.
options objet Configuration d'API facultative. (Voir Options ci-dessous.)

Options

Option Type Description Version minimale
urlEncoding booléen Si la valeur est "true", le résultat être encodées à l'aide de Format base64url. 1.0.0

Exemple

const toBase64 = require('toBase64');

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

Autorisations associées

Aucun


BigQuery

Renvoie un objet qui fournit des fonctions BigQuery.

La fonction BigQuery.insert permet d'écrire des données dans une table BigQuery. Il renvoie une promesse qui se résout après une insertion réussie ou rejette en cas d'erreur.

Lorsque l'insertion aboutit, la promesse est résolue sans argument.

En cas d'échec de l'insertion, la promesse rejette une requête avec une liste d'objets contenant le motif de l'erreur et éventuellement un objet de ligne si une erreur se produit. Il est possible que qu'une partie de la demande soit traitée, alors que d'autres ne le sont pas. Dans ce cas, la promesse est rejetée avec une liste d'erreurs pour chaque ligne avec un pour distinguer les lignes qui ont été insérées Consultez les exemples d'erreurs ci-dessous. Voir la documentation BigQuery sur erreur messages pour en savoir plus.

Syntaxe

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

Paramètre Type Description
connectionInfo objet Définit les informations requises pour se connecter à une table BigQuery. Il y a Un paramètre facultatif et deux paramètres obligatoires: <ph type="x-smartling-placeholder">
    </ph>
  • projectId - Facultatif Google Cloud Platform l'ID du projet associé. Si cette valeur est omise, la valeur projectId est récupérée à partir de la variable d'environnement GOOGLE_CLOUD_PROJECT en tant que access_bigquery paramètre d'autorisation pour l'ID de projet est défini sur * ou GOOGLE_CLOUD_PROJECT Si le conteneur serveur est exécuté sur Google Cloud, GOOGLE_CLOUD_PROJECT est déjà défini sur l'ID du projet Google Cloud.
  • datasetId : ID de l'ensemble de données BigQuery.
  • tableId : ID de la table BigQuery.
rows Array Lignes à insérer dans la table.
options objet Options de requête facultatives. Les options compatibles sont les suivantes: ignoreUnknownValues et skipInvalidRows. Les clés d'option inconnues sont ignorées. (Voir Options ci-dessous.)

Options

Paramètre Type Description
ignoreUnknownValues booléen Si la valeur est true, accepter les lignes contenant des valeurs qui ne correspondent pas au schéma. Les valeurs inconnues sont ignorées. Valeurs par défaut à false.
skipInvalidRows booléen Si la valeur est true, insérez toutes les lignes valides d'une requête. même s'il existe des lignes non valides. La valeur par défaut est false.

Exemples d'erreurs

Une erreur "module introuvable" signifie que votre conteneur serveur exécute probablement une ancienne version de notre image qui n'avait pas encore inclus le module BigQuery. Veuillez redéployer votre conteneur serveur avec les mêmes paramètres à l'aide de notre script de déploiement. Le module sera automatiquement inclus une fois l'opération terminée.

Une erreur de non-insertion comporte généralement un objet d'erreur avec une clé reason:

[{reason: 'invalid'}]

Une erreur d'insertion peut contenir plusieurs objets d'erreur avec un tableau errors. et un objet row. Voici un exemple de réponse d'erreur d'un insérant deux lignes dont une seule comporte une erreur:

[
  {
    "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
    }
  }
]

Exemple

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

Autorisations associées

access_bigquery


Firestore

Renvoie un objet qui fournit des fonctions Firestore.

Cette API n'est compatible qu'avec Firestore en mode natif, et non avec Firestore en Mode Datastore De plus, l'API ne permet d'utiliser que la base de données par défaut.

Firestore.read

La fonction Firestore.read lit les données d'un document Firestore et Renvoie une promesse qui se résout en un objet contenant deux clés: id et data. Si le document n'existe pas, la promesse refuse avec une contenant une clé reason égale à not_found.

Syntaxe

Firestore.read(path[, options]);

Paramètre Type Description
path chaîne Chemin d'accès au document ou à la collection. Le nom ne doit pas commencer ni se terminer par un "/".
options objet Options de requête facultatives. Les options compatibles sont les suivantes: projectId, disableCache et transaction. Inconnue les clés d'option sont ignorées. (Voir Options ci-dessous.)

Options

Paramètre Type Description
projectId chaîne Facultatif. ID du projet Google Cloud Platform. En cas d'omission, projectId est récupérée à partir de la variable d'environnement GOOGLE_CLOUD_PROJECT si le paramètre access_firestore paramètre d'autorisation pour l'ID de projet est défini sur * ou GOOGLE_CLOUD_PROJECT Si le conteneur serveur est exécuté sur Google Cloud, GOOGLE_CLOUD_PROJECT est déjà défini sur l'ID du projet Google Cloud.
disableCache booléen Facultatif. Détermine si le cache doit être désactivé ou non. La mise en cache est activée par défaut, ce qui permet de mettre en cache les résultats la durée de la requête.
transaction chaîne Facultatif. La valeur récupérée à partir de Firestore.runTransaction(). Marque l'opération à utiliser dans une transaction.

Exemple

const Firestore = require('Firestore');

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

Firestore.write

La fonction Firestore.write écrit les données dans un document Firestore collection. Si le chemin d'accès est celui d'une collection, un document sera créé avec généré de manière aléatoire. Si le chemin d'accès est un document inexistant, est créé. Cette API renvoie une promesse qui renvoie à l'ID du document ajouté ou modifié. Si l'option de transaction est utilisée, l'API renvoie une promesse, mais ne contiendra pas l'ID puisque les écritures sont regroupées.

Syntaxe

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

Paramètres

Paramètre Type Description
path chaîne Chemin d'accès au document ou à la collection. Le nom ne doit pas commencer ni se terminer par un "/".
input objet Valeur à écrire dans le document. Si l'option de fusion est définie, l'API fusionnera les clés de l'entrée dans le document.
options objet Options de requête facultatives. Les options compatibles sont les suivantes: projectId, merge et transaction. Les clés d'option inconnues sont ignorées. (Voir Options ci-dessous.)

Options

Paramètre Type Description
projectId chaîne Facultatif. ID du projet Google Cloud Platform. En cas d'omission, projectId est récupérée à partir de la variable d'environnement GOOGLE_CLOUD_PROJECT si le paramètre access_firestore paramètre d'autorisation pour l'ID de projet est défini sur * ou GOOGLE_CLOUD_PROJECT Si le conteneur serveur est exécuté sur Google Cloud, GOOGLE_CLOUD_PROJECT est déjà défini sur l'ID du projet Google Cloud.
merge booléen Facultatif. Si défini sur true, puis fusionner les clés de l'entrée dans le document, sinon la méthode remplace l'ensemble du document. La valeur par défaut est false.
transaction chaîne Facultatif. La valeur récupérée à partir de Firestore.runTransaction(). Marque l'opération à utiliser dans une transaction.

Exemple

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

La fonction Firestore.query interroge la collection donnée et renvoie un Promesse qui renvoie vers un tableau de documents Firestore correspondant à la requête et conditions d'exploitation. L'objet de document Firestore est le même que celui indiqué ci-dessus dans Firestore.read Si aucun document ne correspond aux conditions de la requête, la promesse renvoyée se résout en un tableau vide.

Syntaxe

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

Paramètre Type Description
collection chaîne Chemin d'accès à la collection. Le nom ne doit pas commencer ni se terminer par un "/".
queryConditions Array Tableau de conditions de requête. Chaque requête se présente sous la forme tableau comportant trois valeurs: key, operator et expectedValue. Par exemple : [['id', '<', '5'], ['state', '==', 'CA']].

Les conditions sont reliées par AND pour créer le résultat de la requête. Veuillez reportez-vous à Opérateurs de requête de Firestore pour obtenir la liste des requêtes compatibles les opérateurs.
options objet Options de requête facultatives. Les options compatibles sont les suivantes: projectId et disableCache limit et transaction. Inconnue les clés d'option sont ignorées. (Voir Options ci-dessous.)

Options

Paramètre Type Description
projectId chaîne Facultatif. ID du projet Google Cloud Platform. En cas d'omission, projectId est récupérée à partir de la variable d'environnement GOOGLE_CLOUD_PROJECT si le paramètre access_firestore paramètre d'autorisation pour l'ID de projet est défini sur * ou GOOGLE_CLOUD_PROJECT Si le conteneur serveur est exécuté sur Google Cloud, GOOGLE_CLOUD_PROJECT est déjà défini sur l'ID du projet Google Cloud.
disableCache booléen Facultatif. Détermine si le cache doit être désactivé ou non. La mise en cache est activée par défaut, ce qui permet de mettre en cache les résultats la durée de la requête.
limit nombre Facultatif. Modifie le nombre maximal de résultats renvoyés par la requête, la valeur par défaut est 5.
transaction chaîne Facultatif. La valeur récupérée à partir de Firestore.runTransaction(). Marque l'opération à utiliser dans une transaction.

Exemple

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

La fonction Firestore.runTransaction permet à l'utilisateur d'effectuer lire et écrire des données depuis Firestore. Si une écriture simultanée ou une autre transaction la transaction sera relancée jusqu'à deux fois. En cas d'échec après trois tentatives au total, l'API rejette le message avec une erreur. Cette API renvoie une promesse qui se résout en un tableau d'ID de document, pour chaque opération d'écriture, si la transaction aboutit, et rejette avec l'erreur si elle échoue.

Syntaxe

Firestore.runTransaction(callback[, options]);

Paramètres

Paramètre Type Description
callback function Rappel invoqué avec un ID de transaction de type chaîne. La L'ID de transaction peut être transmis dans les appels d'API de lecture/écriture/requête. Cette fonction de rappel doit renvoyer une promesse. Le rappel peut s'exécuter jusqu'à trois fois avant d'échouer.
options objet Options de requête facultatives. La seule option compatible est projectId. Les clés d'option inconnues sont ignorées. (Voir Options ci-dessous.)

Options

Paramètre Type Description
projectId chaîne Facultatif. ID du projet Google Cloud Platform. En cas d'omission, projectId est récupérée à partir de la variable d'environnement GOOGLE_CLOUD_PROJECT si le paramètre access_firestore paramètre d'autorisation pour l'ID de projet est défini sur * ou GOOGLE_CLOUD_PROJECT Si le conteneur serveur est exécuté sur Google Cloud, GOOGLE_CLOUD_PROJECT est déjà défini sur l'ID du projet Google Cloud.

Exemple

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

Exemple d'erreur

Les erreurs disponibles dans chaque fonction Firestore seront rejetées avec un objet contenant une clé reason:

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

Les motifs d'erreur peuvent inclure, sans s'y limiter, Erreur de l'API REST Firestore Codes.

Autorisations associées

access_firestore


JSON

Renvoie un objet qui fournit des fonctions JSON.

La fonction parse() analyse une chaîne JSON pour construire la valeur ou l'objet. décrites par la chaîne. Si la valeur ne peut pas être analysée (fichier JSON incorrect, par exemple), la fonction renvoie undefined. Si la valeur d'entrée n'est pas une chaîne, le est convertie en chaîne.

La fonction stringify() convertit l'entrée en une chaîne JSON. Si la valeur ne peut pas être analysée (par exemple, l'objet a un cycle), la méthode renvoie undefined

Exemple

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

Syntaxe

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

Autorisations associées

Aucun


Math

Objet fournissant des fonctions Math.

Syntaxe

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

Paramètres

Les paramètres des fonctions mathématiques sont convertis en nombres.

Autorisations associées

Aucun


Messages

Les API suivantes fonctionnent ensemble pour permettre la transmission de messages entre différents d'un conteneur.


addMessageListener

Ajoute une fonction qui écoute un message d'un type particulier. Lorsqu'un message de ce type est envoyé à l'aide de l'API sendMessage (généralement par une balise), la s'exécutera de manière synchrone. Le rappel est exécuté avec deux paramètres:

  1. messageType:string
  2. message:Object

Si le rappel est ajouté dans un client, il recevra des messages via tous les événements créés par le client. Si le rappel doit recevoir des messages à partir d'un événement spécifique, puis associez cette API à l'événement à l'aide de bindToEvent dans la fonction onStart de l'API runContainer. Voir l'exemple.

Syntaxe

const addMessageListener = require('addMessageListener');

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

Paramètres

Paramètre Type Description
messageType chaîne Type de message à écouter. Si la valeur n'est pas une chaîne, la valeur convertie par coercition en chaîne.
callback function Rappel à exécuter lorsqu'un message du type applicable est envoyé. Si le rappel n'est pas une fonction, l'API ne fait rien.

Exemple

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

Autorisations associées

Nécessite l'autorisation use_message. L'autorisation doit être configurée pour autoriser au moins:

  • Un type de message avec Usage défini sur listen ou listen_and_send

hasMessageListener

Renvoie la valeur "true" si un écouteur de message a été ajouté pour le type de message donné. Renvoie false dans les autres cas.

Syntaxe

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

Autorisations associées

Aucun


sendMessage

Envoie un message du type spécifié à un écouteur enregistré. Il peut être utilisé pour renvoyer des messages à partir d'un tag au client qui a exécuté le conteneur.

Syntaxe

const sendMessage = require('sendMessage');

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

Paramètres

Paramètre Type Description
messageType chaîne Type de message à envoyer. Si la valeur n'est pas une chaîne, elle est convertie par coercition en chaîne.
message objet Message à envoyer. Si le message n'est pas un objet, l'API ne fait rien.

Autorisations associées

Nécessite l'autorisation use_message. L'autorisation doit être configurée pour autoriser au moins:

  • Un type de message avec Usage défini sur listen_and_send ou send

Object

Renvoie un objet qui fournit des méthodes Object.

La méthode keys() fournit la méthode Object.keys() de la bibliothèque standard comportemental. Elle renvoie un tableau contenant la propre propriété d'énumération d'un objet donné. dans le même ordre qu'une boucle for...in.... Si la valeur d'entrée est pas un objet, il sera forcé à être un objet.

La méthode values() fournit la méthode Object.values() de la bibliothèque standard comportemental. Elle renvoie un tableau contenant les propres valeurs de propriété énumérables d'un objet donné. dans le même ordre qu'une boucle for...in.... Si la valeur d'entrée n'est pas il sera forcé à devenir un objet.

La méthode entries() fournit la méthode Object.entries() de la bibliothèque standard comportemental. Elle renvoie un tableau contenant la propre propriété d'énumération d'un objet donné. Paires [key, value] dans le même ordre qu'une boucle for...in.... Si le valeur d'entrée n'est pas un objet, elle sera forcée en un objet.

La méthode freeze() fournit la méthode Object.freeze() de la bibliothèque standard comportemental. Un objet figé ne peut plus être modifié. le gel d'un objet empêche d'y ajouter de nouvelles propriétés, de supprimer des propriétés existantes, et les valeurs des propriétés existantes. freeze() renvoie la même objet qui a été transmis. Un argument primitif ou nul est traité comme s'il s'agissait d'un objet figé, et est renvoyé.

La méthode delete() fournit l'opérateur de suppression de la bibliothèque standard. comportemental. Elle supprime la clé donnée de l'objet, sauf si celui-ci est figé. Comme l'opérateur de suppression de la bibliothèque standard, il renvoie true si la première entrée (objectInput) est un objet qui n'est pas figé, même si la deuxième entrée value (keyToDelete) spécifie une clé qui n'existe pas. Elle renvoie false dans dans tous les autres cas. Toutefois, il diffère de l'opérateur de suppression de la bibliothèque standard comme suit:

  • keyToDelete ne peut pas être une chaîne délimitée par un point spécifiant une clé imbriquée.
  • delete() ne peut pas être utilisé pour supprimer des éléments d'un tableau.
  • delete() ne peut pas être utilisé pour supprimer des propriétés du champ d'application global.

Syntaxe

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

Paramètres

Object.keys

Paramètre Type Description
objectInput tous Objet dont les clés doivent être énumérées. Si l'entrée n'est pas un objet, elle sera forcée à devenir un objet.

Object.values

Paramètre Type Description
objectInput tous Objet dont les valeurs à énumérer. Si l'entrée n'est pas un objet, il est forcé en objet.

Object.entries

Paramètre Type Description
objectInput tous Objet dont les paires clé/valeur doivent être énumérées. Si l'entrée n'est pas il sera forcé à devenir un objet.

Object.freeze

Paramètre Type Description
objectInput tous Objet à figer. Si l'entrée n'est pas un objet, il sera traité comme un objet figé.

Object.delete

Paramètre Type Description
objectInput tous Objet dont la clé doit être supprimée.
keyToDelete chaîne Clé de niveau supérieur à supprimer.

Exemple

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

Renvoie un objet qui fournit des méthodes d'interaction avec les promesses.

Du point de vue fonctionnel, les promesses sont équivalentes aux promesses JavaScript. Chaque instance possède trois méthodes renvoyant une promesse qui permet d'effectuer une action supplémentaire lorsqu'une promesse s'installe:

  • .then() : gère à la fois les demandes résolues et refusées. Il faut deux des rappels en tant que paramètres: un pour les cas de réussite et un pour les échecs. .
  • .catch() : ne traite que les demandes refusées. Accepte un rappel en tant que .
  • .finally() : permet d'exécuter le code, que la promesse soit résolues ou refusées. Prend un rappel en tant que paramètre invoqué avec la méthode sans argument.

Une variable qui renvoie une promesse est égale à la valeur résolue de la promesse, ou false si la promesse est refusée.

Exemple

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

Affiche une promesse qui:

  • se résout lorsque toutes les entrées sont résolues ; ou
  • rejette lorsque l'une des entrées rejette

Syntaxe

Promise.all(inputs);

Paramètres

Paramètre Type Description
inputs Array Tableau de valeurs ou de promesses. Si une entrée n'est pas une promesse, l'entrée est transmise comme s'il s'agissait de la valeur résolue d'une promesse. Génère une s'affiche si l'entrée n'est pas un tableau.

Exemple

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

Autorisations associées

Aucun

Promise.create

Crée une promesse fonctionnelle équivalente à une promesse JavaScript.

Syntaxe

Promise.create(resolver);

Paramètres

Paramètre Type Description
resolver function Une fonction appelée avec deux fonctions : résoudre et rejeter. La promesse renvoyée est résolue ou refusée lorsque le est appelé. Génère une erreur si le résolveur n'est pas une fonction.

Exemple

const Promise = require('Promise');

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

Autorisations associées

Aucun

API de test

Ces API fonctionnent avec des tests JavaScript en bac à sable afin de créer des tests pour les dans Google Tag Manager. Ces API de test n'ont pas besoin d'un require() . [En savoir plus sur les tests des modèles personnalisés]


assertApi

Renvoie un objet de mise en correspondance qui peut être utilisé pour effectuer couramment des assertions sur le une API donnée.

Syntaxe

assertApi(apiName)

Paramètres

Paramètre Type Description
apiName chaîne Nom de l'API à vérifier. la même chaîne que celle transmise à require()

Outil de mise en correspondance

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

Exemples

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

assertThat

L'API assertThat est modélisée d'après la bibliothèque [Truth] de Google. Elle renvoie une qui peut être utilisé pour effectuer couramment des assertions sur la valeur d'un sujet. Une l'échec d'une assertion arrêtera immédiatement le test et le marquera comme ayant échoué. Toutefois, l'échec d'un test n'affectera pas les autres scénarios de test.

Syntaxe

assertThat(actual, opt_message)

Paramètres

Paramètre Type Description
actual tous Valeur à utiliser dans les vérifications de fluent.
opt_message chaîne Message facultatif à afficher si l'assertion échoue.

Outil de mise en correspondance

Matcher Description
isUndefined() Déclare que l'objet est undefined.
isDefined() Déclare que l'objet n'est pas undefined.
isNull() Déclare que l'objet est null.
isNotNull() Déclare que l'objet n'est pas null.
isFalse() Déclare que l'objet est false.
isTrue() Déclare que l'objet est true.
isFalsy() Il affirme que le sujet est faux. Les valeurs erronées sont undefined, null, false NaN, 0 et '' (chaîne vide).
isTruthy() Il affirme que le sujet est véridique. Les valeurs erronées sont undefined, null, false NaN, 0 et '' (chaîne vide).
isNaN() Déclare que le sujet est la valeur NaN.
isNotNaN() Déclare que le sujet possède une valeur autre que NaN.
isInfinity() Déclarer que le sujet est l'infini positif ou négatif.
isNotInfinity() Déclare que le sujet est une valeur autre que positive ou négative L'infini.
isEqualTo(expected) Déclare que le sujet est égal à la valeur donnée. Il s'agit d'une valeur et non une comparaison de référence. Le contenu des objets et des tableaux sont comparés de manière récursive.
isNotEqualTo(expected) Déclare que le sujet n'est pas égal à la valeur donnée. Il s'agit d'un une comparaison de valeurs, et non une comparaison de référence. Le contenu des objets et les tableaux sont comparés de manière récursive.
isAnyOf(...expected) Déclare que le sujet est égal à l'une des valeurs données. Il s'agit d'un une comparaison de valeurs, et non une comparaison de référence. Le contenu des objets et les tableaux sont comparés de manière récursive.
isNoneOf(...expected) Déclare que le sujet n'est égal à aucune des valeurs données. Ce est une comparaison de valeurs, pas une comparaison de référence. Le contenu des objets et les tableaux sont comparés de manière récursive.
isStrictlyEqualTo(expected) Déclare que le sujet est strictement égal (===) à la une valeur donnée.
isNotStrictlyEqualTo(expected) Déclarer que le sujet n'est pas strictement égal (!==) à la valeur donnée.
isGreaterThan(expected) Déclare que le sujet est supérieur à (>) la valeur donnée dans une comparaison ordonnée.
isGreaterThanOrEqualTo(expected) Déclare que le sujet est supérieur ou égal à (>=) la valeur donnée dans une comparaison ordonnée.
isLessThan(expected) Déclare que le sujet est inférieur à (<) la valeur donnée dans une comparaison ordonnée.
isLessThanOrEqualTo(expected) Déclare que le sujet est inférieur ou égal à (<=) la valeur donnée dans une comparaison ordonnée.
contains(...expected) Déclare que l'objet est un tableau ou une chaîne contenant tous les éléments les valeurs données dans n'importe quel ordre. Il s'agit d'une comparaison de valeurs et non d'une référence comparaison. Le contenu des objets et des tableaux est comparé de manière récursive.
doesNotContain(...expected) Déclare que l'objet est un tableau ou une chaîne qui ne contient aucune des les valeurs données. Il s'agit d'une comparaison de valeurs, et non d'une comparaison de référence. Le contenu des objets et des tableaux est comparé de manière récursive.
containsExactly(...expected) Déclare que l'objet est un tableau contenant tous les éléments valeurs dans n'importe quel ordre et aucune autre valeur. Il s'agit d'une comparaison de valeurs, et non d'une de référence. Le contenu des objets et des tableaux est comparé de manière récursive.
doesNotContainExactly(...expected) Déclare que le sujet est un tableau contenant un ensemble différent de valeurs à partir des valeurs données, dans n'importe quel ordre. Il s'agit d'une comparaison de valeurs, et non une comparaison de références. Le contenu des objets et des tableaux de manière récursive.
hasLength(expected) Désigne que l'objet est un tableau ou une chaîne de la longueur donnée. L'assertion échoue toujours si la valeur n'est pas un tableau ou une chaîne.
isEmpty() Déclare que l'objet est un tableau ou une chaîne vide (longueur = 0). L'assertion échoue toujours si la valeur n'est pas un tableau ou .
isNotEmpty() Déclarer que l'objet est un tableau ou une chaîne non vide (longueur > 0). L'assertion échoue toujours si la valeur n'est pas un tableau ou une chaîne.
isArray() Déclare que le type du sujet est un tableau.
isBoolean() Désigne que le type du sujet est une valeur booléenne.
isFunction() Déclarer que le type du sujet est une fonction.
isNumber() Déclare que le type du sujet est un nombre.
isObject() Déclarer que le type du sujet est un objet.
isString() Déclare que le type du sujet est une chaîne.

Exemples

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

L'opération échoue immédiatement au test en cours et imprime le message donné, le cas échéant.

Syntaxe

fail(opt_message);

Paramètres

Paramètre Type Description
opt_message chaîne Texte du message d'erreur facultatif.

Exemple

fail('This test has failed.');

mock

L'API mock vous permet d'ignorer le comportement des API de bac à sable. La simulation L'API peut être utilisée sans risque dans le code du modèle, mais elle n'est opérationnelle qu'en mode test. Les simulations sont réinitialisées avant chaque test.

Syntaxe

mock(apiName, returnValue);

Paramètres

Paramètre Type Description
apiName chaîne Nom de l'API à simuler la même chaîne que celle transmise à require()
returnValue tous Valeur à renvoyer pour l'API ou une fonction appelée à la place de API. Si returnValue est une fonction, celle-ci est appelée dans l'emplacement de l'API Sandboxed. si returnValue correspond à une autre valeur qu'une fonction, cette valeur est renvoyée à la place API.

Exemples

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

mockObject

L'API mockObject vous permet d'ignorer le comportement des API de bac à sable qui renvoie un objet. L'API peut être utilisée en toute sécurité dans le code du modèle, mais elle est opérationnelle. qu'en mode test. Les simulations sont réinitialisées avant chaque test.

Syntaxe

mockObject(apiName, objectMock);

Paramètres

Paramètre Type Description
apiName chaîne Nom de l'API à simuler la même chaîne que celle transmise à require()
objectMock objet Valeur à renvoyer pour l'API ou une fonction appelée à la place de API. Doit être un objet.

Exemples

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

Exécute le code du modèle, c'est-à-dire le contenu de l'onglet Code, dans l'environnement de test actuel avec un objet de données d'entrée donné.

Syntaxe

runCode(data)

Paramètres

Paramètre Type Description
data objet Objet de données à utiliser dans le test.

Valeur renvoyée

Renvoie la valeur d'une variable pour les modèles de variable. renvoie undefined pour pour tous les autres types de modèles.

Exemple

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