Questo documento illustra le API per il tagging lato server.
addEventCallback
Registra una funzione di callback che verrà richiamata al termine di un evento. La verrà richiamato quando tutti i tag per l'evento saranno stati eseguiti. La vengono passati due valori: l'ID del container che richiama la funzione e un oggetto che contiene informazioni sull'evento.
Quando questa API viene utilizzata in un tag, viene associata all'evento corrente. Quando questo
L'API viene utilizzata in un client, deve essere associata a un evento specifico utilizzando
Funzione bindToEvent
dell'API runContainer
. Consulta le
example per ulteriori dettagli.
Sintassi
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
callback |
funzione | La funzione da richiamare al termine dell'evento. |
L'oggetto eventData
contiene i seguenti dati:
Nome chiave | Tipo | Descrizione |
---|---|---|
tags |
Array |
Un array di oggetti dati tag. Ogni tag attivato durante l'evento
avrà una voce in questo array. L'oggetto dati tag contiene
l'ID del tag (id ), il relativo stato di esecuzione
(status ) e il relativo tempo di esecuzione
(executionTime ). I dati del tag includeranno anche
i metadati del tag configurati nel tag.
|
In un cliente:
const addEventCallback = require('addEventCallback');
const claimRequest = require('claimRequest');
const extractEventsFromMpv1 = require('extractEventsFromMpv1');
const logToConsole = require('logToConsole');
const returnResponse = require('returnResponse');
const runContainer = require('runContainer');
claimRequest();
const events = extractEventsFromMpv1();
let eventsCompleted = 0;
events.forEach((evt, i) => {
runContainer(evt, /* onComplete= */ (bindToEvent) => {
bindToEvent(addEventCallback)((containerId, eventData) => {
logToConsole('Event Number: ' + i);
eventData.tags.forEach((tag) => {
logToConsole('Tag ID: ' + tag.id);
logToConsole('Tag Status: ' + tag.status);
logToConsole('Tag Execution Time: ' + tag.executionTime);
});
});
if (events.length === ++eventsCompleted) {
returnResponse();
}
});
});
In un tag:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
Autorizzazioni associate
callLater
Pianifica una chiamata a una funzione in modo che avvenga in modo asincrono. La funzione sarà
dopo che è stato restituito il codice attuale. Equivale a
setTimeout(<function>, 0)
.
Esempio
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Sintassi
callLater(function)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
function |
funzione | La funzione da chiamare. |
Autorizzazioni associate
Nessuno.
claimRequest
Utilizza questa API in un client per rivendicare la richiesta. Una volta rivendicata una richiesta, container non esegue client aggiuntivi.
Questa API genera un'eccezione se chiamata in un tag o in una variabile. Questa API genera un
se viene chiamato dopo che il client è stato restituito (ad es. se viene chiamato in modo asincrono
come in callLater
o nella funzione onComplete
di runContainer
).
Un client deve rivendicare la richiesta utilizzando questa API prima di chiamare il metodo
API runContainer
.
Esempio
const claimRequest = require('claimRequest');
claimRequest();
Sintassi
claimRequest();
Autorizzazioni associate
Nessuno.
computeEffectiveTldPlusOne
Restituisce il dominio di primo livello effettivo + 1 (eTLD+1) del dominio o URL specificato. L'eTLD+1 viene calcolato valutando il dominio in base all'elenco dei suffissi pubblici le regole del caso. L'eTLD+1 è in genere il dominio di livello più elevato su cui puoi impostare un cookie.
Se l'argomento è nullo o non definito, viene restituito il valore dell'argomento. inalterato. In caso contrario, l'argomento viene forzato a formare una stringa. Se l'argomento non è un dominio o un URL valido, viene restituita una stringa vuota. Se il server non riesce per recuperare l'elenco di suffissi pubblici, il valore dell'argomento viene restituito inalterato.
Esempio
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
Sintassi
computeEffectiveTldPlusOne(domainOrUrl);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
domainOrUrl |
stringa | Un dominio o un URL su cui calcolare l'eTLD+1. |
Autorizzazioni associate
Nessuno.
createRegex
Crea una nuova istanza regex e la restituisce quando è sottoposta a wrapping in un oggetto. Non puoi
accedere direttamente all'espressione regolare. Tuttavia, puoi passarlo all'API testRegex
,
String.replace()
, String.match()
e String.search()
.
Restituisce null
se l'espressione regolare non è valida o Re2 non è disponibile sul server.
Questa API utilizza un valore Re2 implementazione. L'immagine Docker del server deve essere alla versione 2.0.0 o successive.
Esempio
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
Sintassi
createRegex(pattern, flags);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
pattern |
stringa | Testo dell'espressione regolare. |
flags |
stringa | Una stringa facoltativa contenente i flag per l'espressione regolare che viene creata. "g" (globale) e "i" (senza distinzione tra maiuscole e minuscole) sono supportati. Tutti gli altri caratteri vengono ignorato automaticamente. |
Autorizzazioni associate
Nessuno.
Versione minima immagine
decodeUri
Decodifica tutti i caratteri codificati nell'URI fornito. Restituisce una stringa che
rappresenta l'URI decodificato. Restituisce undefined
se fornito con valore non valido
di testo.
Esempio
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
Sintassi
decodeUri(encoded_uri);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
encoded_uri |
stringa |
Un URI codificato da
encodeUri() o con altri mezzi.
|
Autorizzazioni associate
Nessuno.
decodeUriComponent
Decodifica tutti i caratteri codificati nel componente URI fornito. Restituisce un
string che rappresenta il componente URI decodificato. Restituisce undefined
quando
un input non valido.
Esempio
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
Sintassi
decodeUriComponent(encoded_uri_component);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
encoded_uri_component |
stringa |
Un componente URI che è stato codificato da
encodeUriComponent()
o con altri mezzi.
|
Autorizzazioni associate
Nessuno.
encodeUri
Restituisce un URI (Uniform Resource Identifier) codificato convertendo in caratteri escape il codice caratteri. Restituisce una stringa che rappresenta la stringa fornita codificata come URI.
Esempio
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Sintassi
encodeUri(uri);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
uri |
stringa | Un URI completo. |
Autorizzazioni associate
Nessuno.
encodeUriComponent
Restituisce un URI (Uniform Resource Identifier) codificato convertendo in caratteri escape il codice caratteri. Restituisce una stringa che rappresenta la stringa fornita codificata come un URI.
Esempio
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Sintassi
encodeUriComponent(str);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
str |
stringa | Componente di un URI. |
Autorizzazioni associate
Nessuno.
extractEventsFromMpv1
Converte una richiesta Measurement Protocol V1 in arrivo in un elenco di eventi in Formato Schema unificato. Restituisce l'elenco degli eventi estratti. Genera un errore se la richiesta non è nel formato corretto.
Esempio
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.
}
}
Sintassi
extractEventsFromMpv1();
Autorizzazioni associate
Richiede l'autorizzazione read_request
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
body
query parameters
extractEventsFromMpv2
Converte una richiesta Measurement Protocol V2 in arrivo in un elenco di eventi in Formato Schema unificato. Restituisce l'elenco degli eventi estratti. Genera un errore se la richiesta non è nel formato corretto.
Esempio
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.
}
}
Sintassi
extractEventsFromMpv2();
Autorizzazioni associate
Richiede l'autorizzazione read_request
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
body
query parameters
fromBase64
Decodifica una stringa con codifica base64. Restituisce undefined
se l'input non è valido.
Sintassi
fromBase64(base64EncodedString);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
base64EncodedString |
stringa | Stringa codificata Base64. |
Esempio
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
Autorizzazioni associate
Nessuno.
generateRandom
Restituisce un numero casuale (intero) all'interno dell'intervallo specificato.
Esempio
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
Sintassi
generateRandom(min, max);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
min |
numero | Valore potenziale minimo del numero intero restituito (incluso). |
max |
numero | Valore potenziale massimo del numero intero restituito (incluso). |
Autorizzazioni associate
Nessuno.
getAllEventData
Restituisce una copia dei dati sull'evento.
Sintassi
getAllEventData();
Autorizzazioni associate
getClientName
Restituisce una stringa che contiene il nome del client corrente.
Sintassi
getClientName();
Autorizzazioni associate
getContainerVersion
Restituisce un oggetto contenente dati sul contenitore corrente. L'oggetto restituito avrà i seguenti campi:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Esempio
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
Sintassi
getContainerVersion();
Autorizzazioni associate
getCookieValues
Restituisce un array contenente i valori di tutti i cookie con il nome specificato.
Esempio
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
Sintassi
getCookieValues(name[, noDecode]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Nome del cookie. |
noDecode |
booleano |
Se true , i valori dei cookie non vengono decodificati prima di essere
restituito. Il valore predefinito è false .
|
Autorizzazioni associate
getEventData
Restituisce una copia del valore nel percorso specificato nei dati sull'evento. Resi
undefined
se non ci sono dati sugli eventi o se non sono presenti valori nel percorso specificato.
Esempio
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
keyPath |
qualsiasi |
Il percorso della chiave, in cui i componenti sono separati da punti. La
i componenti del percorso possono essere chiavi in un oggetto o indici in un array. Se
keyPath non è una stringa, viene forzata in una stringa.
|
Sintassi
getEventData(keyPath);
Autorizzazioni associate
getGoogleAuth
Restituisce un oggetto autorizzazione che, se utilizzato con
sendHttpGet
o sendHttpRequest
,
includi un'intestazione di autorizzazione per le API Google Cloud. Questa API utilizza
Credenziali predefinite dell'applicazione per trovare automaticamente le credenziali dal
dell'ambiente server.
Esempio
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();
}
});
Sintassi
getGoogleAuth(scopes);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
scopes
|
Array | Un array di ambiti API di Google OAuth 2.0 per richiedi l'accesso. |
Autorizzazioni associate
Richiede l'autorizzazione use_google_credentials
. L'autorizzazione deve essere
configurate con uno o più ambiti consentiti.
getGoogleScript
Recupera una risorsa da un insieme predeterminato di script Google e restituisce un promise con lo script e i metadati di memorizzazione nella cache associati.
La promessa si risolverà in un oggetto contenente due chiavi: script
e
metadata
. Se la richiesta non va a buon fine, la promessa viene rifiutata con una chiave reason
.
L'oggetto metadata
conterrà i seguenti metadati di memorizzazione nella cache in base al
intestazioni delle risposte alle risorse; ogni campo sarà presente solo se le
è presente un'intestazione nella risposta della risorsa.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
Esempio
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
Sintassi
getGoogleScript(script[, options]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
script |
stringa |
Il nome dello script. Gli script supportati sono
'ANALYTICS' , 'GTAG' e
'GTM' .'ANALYTICS'
recupera lo script di Google Analytics da
https://www.google-analytics.com/analytics.js .La L'opzione 'GTAG' recupera il tag globale del sito (gtag.js)
script da https://www.googletagmanager.com/gtag/js .L'opzione 'GTM' consente di recuperare Google Tag Manager
script da https://www.googletagmanager.com/gtm.js .
|
options |
oggetto | Opzioni di richiesta facoltative. Le opzioni supportate sono riportate di seguito. |
Opzioni
Opzione | Tipo | Descrizione |
---|---|---|
id |
stringa |
Applicabile a 'GTAG' con l'ID misurazione e
'GTM' con l'ID contenitore web (ad es. GTM-XXXX).
|
debug |
qualsiasi | Se è veritiero, richiede e restituisce la versione di debug della misurazione lo script. |
timeout |
numero |
Il timeout della richiesta in millisecondi. i valori non positivi vengono ignorati. Se
la richiesta scade, il callback viene richiamato
undefined per il valore dello script e {} per il
metadati.
|
Le chiavi di opzione non riconosciute vengono ignorate.
Autorizzazioni associate
Richiede l'autorizzazione send_http
. L'autorizzazione deve essere configurata in modo da consentire
accesso ad almeno:
- Consenti domini Google
getRemoteAddress
Restituisce una rappresentazione stringa dell'indirizzo IP in cui la richiesta
ha avuto origine, ad es. 12.345.67.890
per IPv4 o 2001:0db8:85a3:0:0:8a2e:0370:7334
per IPv6, leggendo le intestazioni delle richieste come Forwarded e X-Forwarded-For.
Nota: questa API fa il possibile per scoprire l'IP di origine, ma
non possiamo garantire
l'accuratezza dei risultati.
Sintassi
getRemoteAddress();
Autorizzazioni associate
Richiede l'autorizzazione read_request
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
- Intestazioni
Forwarded
eX-Forwarded-For
- Indirizzo IP remoto
getRequestBody
Restituisce il corpo della richiesta come string, se presente, oppure come undefined
.
Sintassi
getRequestBody();
Autorizzazioni associate
getRequestHeader
Restituisce il valore dell'intestazione della richiesta denominata come stringa, se presente oppure
undefined
negli altri casi. Se l'intestazione viene ripetuta, i valori restituiti vengono uniti.
insieme a ', '
.
Esempio
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
Sintassi
getRequestHeader(headerName);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
headerName |
stringa | Il nome dell'intestazione. Questo valore è senza distinzione tra maiuscole e minuscole. |
Autorizzazioni associate
getRequestMethod
Restituisce il metodo di richiesta, ad esempio 'GET'
o 'POST'
, come stringa.
Esempio
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Sintassi
getRequestMethod();
Autorizzazioni associate
Nessuno.
getRequestPath
Restituisce il percorso della richiesta senza la stringa di query. Ad esempio, se l'URL è
'/foo?id=123'
, viene restituito '/foo'
. Elimina automaticamente il server
il prefisso dell'URL del container dal percorso. Ad esempio, se l'URL del contenitore del server è
https://example.com/analytics
e il percorso di richiesta è '/analytics/foo'
, questo
restituisce '/foo'
.
Esempio
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Sintassi
getRequestPath();
Autorizzazioni associate
getRequestQueryParameter
Restituisce il valore decodificato del parametro della stringa di query denominato come stringa,
o undefined
se il parametro non è presente. Se il parametro viene ripetuto in
stringa di query, il primo valore visualizzato nella stringa di query
restituito.
Esempio
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
Sintassi
getRequestQueryParameter(name);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Il nome del parametro di query. |
Autorizzazioni associate
getRequestQueryParameters
Restituisce i parametri di query della richiesta HTTP in entrata come un oggetto mappato i nomi dei parametri di query ai valori o ai valori corrispondenti. I nomi dei parametri e i valori vengono decodificati.
Esempio
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
Sintassi
getRequestQueryParameters();
Autorizzazioni associate
getRequestQueryString
Restituisce la query di richiesta come stringa, senza il punto interrogativo iniziale, o un stringa vuota se l'URL della richiesta non include una stringa di query.
Esempio
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Sintassi
getRequestQueryString();
Autorizzazioni associate
getTimestamp
Obsoleta. Preferisci getTimestampMillis.
Restituisce un numero che rappresenta l'ora corrente in millisecondi a partire da Unix
come restituito da Date.now()
.
Sintassi
getTimestamp();
Autorizzazioni associate
Nessuno.
getTimestampMillis
Restituisce un numero che rappresenta l'ora corrente in millisecondi a partire da Unix
come restituito da Date.now()
.
Sintassi
getTimestampMillis();
Autorizzazioni associate
Nessuno.
getType
Restituisce una stringa che descrive il tipo di valore specificato.
Tipo di input | Valore restituito |
---|---|
stringa | 'string' |
numero | 'number' |
booleano | 'boolean' |
null | 'null' |
non definito | 'undefined' |
Array | 'array' |
Oggetto | 'object' |
Funzione | 'function' |
Esempio
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);
}
Sintassi
getType(value);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
qualsiasi | Valore di input. |
Autorizzazioni associate
Nessuno.
hmacSha256
Calcola una firma codificata utilizzando l'autenticazione dei messaggi basata su hash
Codice (HMAC) con SHA-256. Il valore predefinito è la codifica base64url
.
Per utilizzare questa API, imposta la variabile di ambiente SGTM_CREDENTIALS
sul server
al percorso di un file di chiave JSON codificato UTF-8 con il seguente formato:
{
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
I valori sono chiavi HMAC codificate in base64.
Esempio
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;
Sintassi
hmacSha256(data, keyId, options)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
data |
stringa | I dati per calcolare il valore HMAC. |
keyId
|
stringa | Un ID chiave del file di chiave JSON che fa riferimento al chiave da usare. |
options
|
oggetto | Configurazione API facoltativa. (Vedi Opzioni di seguito. |
Opzioni
Opzione | Tipo | Descrizione |
---|---|---|
outputEncoding
|
stringa | Specifica il formato di codifica per
come valore restituito. I formati supportati sono hex ,
base64 o base64url . Il valore predefinito è
base64url se non specificato. |
Autorizzazioni associate
Versione minima immagine
isRequestMpv1
Restituisce true
se la richiesta in entrata è una richiesta Measurement Protocol V1 oppure
false
negli altri casi.
Esempio
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
Sintassi
isRequestMpv1();
Autorizzazioni associate
Nessuno.
isRequestMpv2
Restituisce true
se la richiesta in entrata è una richiesta Measurement Protocol V2 oppure
false
negli altri casi.
Esempio
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Sintassi
isRequestMpv2();
Autorizzazioni associate
Nessuno.
logToConsole
Registra i suoi argomenti nella console.
Questi log sono visibili all'interno di Esplora log nella console Google Cloud.
Da Esplora log, esegui la query logName =~ "stdout"
per visualizzare le voci di log
creati da questa API.
Esempio
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Sintassi
logToConsole(argument1[, argument2, ...]);
Parametri
L'API accetta uno o più argomenti, ognuno dei quali viene convertito in stringa, se necessario e ha eseguito l'accesso alla console.
Autorizzazioni associate
makeInteger
Converte il valore specificato in un numero (numero intero).
Sintassi
makeInteger(value);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
di qualsiasi tipo | Il valore da convertire. |
Autorizzazioni associate
Nessuno.
makeNumber
Converte il valore specificato in un numero.
Sintassi
makeNumber(value);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
di qualsiasi tipo | Il valore da convertire. |
Autorizzazioni associate
Nessuno.
makeString
Restituisce il valore specificato come stringa.
Sintassi
makeString(value);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
di qualsiasi tipo | Il valore da convertire. |
Autorizzazioni associate
Nessuno.
makeTableMap
Converte un oggetto di tabella semplice con due colonne in un Map
. È utilizzato per
modifica un campo modello SIMPLE_TABLE
con due colonne in una più gestibile
formato.
Ad esempio, questa funzione potrebbe convertire un oggetto tabella:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
in una mappa:
{
'k1': 'v1',
'k2': 'v2'
}
Restituisce un oggetto: il Map
delle coppie chiave-valore convertito è stato aggiunto a
o null
in caso contrario.
Sintassi
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
tableObj |
Elenca |
L'oggetto tabella da convertire. È un elenco di mappe in cui ogni
Map rappresenta una riga della tabella. Il nome di ogni proprietà in un
riga è il nome della colonna, mentre il valore della proprietà è la colonna
nella riga.
|
keyColumnName |
stringa |
Nome della colonna i cui valori diventeranno chiavi nella colonna
Map .
|
valueColumnName |
stringa |
Nome della colonna i cui valori diventeranno valori nella colonna
Map .
|
Autorizzazioni associate
Nessuno.
parseUrl
Restituisce un oggetto che contiene tutte le parti di un determinato URL, come in
l'oggetto URL
.
L'API restituirà undefined
per gli URL con formato non corretto. Per la formattazione corretta
Gli URL, i campi non presenti nella stringa dell'URL avranno il valore di una stringa vuota,
o, nel caso di searchParams
, un oggetto vuoto.
L'oggetto restituito avrà i seguenti campi:
{
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,
}
Esempio
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Sintassi
parseUrl(url);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | L'URL completo che verrà analizzato. |
Autorizzazioni associate
Nessuno.
returnResponse
Elimina la risposta impostata in precedenza da altri modelli utilizzando le API che modificano la risposta, tra cui setCookie, setPixelResponse, setResponseBody setResponseHeader e setResponseStatus. Il valore predefinito è un codice di stato HTTP 200, corpo vuoto e nessuna intestazione.
Ti consigliamo di utilizzare questa API da un modello client.
Sintassi
returnResponse();
Esempio
Vedi l'esempio di runContainer
.
Autorizzazioni associate
runContainer
Esegue la logica del contenitore (variabili, attivatori, tag) nell'ambito di un evento. Se questa API viene richiamata durante l'esecuzione del container, quest'ultimo viene eseguito di nuovo.
I callback onComplete
e onStart
ricevono una funzione denominata
bindToEvent
. Usa bindToEvent
per eseguire un'API nel contesto dell'evento.
Per ulteriori dettagli, vedi l'esempio di addEventCallback.
Ti consigliamo di utilizzare questa API da un modello 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());
Sintassi
runContainer(event, onComplete, onStart);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
event |
oggetto | I parametri evento. |
onComplete |
funzione | Un callback che viene attivato al termine dell'attivazione di tutti i tag. |
onStart |
funzione | Un callback che viene richiamato immediatamente, prima che i tag inizino a essere attivati. |
Autorizzazioni associate
sendEventToGoogleAnalytics
Invia un singolo evento a Google Analytics utilizzando i dati sugli eventi comuni e restituisce un
promesso che si risolve in un oggetto con una chiave location
oppure
rifiuta in un oggetto con una chiave reason
. La destinazione, Universal
Analytics o Google Analytics 4 si basa sull'ID misurazione nell'evento
e i dati di Google Cloud.
Il campo location
è impostato sull'intestazione location
, se presente.
Esempio
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();
});
Sintassi
sendEventToGoogleAnalytics(event);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
event |
oggetto | L'evento nel formato Schema unificato. |
Autorizzazioni associate
Richiede l'autorizzazione send_http
. L'autorizzazione deve essere configurata in modo da consentire
accesso ad almeno:
- Consenti domini Google
sendHttpGet
Crea una richiesta GET HTTP all'URL specificato e restituisce un promise che si risolve con il risultato una volta completata la richiesta o si verifica un timeout.
Il risultato risolto è un oggetto contenente tre chiavi: statusCode
, headers
,
e body
. Se la richiesta non è andata a buon fine (ad es. URL non valido, nessun percorso verso l'host
errore di negoziazione SSL e così via), la promessa verrà rifiutata con: {reason:
'failed'}
. Se è stata impostata l'opzione timeout
e la richiesta è scaduta, il valore
promessa rifiuterà con: {reason: 'timed_out'}
Esempio
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);
Sintassi
sendHttpGet(url[, options]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | L'URL richiesto. |
options
|
oggetto | Opzioni di richiesta facoltative. (Vedi Opzioni di seguito. |
Opzioni
Opzione | Tipo | Descrizione |
---|---|---|
headers |
stringa | Intestazioni della richiesta aggiuntive. |
timeout
|
numero | Il timeout, in millisecondi, prima del
la richiesta viene interrotta. Il valore predefinito è 15000 . |
authorization
|
oggetto | Oggetto autorizzazione facoltativo dal
chiamata a getGoogleAuth per includere
di autorizzazione quando si effettuano richieste
a googleapis.com . |
Autorizzazioni associate
sendHttpRequest
Effettua una richiesta HTTP all'URL specificato e restituisce una promessa che si risolve con la risposta quando la richiesta viene completata o scade.
Il risultato risolto è un oggetto contenente tre chiavi: statusCode
, headers
,
e body
. Se la richiesta non è andata a buon fine (ad es. URL non valido, nessun percorso verso l'host
errore di negoziazione SSL e così via), la promessa verrà rifiutata con: {reason:
'failed'}
. Se è stata impostata l'opzione timeout
e la richiesta è scaduta, il valore
promessa rifiuterà con: {reason: 'timed_out'}
Esempio
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']);
});
Sintassi
sendHttpRequest(url[, options[, body]]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | L'URL richiesto. |
options
|
oggetto | Opzioni di richiesta facoltative. (Vedi Opzioni di seguito. |
body |
stringa | Corpo della richiesta facoltativo. |
Opzioni
Opzione | Tipo | Descrizione |
---|---|---|
headers |
stringa | Intestazioni della richiesta aggiuntive. |
method |
oggetto | Il metodo di richiesta. Il valore predefinito è GET . |
timeout
|
numero | Il timeout, in millisecondi, prima del
la richiesta viene interrotta. Il valore predefinito è 15000 . |
authorization
|
oggetto | Oggetto autorizzazione facoltativo dal
chiamata a getGoogleAuth per includere
di autorizzazione quando si effettuano richieste
a googleapis.com . |
Autorizzazioni associate
sendPixelFromBrowser
Invia un comando al browser per caricare l'URL fornito come tag <img>
. Questo
è supportato nel tag Google per GA4 e
Tag web Google Analytics: evento GA. Devi configurare il contenitore del server
URL. Per ulteriori dettagli, consulta le istruzioni.
Questa API restituisce false
se la richiesta in entrata non supporta il comando
o se la risposta è già stata scaricata. In caso contrario, questa API
restituisce true
.
Esempio:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
Sintassi
sendPixelFromBrowser(url)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | L'URL da inviare al browser. |
Autorizzazioni associate
setCookie
Imposta o elimina un cookie con le opzioni specificate.
Per eliminare un cookie, è necessario impostarne uno con lo stesso percorso e dominio dell'account
è stato creato un cookie con cui è stato assegnato un valore di scadenza nel passato,
ad es. "Thu, 01 Jan 1970 00:00:00 GMT"
.
Tieni presente che è necessario richiamare returnResponse per la risposta a da restituire al client.
Esempio
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Sintassi
setCookie(name, value[, options[, noEncode]]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Il nome del cookie. Il nome non fa distinzione tra maiuscole e minuscole. |
value |
stringa | Il valore del cookie. |
options |
oggetto | Attributi facoltativi dei cookie:domain, scadenza, fallbackDomain,httpOnly, max- età, path, secure, e sameSite. (Vedi Opzioni di seguito. |
noEncode |
booleano |
Se true, il valore del cookie non verrà codificato. Il valore predefinito è
false .
|
domain: l'host a cui verrà inviato il cookie. Se impostato sullo speciale value "auto", l'host verrà calcolato automaticamente utilizzando la seguente strategia:
- eTLD+1 dell'intestazione
Forwarded
, se presente. - eTLD+1 dell'intestazione
X-Forwarded-Host
, se presente. - eTLD+1 dell'intestazione
Host
.
- eTLD+1 dell'intestazione
expires: la durata massima del cookie. Deve avere il formato UTC stringa date, ad es. "Sab, 26 ottobre 1985 08:21:00 GMT". Se
expires
emax-age
impostati,max-age
ha la precedenza.httpOnly: impedisce a JavaScript di accedere al cookie se
true
.max-age: numero di secondi prima della scadenza del cookie. Uno zero o un negativo farà scadere il cookie immediatamente. Se
expires
emax-age
sono entrambi sono impostati,max-age
ha la precedenza.path: un percorso che deve esistere nell'URL richiesto, altrimenti il browser non invia l'intestazione Cookie.
secure: se impostato su
true
, il cookie viene inviato al server solo quando viene eseguita una viene effettuata una richiesta da un endpointhttps:
.sameSite: afferma che un cookie non deve essere inviato con multiorigine richieste. Deve essere
'strict'
,'lax'
o'none'
.
Autorizzazioni associate
setPixelResponse
Imposta il corpo della risposta su un file GIF 1x1, imposta l'intestazione Content-Type su "image/gif", imposta intestazioni di memorizzazione nella cache in modo che gli user agent non memorizzino nella cache la risposta e lo stato della risposta a 200.
Tieni presente che è necessario richiamare returnResponse per la risposta a da restituire al client.
Sintassi
setPixelResponse();
Autorizzazioni associate
Richiede l'autorizzazione access_response
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
headers
: devi autorizzare le seguenti chiavicontent-type
cache-control
expires
pragma
body
status
setResponseBody
Imposta il corpo della risposta sull'argomento.
Tieni presente che è necessario richiamare returnResponse per la risposta a da restituire al client.
Sintassi
setResponseBody(body[, encoding]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
body |
stringa | Il valore da impostare come corpo della risposta. |
encoding |
stringa |
La codifica dei caratteri del corpo della risposta (il valore predefinito è
'utf8' ). I valori supportati includono 'ascii' ,
'utf8' , 'utf16le' , 'ucs2'
'base64' , 'latin1' , 'binary' ,
e 'hex' .
|
Autorizzazioni associate
Richiede l'autorizzazione access_response
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
body
setResponseHeader
Imposta un'intestazione nella risposta che verrà restituita. Se un'intestazione con questo nome (senza distinzione tra maiuscole e minuscole) è stato precedentemente impostato da questa API, la seconda chiamata sovrascrivere o cancellare il valore impostato dal chiamante precedente.
Tieni presente che è necessario richiamare returnResponse per la risposta a da restituire al client.
Sintassi
setResponseHeader(name, value);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Il nome dell'intestazione. I nomi delle intestazioni HTTP non distinguono tra maiuscole e minuscole; pertanto, del nome sarà in minuscolo. |
value |
string undefined | Il valore dell'intestazione. Se nullo o non definito, l'intestazione denominata viene cancellata. dalla risposta che verrà restituita. |
Autorizzazioni associate
Richiede l'autorizzazione access_response
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
headers
setResponseStatus
Imposta il codice di stato HTTP della risposta che verrà restituita.
Tieni presente che è necessario richiamare returnResponse per la risposta a da restituire al client.
Sintassi
setResponseStatus(statusCode);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
statusCode |
numero | Il codice di stato HTTP da restituire. |
Autorizzazioni associate
Richiede l'autorizzazione access_response
. L'autorizzazione deve essere configurata su
consentire l'accesso ad almeno:
status
sha256
Calcola il digest SHA-256 dell'input e richiama un callback con il metodo
digest codificato in base64, a meno che l'oggetto options
specifichi un valore diverso
e la codifica dell'output.
La firma e il comportamento di questa API corrispondono all'API sha256
per i contenitori web.
tuttavia, i modelli personalizzati nei contenitori dei server devono utilizzare
API sha256Sync
per un codice più semplice.
Esempio
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'});
Sintassi
sha256(input, onSuccess, options = undefined);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
input |
stringa | La stringa da sottoporre ad hashing. |
onSuccess |
funzione |
Viene chiamato con il digest risultante, codificato in base64, a meno che il valore
L'oggetto options specifica una codifica di output diversa.
|
options |
oggetto |
Oggetto opzioni facoltativo per specificare la codifica di output. Se
specificato, l'oggetto deve contenere la chiave outputEncoding
con il valore di base64 o hex .
|
Autorizzazioni associate
Nessuno.
sha256Sync
Calcola e restituisce il digest SHA-256 dell'input, codificato in base64,
a meno che l'oggetto options
non specifichi una codifica di output diversa.
Esempio
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));
Sintassi
sha256Sync(input, options = undefined);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
input |
stringa | La stringa da sottoporre ad hashing. |
options |
oggetto |
Oggetto opzioni facoltativo per specificare la codifica di output. Se
specificato, l'oggetto deve contenere la chiave outputEncoding
con il valore di base64 o hex .
|
Autorizzazioni associate
Nessuno.
templateDataStorage
Restituisce un oggetto con metodi per accedere all'archiviazione dei dati del modello. Modello l'archiviazione dei dati consente la condivisione dei dati tra le esecuzioni di un singolo modello. I dati archiviati nell'archiviazione dei dati del modello persistono sul server che esegue containerizzato. Nella maggior parte dei casi ci sono più server che eseguono il container, l'archiviazione dei dati nell'archiviazione dei dati di modello non garantisce che ogni di accesso avranno accesso ai dati.
La sezione "Dati" nel nome "templateDataStorage" si riferisce al fatto che solo i messaggi semplici,
tipi di dati non sulle funzioni possono essere memorizzati
utilizzando questa API. Qualsiasi funzione o
i riferimenti alle funzioni passate all'API verranno archiviati come null
.
Sintassi
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();
Esempio
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);
});
Autorizzazioni associate
testRegex
Testa una stringa rispetto a un'espressione regolare creata tramite l'API createRegex
. Resi true
se la regex trova. In caso contrario, restituisce false
.
Un'espressione regolare creata con il flag globale è stateful. Consulta le Documentazione RegExp per maggiori dettagli.
Esempio
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');
Sintassi
testRegex(regex, string);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
regex |
Oggetto | L'espressione regolare da verificare, restituita dall'API createRegex. |
string |
stringa | Stringa di prova da testare. |
Autorizzazioni associate
Nessuno.
toBase64
Codifica una stringa come base64 o base64url. Il valore predefinito è la codifica Base64.
Sintassi
toBase64(input, options);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
input |
stringa | Stringa da codificare. |
options
|
oggetto | Configurazione API facoltativa. (Vedi Opzioni di seguito. |
Opzioni
Opzione | Tipo | Descrizione | Versione minima |
---|---|---|---|
urlEncoding
|
booleano | Se true, il risultato
essere codificati utilizzando
Formato base64url . |
1.0.0 |
Esempio
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
Autorizzazioni associate
Nessuno.
BigQuery
Restituisce un oggetto che fornisce funzioni BigQuery.
La funzione BigQuery.insert
consente di scrivere dati in una tabella BigQuery. it
restituisce una promessa che si risolve a seguito di un inserimento riuscito o
rifiuta in caso di errore.
Una volta inserito correttamente, la promessa viene risolta senza argomenti.
Quando l'inserimento non riesce, la promessa viene rifiutata con un elenco di oggetti contenenti il motivo dell'errore ed eventualmente un oggetto riga se si verifica un errore. È possibile che solo una parte della richiesta, mentre le altre no. In questo caso, la promessa viene rifiutata con un elenco di errori per ogni riga con un riga per distinguere le righe inserite (consulta la sezione Esempi di errori di seguito). Consulta: la documentazione di BigQuery errore messaggi di errore per ulteriori informazioni.
Sintassi
BigQuery.insert(connectionInfo, rows[, options]);
Parametro | Tipo | Descrizione |
---|---|---|
connectionInfo |
oggetto |
Definisce le informazioni necessarie per la connessione a una tabella BigQuery. C'è
un parametro facoltativo e due parametri obbligatori:
|
rows |
Array | Le righe da inserire nella tabella. |
options |
oggetto | Opzioni di richiesta facoltative. Le opzioni supportate sono: ignoreUnknownValues e skipInvalidRows. Le chiavi di opzione sconosciute vengono ignorate. (Vedi Opzioni di seguito. |
Parametro | Tipo | Descrizione |
---|---|---|
ignoreUnknownValues |
booleano | Se impostato su true , accetta le righe contenenti i valori
che non corrispondono allo schema. I valori sconosciuti vengono ignorati. Valori predefiniti
a false . |
skipInvalidRows |
booleano | Se il valore è impostato su true , inserisci tutte le righe valide di una richiesta
anche se sono presenti righe non valide. Il valore predefinito è false . |
Un errore di modulo non trovato indica che è probabile che nel contenitore del server sia in esecuzione un una versione precedente dell'immagine che non includeva ancora il modulo BigQuery. Esegui di nuovo il deployment del contenitore del server con le stesse impostazioni utilizzando il nostro script di deployment. Il modulo verrà incluso automaticamente al termine dell'operazione.
Un errore non di inserzione in genere include un oggetto di errore con una chiave reason
:
[{reason: 'invalid'}]
Un errore di inserimento può contenere più oggetti di errore con un array errors
e un oggetto row
. Di seguito è riportato un esempio di risposta di errore da
inserendo due righe dove una sola riga contiene un errore:
[
{
"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
}
}
]
Esempio
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);
Autorizzazioni associate
Firestore
Restituisce un oggetto che fornisce funzioni Firestore.
Questa API supporta solo Firestore in modalità Native, non Firestore in Modalità Datastore. Inoltre, l'API supporta solo l'uso del database predefinito.
Firestore.read
La funzione Firestore.read
legge i dati da un documento Firestore e
restituisce una promessa che si risolve in un oggetto contenente due chiavi:
id
e data
. Se il documento non esiste, la promessa viene rifiutata con un
contenente una chiave reason
uguale a not_found
.
Sintassi
Firestore.read(path[, options]);
Parametro | Tipo | Descrizione |
---|---|---|
path |
stringa | Il percorso del documento o della raccolta. Non deve iniziare o terminare con un "/". |
options |
oggetto | Opzioni di richiesta facoltative. Le opzioni supportate sono: projectId, disableCache e transazione. Dati non disponibili vengono ignorate. (Vedi Opzioni di seguito. |
Parametro | Tipo | Descrizione |
---|---|---|
projectId |
stringa | Facoltativo. ID progetto Google Cloud Platform. Se omesso, il valore
projectId recuperato dalla variabile di ambiente
GOOGLE_CLOUD_PROJECT a condizione che
access_firestore
l'impostazione di autorizzazione per l'ID progetto sia impostata su * oppure
GOOGLE_CLOUD_PROJECT . Se il contenitore del server è in esecuzione
Google Cloud, il valore GOOGLE_CLOUD_PROJECT sarà già impostato su
dell'ID del progetto Google Cloud. |
disableCache |
booleano | Facoltativo. Determina se disattivare o meno la cache. La memorizzazione nella cache è abilitata per impostazione predefinita e memorizza nella cache i risultati per durata della richiesta. |
transaction |
stringa | Facoltativo. Il valore recuperato da Firestore.runTransaction(). Contrassegna l'operazione da utilizzare all'interno di un transazione. |
Esempio
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
La funzione Firestore.write
scrive dati in un documento Firestore o
. Se il percorso è verso una raccolta, verrà creato un documento con un
generato in modo casuale. Se il percorso riguarda un documento e non esiste,
. Questa API restituisce una promessa che si risolve nell'ID del parametro
documento aggiunto o modificato. Se viene utilizzata l'opzione di transazione, l'API
restituisce una promessa, ma non conterrà l'ID poiché le scritture sono in batch.
Sintassi
Firestore.write(path, input[, options]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
path |
stringa | Il percorso del documento o della raccolta. Non deve iniziare o terminare con un "/". |
input |
oggetto | Il valore da scrivere nel documento. Se l'opzione di unione è impostata, l'API unirà le chiavi dall'input al documento. |
options |
oggetto | Opzioni di richiesta facoltative. Le opzioni supportate sono: projectId, merge e transazione. Le chiavi di opzione sconosciute vengono ignorate. (Vedi Opzioni di seguito. |
Parametro | Tipo | Descrizione |
---|---|---|
projectId |
stringa | Facoltativo. ID progetto Google Cloud Platform. Se omesso, il valore
projectId recuperato dalla variabile di ambiente
GOOGLE_CLOUD_PROJECT a condizione che
access_firestore
l'impostazione di autorizzazione per l'ID progetto sia impostata su * oppure
GOOGLE_CLOUD_PROJECT . Se il contenitore del server è in esecuzione
Google Cloud, il valore GOOGLE_CLOUD_PROJECT sarà già impostato su
dell'ID del progetto Google Cloud. |
merge |
booleano | Facoltativo. Se impostato su
true , quindi unisci le chiavi dell'input nel documento,
altrimenti il metodo sostituirà l'intero documento. Il valore predefinito è
false . |
transaction |
stringa | Facoltativo. Il valore recuperato da Firestore.runTransaction(). Contrassegna l'operazione da utilizzare all'interno di un transazione. |
Esempio
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 funzione Firestore.query
esegue una query sulla raccolta specificata e restituisce un
che si risolve in un array di documenti Firestore che corrisponde alla query
le condizioni di traffico. L'oggetto documento Firestore è lo stesso elencato in precedenza in
Firestore.read
. Se non esistono documenti che corrispondono alle condizioni della query,
la promessa restituita si risolverà in un array vuoto.
Sintassi
Firestore.query(collection, queryConditions[, options]);
Parametro | Tipo | Descrizione |
---|---|---|
collection |
stringa | Il percorso della raccolta. Non deve iniziare o terminare con un "/". |
queryConditions |
Array | Un array di condizioni di query. Ogni query si presenta sotto forma di
un array con tre valori: key,
operator e expectedValue. ad esempio:
[['id', '<', '5'], ['state', '==", 'CA']]. Le condizioni sono collegate tra loro tramite una relazione AND per creare il risultato della query. Non dimenticare di apporre consulta Operatori di query di Firestore per un elenco di query compatibili . |
options |
oggetto | Opzioni di richiesta facoltative. Le opzioni supportate sono: projectId, disableCache, limit e transaction. Dati non disponibili vengono ignorate. (Vedi Opzioni di seguito. |
Parametro | Tipo | Descrizione |
---|---|---|
projectId |
stringa | Facoltativo. ID progetto Google Cloud Platform. Se omesso, il valore
projectId recuperato dalla variabile di ambiente
GOOGLE_CLOUD_PROJECT a condizione che
access_firestore
l'impostazione di autorizzazione per l'ID progetto sia impostata su * oppure
GOOGLE_CLOUD_PROJECT . Se il contenitore del server è in esecuzione
Google Cloud, il valore GOOGLE_CLOUD_PROJECT sarà già impostato su
dell'ID del progetto Google Cloud. |
disableCache |
booleano | Facoltativo. Determina se disattivare o meno la cache. La memorizzazione nella cache è abilitata per impostazione predefinita e memorizza nella cache i risultati per durata della richiesta. |
limit |
numero | Facoltativo. Modifica il numero massimo di risultati restituiti da la query, il valore predefinito è 5. |
transaction |
stringa | Facoltativo. Il valore recuperato da Firestore.runTransaction(). Contrassegna l'operazione da utilizzare all'interno di un transazione. |
Esempio
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 funzione Firestore.runTransaction
consente all'utente di eseguire
in lettura e scrittura da Firestore. Se una scrittura simultanea o un'altra transazione
un conflitto, la transazione verrà ritentata fino a due volte. In caso di errore
dopo tre tentativi totali, l'API rifiuta con un errore. Questa API restituisce
una promessa che si risolve in un array di ID documento, per ogni operazione di scrittura,
se la transazione ha esito positivo e, in caso contrario, verrà rifiutata con l'errore.
Sintassi
Firestore.runTransaction(callback[, options]);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
callback |
funzione | Un callback che viene invocato con un ID transazione stringa. La l'ID transazione può essere passato in chiamate API di lettura/scrittura/query. Questa funzione di callback deve restituire una promessa. La richiamata può essere eseguita fino a tre volte prima di non riuscire. |
options |
oggetto | Opzioni di richiesta facoltative. L'unica opzione supportata è projectId. Le chiavi di opzione sconosciute vengono ignorate. (Vedi Opzioni di seguito. |
Parametro | Tipo | Descrizione |
---|---|---|
projectId |
stringa | Facoltativo. ID progetto Google Cloud Platform. Se omesso, il valore
projectId recuperato dalla variabile di ambiente
GOOGLE_CLOUD_PROJECT a condizione che
access_firestore
l'impostazione di autorizzazione per l'ID progetto sia impostata su * oppure
GOOGLE_CLOUD_PROJECT . Se il contenitore del server è in esecuzione
Google Cloud, il valore GOOGLE_CLOUD_PROJECT sarà già impostato su
dell'ID del progetto Google Cloud. |
Esempio
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);
Gli errori sono disponibili in ogni funzione Firestore verranno rifiutati con un oggetto
contenente una chiave reason
:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
I motivi dell'errore possono contenere, a titolo esemplificativo, Errore API REST Firestore Codici
Autorizzazioni associate
JSON
Restituisce un oggetto che fornisce funzioni JSON.
La funzione parse()
analizza una stringa JSON per creare il valore o l'oggetto
descritto dalla stringa. Se il valore non può essere analizzato (ad es. se il formato JSON non è valido),
la funzione restituirà undefined
. Se il valore di input non è una stringa, il valore
verrà forzato a formare una stringa.
La funzione stringify()
converte l'input in una stringa JSON. Se il valore
non può essere analizzato (ad es. l'oggetto ha un ciclo), il metodo restituisce
undefined
.
Esempio
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'});
Sintassi
JSON.parse(stringInput);
JSON.stringify(value);
Autorizzazioni associate
Nessuno.
Math
Un oggetto che fornisce funzioni Math
.
Sintassi
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);
Parametri
I parametri delle funzioni matematiche vengono convertiti in numeri.
Autorizzazioni associate
Nessuno.
Messages
Le seguenti API operano in sinergia per consentire il trasferimento di messaggi tra diverse le parti di un container.
addMessageListener
Aggiunge una funzione che rimane in ascolto di un messaggio di un determinato tipo. Quando un messaggio
di questo tipo viene inviato usando l'API sendMessage
(in genere tramite un tag),
il callback verrà eseguito in modalità sincrona. Il callback viene eseguito con due parametri:
messageType:string
message:Object
Se il callback viene aggiunto in un client, il callback riceverà messaggi su
tutti gli eventi creati dal cliente. Se il callback deve ricevere messaggi
da un solo evento specifico, quindi associa questa API all'evento utilizzando bindToEvent
nella funzione onStart
dell'API runContainer
. Guarda l'esempio.
Sintassi
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
messageType |
stringa | Il tipo di messaggio da ascoltare. Se il valore non è una stringa, verrà forzata in una stringa. |
callback |
funzione | Il callback da eseguire quando un messaggio del tipo di messaggio applicabile è inviate. Se il callback non è una funzione, l'API non farà nulla. |
Esempio
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.
});
}
});
});
Autorizzazioni associate
Richiede l'autorizzazione use_message
. L'autorizzazione deve essere configurata in modo da consentire
almeno:
- Un tipo di messaggio con
Usage
dilisten
olisten_and_send
.
hasMessageListener
Restituisce true se è stato aggiunto un listener di messaggi per il tipo di messaggio specificato. Restituisce false negli altri casi.
Sintassi
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
Autorizzazioni associate
Nessuno.
sendMessage
Invia un messaggio del tipo specificato a un listener registrato. Si può usare per inviare i messaggi da un tag al client che ha eseguito il container.
Sintassi
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
messageType |
stringa | Il tipo di messaggio da inviare. Se il valore non è una stringa, verrà forzato in stringa. |
message |
oggetto | Il messaggio da inviare. Se il messaggio non è un oggetto, l'API non farà nulla. |
Autorizzazioni associate
Richiede l'autorizzazione use_message
. L'autorizzazione deve essere configurata in modo da consentire
almeno:
- Un tipo di messaggio con
Usage
dilisten_and_send
osend
.
Object
Restituisce un oggetto che fornisce metodi Object
.
Il metodo keys()
fornisce alla libreria standard Object.keys()
comportamento degli utenti. Restituisce un array della proprietà enumerabile di un determinato oggetto
nello stesso ordine di un loop for...in...
. Se il valore di input è
non è un oggetto, verrà forzato a trasformarlo in un oggetto.
Il metodo values()
fornisce alla libreria standard Object.values()
comportamento degli utenti. Restituisce un array dei valori delle proprietà enumerabili di un determinato oggetto
nello stesso ordine di un loop for...in...
. Se il valore di input non è un
verrà forzato a trasformarlo in un oggetto.
Il metodo entries()
fornisce alla libreria standard Object.entries()
comportamento degli utenti. Restituisce un array della proprietà enumerabile di un determinato oggetto
[key, value]
coppie nello stesso ordine di un ciclo for...in...
. Se
valore di input non è un oggetto, verrà forzato a trasformarlo in un oggetto.
Il metodo freeze()
fornisce alla libreria standard Object.freeze()
comportamento degli utenti. Un oggetto bloccato non può più essere modificato. il blocco di un oggetto impedisce
l'aggiunta di nuove proprietà, la rimozione di proprietà esistenti,
e i valori delle proprietà esistenti. freeze()
restituisce il valore
lo stesso oggetto che è stato passato. Un argomento primitivo o nullo verrà trattato come
se fosse un oggetto bloccato, e verrà restituito.
Il metodo delete()
fornisce l'operatore di eliminazione della libreria standard
comportamento degli utenti. La chiave specificata viene rimossa dall'oggetto, a meno che quest'ultimo non venga bloccato.
Come l'operatore di eliminazione della libreria standard, restituisce true
se il primo input
(objectInput
) è un oggetto che non viene bloccato anche se il secondo input
(keyToDelete
) specifica una chiave che non esiste. Restituisce false
in
tutti gli altri casi. Tuttavia, è diverso dall'operatore di eliminazione della libreria standard
nei seguenti modi:
keyToDelete
non può essere una stringa delimitata da punti che specifica una chiave nidificata.- Non è possibile utilizzare
delete()
per rimuovere elementi da un array. - Non è possibile utilizzare
delete()
per rimuovere proprietà dall'ambito globale.
Sintassi
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parametri
Object.keys
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | qualsiasi | L'oggetto di cui enumerare le chiavi. Se l'input non è un oggetto, verrà forzato a un oggetto. |
Object.values
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | qualsiasi | L'oggetto di cui enumerare i valori. Se l'input non è un oggetto, viene forzata a un oggetto. |
Object.entries
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | qualsiasi | L'oggetto di cui enumerare le coppie chiave/valore. Se l'input non è un verrà forzato a trasformarlo in un oggetto. |
Object.freeze
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | qualsiasi | L'oggetto da bloccare. Se l'input non è un oggetto, verrà trattato come un oggetto bloccato. |
Object.delete
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | qualsiasi | L'oggetto di cui eliminare la chiave. |
keyToDelete | stringa | La chiave di primo livello da eliminare. |
Esempio
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
Restituisce un oggetto che fornisce metodi per interagire con le promesse.
Le promesse sono funzionalmente equivalenti alle promesse JavaScript. Ogni istanza ha tre metodi che restituiscono una promessa e che consentono ulteriori azioni quando una promessa liquidazione:
.then()
- Gestisce sia le richieste risolte che quelle rifiutate. Sono necessari due i callback come parametri: uno per il caso di successo e uno per l'errore. per verificare se è così..catch()
: gestisce solo le richieste rifiutate. Prende una richiamata ..finally()
: offre un modo per eseguire il codice indipendentemente dal fatto che la promessa sia stata risolto o rifiutato. Prende un callback come parametro che viene invocato con senza argomento.
Una variabile che restituisce una promessa equivale al valore risolto della promessa oppure
false
se la promessa viene rifiutata.
Esempio
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
Restituisce una promessa che:
- si risolve quando tutti gli input sono stati risolti oppure
- rifiuta quando uno qualsiasi degli input rifiuta
Sintassi
Promise.all(inputs);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
inputs |
Array | Un array di valori o promesse. Se un input non è una promessa, l'input viene trasmesso come se fosse il valore risolto di una promessa. Lancia se l'input non è un array. |
Esempio
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: ''}]
});
Autorizzazioni associate
Nessuno.
Promise.create
Crea una promessa funzionalmente equivalente a una promessa JavaScript.
Sintassi
Promise.create(resolver);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
resolver |
funzione | Una funzione richiamata con due funzioni: risoluzione e rifiuto. La promessa restituita verrà risolta o rifiutata quando il corrispondente viene richiamato. Genera un errore se il resolver non è una funzione. |
Esempio
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
Autorizzazioni associate
Nessuno.
Testa le API
Queste API funzionano con i test JavaScript con sandbox per creare test per
modelli in Google Tag Manager. Queste API di test non hanno bisogno di un require()
l'Informativa. [Scopri di più sui test con modelli personalizzati].
assertApi
Restituisce un oggetto matcher che può essere utilizzato per fare rapidamente asserzioni relative all'oggetto un'API specifica.
Sintassi
assertApi(apiName)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
apiName |
stringa | Il nome dell'API da verificare. la stessa stringa passata
require()
|
Corrispondenza
Subject.wasCalled()
Subject.wasNotCalled()
Subject.wasCalledWith(...expected)
Subject.wasNotCalledWith(...expected)
Esempi
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
L'API assertThat
è modellata in base alla libreria [Truth] di Google. Restituisce un valore
che può essere utilizzato per fare fluenti asserzioni sul valore di un soggetto. Un
l'errore dell'asserzione interromperà immediatamente il test e lo contrassegna come non riuscito. Tuttavia,
l'esito negativo di un test non influirà sugli altri scenari di test.
Sintassi
assertThat(actual, opt_message)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
actual |
qualsiasi | Il valore da utilizzare nei controlli fluenti. |
opt_message |
stringa | Messaggio facoltativo da stampare se l'asserzione non riesce. |
Corrispondenza
Corrispondenza | Descrizione |
---|---|
isUndefined() |
Dichiara che il soggetto è undefined . |
isDefined() |
Dichiara che il soggetto non è undefined . |
isNull() |
Dichiara che il soggetto è null . |
isNotNull() |
Dichiara che il soggetto non è null . |
isFalse() |
Dichiara che il soggetto è false . |
isTrue() |
Dichiara che il soggetto è true . |
isFalsy() |
Dichiara che il soggetto è falso. I valori falsi sono
undefined , null , false
NaN , 0 e "" (stringa vuota). |
isTruthy() |
Dichiara che l'oggetto è veritiero. I valori falsi sono
undefined , null , false
NaN , 0 e "" (stringa vuota). |
isNaN() |
Dichiara che il soggetto è il valore NaN. |
isNotNaN() |
Dichiara che il soggetto è qualsiasi valore diverso da NaN. |
isInfinity() |
Dichiara che il soggetto è un infinito positivo o negativo. |
isNotInfinity() |
Dichiara che il soggetto è qualsiasi valore diverso da positivo o negativo Infinito. |
isEqualTo(expected) |
Dichiara che il soggetto è uguale al valore specificato. Questo è un valore un confronto, non un confronto con i riferimenti. Il contenuto di oggetti e array vengono confrontate in modo ricorsivo. |
isNotEqualTo(expected) |
Dichiara che il soggetto non è uguale al valore specificato. Si tratta di un un confronto tra valori e non un confronto tra riferimenti. I contenuti di oggetti vengono confrontati in modo ricorsivo. |
isAnyOf(...expected) |
Dichiara che il soggetto è uguale a uno dei valori specificati. Si tratta di un un confronto tra valori e non un confronto tra riferimenti. I contenuti di oggetti vengono confrontati in modo ricorsivo. |
isNoneOf(...expected) |
Dichiara che il soggetto non è uguale a nessuno dei valori specificati. Questo un confronto tra valori, non riferimenti. I contenuti degli oggetti e gli array vengono confrontati in modo ricorsivo. |
isStrictlyEqualTo(expected) |
Dichiara che il soggetto è strettamente uguale (=== ) al
un determinato valore. |
isNotStrictlyEqualTo(expected) |
Dichiara che il soggetto non è esattamente uguale (!== ) a
il valore specificato. |
isGreaterThan(expected) |
Dichiara che il soggetto è superiore a (> ) il valore specificato
in un confronto ordinato. |
isGreaterThanOrEqualTo(expected) |
Dichiara che il soggetto è maggiore o uguale a
(>= ) il valore specificato in un confronto ordinato. |
isLessThan(expected) |
Dichiara che il soggetto è inferiore al valore specificato (< )
in un confronto ordinato. |
isLessThanOrEqualTo(expected) |
Dichiara che il soggetto è minore o uguale a (<= )
il valore specificato in un confronto ordinato. |
contains(...expected) |
Dichiara che il soggetto è un array o una stringa che contiene tutti i valori specificati in qualsiasi ordine. Questo è un confronto di valori, non un riferimento a confronto. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
doesNotContain(...expected) |
Dichiara che il soggetto è un array o una stringa che non contiene nessuno di i valori specificati. Si tratta di un confronto di valori, non di un riferimento. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
containsExactly(...expected) |
Dichiara che il soggetto è un array che contiene tutti i i valori in qualsiasi ordine e nessun altro valore. Si tratta di un confronto di valori, non di confronto tra i riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
doesNotContainExactly(...expected) |
Dichiara che il soggetto è un array contenente un set diverso di valori dai valori specificati in qualsiasi ordine. Questo è un confronto di valori, e non un confronto con i riferimenti. I contenuti di oggetti e array vengono in modo ricorsivo. |
hasLength(expected) |
Dichiara che il soggetto è un array o una stringa della lunghezza specificata. L'asserzione ha sempre esito negativo se il valore non è una matrice o una stringa. |
isEmpty() |
Dichiara che il soggetto è un array o una stringa vuota (length = 0). L'asserzione ha sempre esito negativo se il valore non è un array o stringa. |
isNotEmpty() |
Dichiara che il soggetto è un array o una stringa non vuota (lunghezza > 0). L'asserzione ha sempre esito negativo se il valore non è un array o una stringa. |
isArray() |
Dichiara che il tipo del soggetto è un array. |
isBoolean() |
Dichiara che il tipo del soggetto è un valore booleano. |
isFunction() |
Dichiara che il tipo del soggetto è una funzione. |
isNumber() |
Dichiara che il tipo del soggetto è un numero. |
isObject() |
Dichiara che il tipo del soggetto è un oggetto. |
isString() |
Dichiara che il tipo del soggetto è una stringa. |
Esempi
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
Non supera immediatamente il test corrente e stampa il messaggio specificato, se fornito.
Sintassi
fail(opt_message);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
opt_message |
stringa | Testo facoltativo del messaggio di errore. |
Esempio
fail('This test has failed.');
mock
L'API mock
ti consente di ignorare il comportamento delle API con sandbox. Simulazione
L'API è sicura da usare nel codice modello, ma è operativa solo in modalità di test.
Le simulazioni vengono reimpostate prima dell'esecuzione di ogni test.
Sintassi
mock(apiName, returnValue);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
apiName |
stringa | Il nome dell'API da simulare; la stessa stringa passata
require() |
returnValue |
qualsiasi | Il valore da restituire per l'API o una funzione chiamata al posto del
tramite Google Cloud CLI
o tramite l'API Compute Engine. Se returnValue è una funzione, questa funzione viene chiamata
dell'API con sandbox se returnValue è diverso
di una funzione, tale valore viene restituito al posto del
tramite Google Cloud CLI
o tramite l'API Compute Engine. |
Esempi
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
L'API mockObject
ti consente di ignorare il comportamento delle API con sandbox che
restituiscono un oggetto. L'API è sicura da usare nel codice modello, ma è operativa
solo in modalità di test. Le simulazioni vengono reimpostate prima dell'esecuzione di ogni test.
Sintassi
mockObject(apiName, objectMock);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
apiName |
stringa | Il nome dell'API da simulare; la stessa stringa passata
require() |
objectMock |
oggetto | Il valore da restituire per l'API o una funzione chiamata al posto del tramite Google Cloud CLI o tramite l'API Compute Engine. Deve essere un oggetto. |
Esempi
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
Esegue il codice per il modello, ovvero il contenuto della scheda Codice nella attuale con un determinato oggetto dati di input.
Sintassi
runCode(data)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
data |
oggetto | Oggetto dati da utilizzare nel test. |
Valore restituito
Restituisce il valore di una variabile per i modelli di variabili; restituisce undefined
per
per tutti gli altri tipi di modelli.
Esempio
runCode({field1: 123, field2: 'value'});