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
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
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
getClientName
Renvoie une chaîne contenant le nom du client actuel.
Syntaxe
getClientName();
Autorisations associées
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
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
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
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
etX-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
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
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
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
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
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
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
Version minimale de l'image
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
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
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
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
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
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
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
|
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
.
- eTLD+1 de l'en-tête
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
etmax-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
etmax-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 terminaisonhttps:
.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
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éescontent-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
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">
|
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.) |
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 . |
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
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.) |
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.) |
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.) |
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.) |
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);
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
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:
messageType:string
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 surlisten
oulisten_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 surlisten_and_send
ousend
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'});