API di base
Queste API funzionano con JavaScript con sandbox per creare modelli personalizzati in Google
Tag Manager. Ogni API viene aggiunta con un'istruzione require()
, ad esempio:
const myAPI = require('myAPI');
addConsentListener
Registra una funzione listener da eseguire quando cambia lo stato del tipo di consenso specificato.
Il listener specificato verrà richiamato ogni volta che lo stato del tipo di consenso specificato cambia da negato a concesso o da concesso a negato. Un tipo di consenso senza stato viene considerato concesso, quindi il listener non verrà chiamato se un tipo di consenso non impostato viene aggiornato a concesso. Le funzioni di listener saranno responsabili di garantire che il codice venga eseguito il numero appropriato di volte.
Esempio:
const isConsentGranted = require('isConsentGranted');
const addConsentListener = require('addConsentListener');
if (!isConsentGranted('ad_storage')) {
let wasCalled = false;
addConsentListener('ad_storage', (consentType, granted) => {
if (wasCalled) return;
wasCalled = true;
const cookies = getMyCookies();
sendFullPixel(cookies);
});
}
Sintassi
addConsentListener(consentType, listener)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
consentType |
stringa | Il tipo di consenso per cui rilevare le modifiche dello stato. |
listener |
function | La funzione da eseguire quando lo stato del tipo di consenso specificato cambia. |
Quando viene richiamato un listener, gli vengono passati il tipo di consenso che viene modificato e il nuovo valore di quel tipo di consenso:
Parametro | Tipo | Descrizione |
---|---|---|
consentType |
stringa | Il tipo di consenso che viene modificato. |
granted |
boolean | Un valore booleano che è true se il tipo di consenso specificato viene modificato in "concesso". |
Autorizzazioni associate
Autorizzazione access_consent
con accesso in lettura per il tipo di consenso.
addEventCallback
L'API addEventCallback
consente di registrare una funzione di callback che verrà richiamata al termine di un evento. Il callback verrà richiamato quando tutti i
tag per l'evento sono stati eseguiti o se viene raggiunto un timeout dell'evento nella pagina.
Alla funzione di callback vengono passati due valori: l'ID del contenitore che richiama la funzione e un oggetto che contiene informazioni sull'evento.
Sintassi
addEventCallback(callback)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
callback |
function | 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 metadati aggiuntivi del tag configurati sul tag. |
Esempio
addEventCallback(function(ctid, eventData) {
logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});
Autorizzazioni associate
aliasInWindow
L'API aliasInWindow
ti consente di creare un alias (ad es. window.foo =
window.bar
), che aiuta a supportare determinati tag che richiedono l'utilizzo di alias. Assegna
il valore nell'oggetto window
trovato in fromPath
alla chiave nell'oggetto
window
in toPath
. Restituisce true
in caso di esito positivo, false
in caso contrario.
Sintassi
aliasInWindow(toPath, fromPath)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
toPath |
stringa | Un percorso separato da punti nell'oggetto window in cui deve essere copiato un valore. Tutti i componenti nel percorso fino all'ultimo componente
devono già esistere nell'oggetto window . |
fromPath |
stringa | Un percorso separato da punti in window al valore da copiare. Se
il valore non esiste, l'operazione non andrà a buon fine. |
Esempio
aliasInWindow('foo.bar', 'baz.qux')
Autorizzazioni associate
access_globals
è obbligatorio sia per toPath
sia per fromPath
; toPath
richiede l'accesso in scrittura, fromPath
richiede l'accesso in lettura.
callInWindow
Consente di chiamare funzioni da un percorso diverso dall'oggetto window
, in modo controllato dai criteri. Chiama la funzione nel percorso specificato in window
con gli argomenti specificati e restituisce il valore. Se il tipo restituito non può essere mappato direttamente a un tipo supportato in JavaScript in sandbox, verrà restituito undefined
. Gli otto tipi supportati in JavaScript in sandbox sono null
, undefined
, boolean
, number
, string
, Array
, Object
e function
. Se il percorso
specificato non esiste o non fa riferimento a una funzione, verrà restituito undefined
.
Sintassi
callInWindow(pathToFunction, argument [, argument2,... argumentN])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
pathToFunction |
stringa | Un percorso separato da un punto alla funzione in window da
chiamare. |
args |
* | Argomenti da passare alla funzione. |
Autorizzazioni associate
access_globals
con l'autorizzazione execute
abilitata.
callLater
Pianifica una chiamata a una funzione in modo asincrono. La funzione verrà
chiamata dopo la restituzione del codice corrente. È equivalente a
setTimeout(<function>, 0)
.
Sintassi
callLater(function)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
function |
function | La funzione da chiamare. |
copyFromDataLayer
Restituisce il valore attualmente assegnato alla chiave specificata nel livello dati: il valore trovato nella chiave specificata se è un tipo primitivo, una funzione o un valore letterale oggetto oppure undefined
in caso contrario.
Sintassi
copyFromDataLayer(key[, dataLayerVersion])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
key |
stringa | La chiave nel formato "a.b.c". |
dataLayerVersion |
number | La versione del livello dati facoltativa. Il valore predefinito è 2. È fortemente sconsigliato utilizzare il valore 1. |
Autorizzazioni associate
copyFromWindow
Copia una variabile dall'oggetto window
. Se il valore in window
non può essere
mappato direttamente a un tipo supportato in JavaScript in sandbox, verrà restituito undefined
. Gli otto tipi supportati in JavaScript in modalità sandbox sono null
,
undefined
, boolean
, number
, string
, Array
, Object
e function
.
Restituisce il valore recuperato (e forzato).
Sintassi
copyFromWindow(key)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
key |
stringa | La chiave in window per copiare il valore. |
Autorizzazioni associate
createArgumentsQueue
Crea una coda popolata con oggetti argomento, a supporto delle soluzioni di tag che lo richiedono.
Crea una funzione nell'ambito globale (ovvero window
) utilizzando l'argomento fnKey
(stessa semantica di createQueue
). Dopo aver creato la funzione, questa API
crea un array in window
(se non esiste già) utilizzando l'argomento arrayKey
.
Quando viene chiamata la funzione creata in fnKey
, il relativo oggetto arguments
viene inserito nell'array creato in arrayKey
. Il valore restituito dall'API è la
funzione creata in fnKey
.
Questa funzione richiede l'impostazione di lettura e scrittura per fnKey
e arrayKey
nell'autorizzazione access_globals
.
Esempio:
const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});
Sintassi
createArgumentsQueue(fnKey, arrayKey)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
fnKey |
stringa | Il percorso in window in cui è impostata la funzione, se non esiste già. Questo argomento supporta la notazione con punti standard. Se il percorso della chiave non esiste, viene generata un'eccezione. ovvero, se
fnKey è 'one.two' , verrà generata un'eccezione. |
arrayKey |
stringa | Il percorso in window in cui è impostato l'array, se non esiste
già. Questo argomento supporta la notazione con punti standard. Se il percorso della chiave non esiste, viene generata un'eccezione. ovvero, se
arrayKey è 'one.two' e non esiste
un oggetto globale denominato 'one' , verrà generata
un'eccezione. |
Autorizzazioni associate
createQueue
Crea un array in window
(se non esiste già) e restituisce una
funzione che inserisce i valori nell'array.
Questa funzione richiede l'impostazione di lettura e scrittura per arrayKey
nell'autorizzazione
access_globals
.
Esempio:
const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});
Sintassi
createQueue(arrayKey)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
arrayKey |
stringa | La chiave in window in cui è impostato l'array, se non
esiste già. Questo argomento supporta la notazione con punti standard. Se il percorso della chiave non esiste, viene generata un'eccezione. Ad esempio, se
arrayKey è 'one.two' e non esiste
un oggetto globale denominato 'one' , verrà generata
un'eccezione. |
Autorizzazioni associate
decodeUri
Decodifica tutti i caratteri codificati nell'URI fornito. Restituisce una stringa che
rappresenta l'URI decodificato. Restituisce undefined
se viene fornito un input non valido.
Esempio:
const decode = require('decodeUri');
const decodedUrl = decode(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 una stringa che rappresenta il componente URI decodificato. Restituisce undefined
quando
viene fornito un input non valido.
Esempio:
const decode = require('decodeUriComponent');
const decodedUrl = decode(data.encodedUrl);
if (decodedUrl) {
// ...
}
Sintassi
decodeUriComponent(encoded_uri_component)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
encoded_uri_component |
stringa | Un componente URI codificato da
encodeUriComponent()
o in altro modo. |
Autorizzazioni associate
Nessuno.
encodeUri
Restituisce un URI (Uniform Resource Identifier) codificato eseguendo l'escape dei caratteri speciali. Restituisce una stringa che rappresenta la stringa fornita codificata come
URI. Restituisce undefined
se viene fornito un input non valido (un surrogato solitario).
Esempio:
sendPixel('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 eseguendo l'escape dei caratteri speciali. Restituisce una stringa che rappresenta la stringa fornita codificata come
URI. Restituisce undefined
se viene fornito un input non valido (un surrogato solitario).
Esempio:
sendPixel('https://www.example.com/?' + encodeUriComponent(queryInput));
Sintassi
encodeUriComponent(str)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
str |
stringa | Un componente di un URI. |
Autorizzazioni associate
Nessuno.
fromBase64
L'API fromBase64
consente di decodificare le stringhe dalla relativa rappresentazione base64. Restituisce undefined
quando viene fornito un input non valido.
Sintassi
fromBase64(base64EncodedString)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
base64EncodedString |
stringa | Stringa con codifica Base64. |
Esempio
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
Autorizzazioni associate
Nessuno
generateRandom
Restituisce un numero (intero) casuale all'interno dell'intervallo specificato.
Sintassi
generateRandom(min, max)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
min |
number | Valore potenziale minimo dell'intero restituito. |
max |
number | Valore potenziale massimo dell'intero restituito. |
Autorizzazioni associate
Nessuno.
getContainerVersion
Restituisce un oggetto contenente i dati sul contenitore corrente. L'oggetto restituito contiene i seguenti campi:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Esempio
const getContainerVersion = require('getContainerVersion');
const sendPixel = require('sendPixel');
if (query('read_container_data')) {
const cv = getContainerVersion();
const pixelUrl = 'https://pixel.com/' +
'?version=' + cv.version +
'&envName=' + cv.environmentName +
'&ctid=' + cv.containerId +
'&debugMode=' + cv.debugMode +
'&previewMode=' + cv.previewMode;
if (query('send_pixel', pixelUrl)) {
sendPixel(pixelUrl);
}
}
Sintassi
getContainerVersion();
Autorizzazioni associate
getCookieValues
Restituisce i valori di tutti i cookie con il nome specificato.
Sintassi
getCookieValues(name[, decode])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Nome del cookie. |
decode |
boolean | Controlla se i valori dei cookie devono essere decodificati con
decodeURIComponent() di JavaScript. Il valore predefinito è
true . |
Autorizzazioni associate
getQueryParameters
Restituisce il primo o tutti i parametri del queryKey
dell'URL corrente.
Restituisce il primo valore di queryKey
o un array di valori di
queryKey
.
Sintassi
getQueryParameters(queryKey[, retrieveAll])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
queryKey |
stringa | La chiave da leggere dai parametri di query. |
retrieveAll |
boolean | Indica se recuperare tutti i valori. |
Ad esempio, se l'URL corrente è
https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo
, allora:
getQueryParameters('var') == 'foo'
getQueryParameters('var', false) == 'foo'
getQueryParameters('var', null) == 'foo'
getQueryParameters('var', true) == ['foo', 'foo2', 'foo']
Autorizzazioni associate
get_url
deve consentire il componente query
e deve specificare queryKey
nelle chiavi di query consentite (o consentire qualsiasi chiave di query).
getReferrerQueryParameters
L'API getReferrerQueryParameters
funziona allo stesso modo di getQueryParameters
,
ma agisce sul referrer anziché sull'URL corrente. Restituisce il primo o
tutti i parametri per il queryKey
del referrer specificato. Restituisce il primo valore di queryKey
o un array di valori di queryKey
.
Sintassi
getReferrerQueryParameters(queryKey[, retrieveAll])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
queryKey |
stringa | La chiave da leggere dai parametri di query. |
retrieveAll |
boolean | Indica se recuperare tutti i valori. |
Ad esempio, se l'URL referrer è
https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo
, allora:
getReferrerQueryParameters('var') == 'foo'
getReferrerQueryParameters('var', false) == 'foo'
getReferrerQueryParameters('var', null) == 'foo'
getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']
Autorizzazioni associate
get_referrer
deve consentire il componente query
e deve specificare
queryKey
nelle chiavi di query consentite (o consentire qualsiasi chiave di query).
getReferrerUrl
Dato un tipo di componente, l'API legge l'oggetto documento per il referrer e restituisce una stringa che rappresenta una parte del referrer. Se non viene specificato alcun componente, viene restituito l'URL referrer completo.
Sintassi
getReferrerUrl([component])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
component |
stringa | Il componente da restituire dall'URL. Può essere uno dei seguenti:
protocol , host , port ,
path , query , extension . Se
component è undefined , null o
non corrisponde a uno di questi componenti, viene restituito l'intero URL. |
Autorizzazioni associate
get_referrer
deve consentire il componente query
e deve specificare
queryKey
nelle chiavi di query consentite (o consentire qualsiasi chiave di query).
getTimestamp
Deprecato. Preferisci getTimestampMillis.
Restituisce un numero che rappresenta l'ora corrente in millisecondi a partire dall'epoca Unix, come restituito da Date.now()
.
Sintassi
getTimestamp();
Autorizzazioni associate
Nessuno.
getTimestampMillis
Restituisce un numero che rappresenta l'ora corrente in millisecondi a partire dall'epoca Unix, come restituito da Date.now()
.
Sintassi
getTimestampMillis();
Autorizzazioni associate
Nessuno.
getType
Restituisce una stringa che descrive il tipo del valore specificato. A differenza di typeof
,
getType
distingue tra array
e object
.
Sintassi
getType(data.someField)
Note
La tabella seguente elenca le stringhe restituite per ogni valore di input.
Valore input | Risultato |
---|---|
undefined |
'undefined' |
null |
'null' |
true |
'boolean' |
12 |
'number' |
'string' |
'string' |
{ a: 3 } |
'object' |
[ 1, 3 ] |
'array' |
(x) => x + 1 |
'function' |
Autorizzazioni associate
Nessuno.
getUrl
Restituisce una stringa che rappresenta l'intero URL corrente o una sua parte, dato un tipo di componente e alcuni parametri di configurazione.
Sintassi
getUrl(component)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
component |
stringa | Il componente da restituire dall'URL. Deve essere uno dei seguenti valori:
protocol , host , port ,
path , query , extension ,
fragment . Se il componente è undefined ,
null o non corrisponde a uno di questi componenti, verrà restituito l'intero valore href . |
Autorizzazioni associate
gtagSet
Inserisce un comando gtag set nel data layer, da elaborare il prima possibile dopo che l'evento corrente e i tag che ha attivato hanno terminato l'elaborazione (o è stato raggiunto il timeout di elaborazione dei tag). L'aggiornamento viene elaborato in questo contenitore prima di qualsiasi elemento in coda nella coda del data layer.
Ad esempio, se viene chiamato da un tag attivato in Inizializzazione del consenso, l'aggiornamento verrà applicato prima dell'elaborazione dell'evento di inizializzazione. Ad esempio,
ads_data_redaction
impostato su true
o false
o url_passthrough
impostato su true
o false
.
Esempi:
const gtagSet = require('gtagSet');
gtagSet({
'ads_data_redaction': true,
'url_passthrough': true,
});
Sintassi
gtagSet(object)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
Object |
oggetto | Un oggetto che aggiorna lo stato globale delle proprietà contenute. |
Autorizzazioni associate
write_data_layer
verifica l'autorizzazione di scrittura per dataLayer
per tutte
le chiavi specificate. Se l'input di gtagSet
è un oggetto semplice, l'API verificherà
l'autorizzazione di scrittura per tutte le chiavi appiattite all'interno di quell'oggetto, ad esempio per
gtagSet({foo: {bar: 'baz'}})
, l'API verificherà l'autorizzazione di scrittura
per foo.bar
.
Se l'input di gtagSet
è una chiave e un valore di oggetto non semplice, l'API
controlla l'autorizzazione di scrittura per quella chiave, ad esempio per gtagSet('abc', true)
,
l'API controlla l'autorizzazione di scrittura per 'abc'
.
Tieni presente che se è presente un ciclo nell'oggetto di input, verranno controllate solo le chiavi prima di raggiungere lo stesso oggetto.
injectHiddenIframe
Aggiunge un iframe invisibile alla pagina.
I callback vengono forniti come istanze di funzioni e sono inclusi in funzioni JavaScript che li chiamano.
Sintassi
injectHiddenIframe(url, onSuccess)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | L'URL da utilizzare come valore dell'attributo src
dell'iframe. |
onSuccess |
function | Viene chiamato quando il frame viene caricato correttamente. |
Autorizzazioni associate
injectScript
Aggiunge un tag script alla pagina per caricare l'URL specificato in modo asincrono. I callback vengono forniti come istanze di funzione e sono racchiusi in funzioni JavaScript che li chiamano.
Sintassi
injectScript(url, onSuccess, onFailure[, cacheToken])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | L'indirizzo dello script da inserire. |
onSuccess |
function | Chiamato quando lo script viene caricato correttamente. |
onFailure |
function | Chiamato quando il caricamento dello script non riesce. |
cacheToken |
stringa | Stringa facoltativa utilizzata per indicare che l'URL specificato deve essere memorizzato nella cache. Se
viene specificato questo valore, verrà creato un solo elemento script per
richiedere JavaScript. Qualsiasi tentativo di caricamento aggiuntivo comporterà
l'accodamento dei metodi onSuccess e onFailure
fino al caricamento dello script. |
Autorizzazioni associate
isConsentGranted
Restituisce true se il tipo di consenso specificato è concesso.
Il consenso per un determinato tipo di consenso viene considerato concesso se il tipo di consenso è stato impostato su "concesso" o non è stato impostato. Se il tipo di consenso è impostato su un altro valore, verrà considerato non concesso.
L'interfaccia utente di Tag Manager per le impostazioni dei tag offrirà un'opzione per l'attivazione
sempre. Se un tag con l'opzione Attiva sempre attivata utilizza questa API, il consenso viene considerato
concesso e verrà restituito true
, indipendentemente dallo stato effettivo del consenso.
Esempio:
const isConsentGranted = require('isConsentGranted');
if (isConsentGranted('ad_storage')) {
sendFullPixel();
} else {
sendPixelWithoutCookies();
}
Sintassi
isConsentGranted(consentType)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
consentType |
stringa | Il tipo di consenso di cui controllare lo stato. |
Autorizzazioni associate
Autorizzazione access_consent
con accesso in lettura per il tipo di consenso.
JSON
Restituisce un oggetto che fornisce funzioni JSON.
La funzione parse()
analizza una stringa JSON per costruire il valore o l'oggetto
descritto dalla stringa. Se il valore non può essere analizzato (ad es. JSON non valido),
la funzione restituirà undefined
. Se il valore di input non è una stringa, l'input verrà convertito in 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 restituirà
undefined
.
Sintassi
JSON.parse(stringInput)
JSON.stringify(value);
Parametri
JSON.parse
Parametro | Tipo | Descrizione |
---|---|---|
stringInput | any | Il valore da convertire. Se il valore non è una stringa, l'input verrà convertito in una stringa. |
JSON.stringify
Parametro | Tipo | Descrizione |
---|---|---|
valore | any | Il valore da convertire. |
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'});
localStorage
Restituisce un oggetto con metodi per accedere allo spazio di archiviazione locale.
Sintassi
const localStorage = require('localStorage');
// Requires read access for the key. Returns null if the key does not exist.
localStorage.getItem(key);
// Requires write access for the key. Returns true if successful.
localStorage.setItem(key, value);
// Requires write access for the key.
localStorage.removeItem(key);
Autorizzazioni associate
Esempio
const localStorage = require('localStorage');
if (localStorage) {
const value = localStorage.getItem('my_key');
if (value) {
const success = localStorage.setItem('my_key', 'new_value');
if (success) {
localStorage.removeItem('my_key');
}
}
}
logToConsole
Registra gli argomenti nella console del browser.
Sintassi
logToConsole(obj1 [, obj2,... objN])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
obj1 [, obj2,... objN] |
any | Argomenti |
Autorizzazioni associate
makeInteger
Converte il valore specificato in un numero (intero).
Sintassi
makeInteger(value)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
any | Il valore da convertire. |
Autorizzazioni associate
Nessuno.
makeNumber
Converte il valore specificato in un numero.
Sintassi
makeNumber(value)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
any | Il valore da convertire. |
Autorizzazioni associate
Nessuno.
makeString
Restituisce il valore specificato come stringa.
Sintassi
makeString(value)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
value |
any | Il valore da convertire. |
Autorizzazioni associate
Nessuno.
makeTableMap
Converte un oggetto tabella semplice con due colonne in un Map
. Viene utilizzato per
modificare un campo del modello SIMPLE_TABLE
con due colonne in un formato più gestibile.
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 valore Map
convertito se sono state aggiunte coppie chiave-valore 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. Ogni nome di proprietà in un oggetto riga è il nome della colonna e il valore della proprietà è il valore della colonna nella riga. |
keyColumnName |
stringa | Nome della colonna i cui valori diventeranno chiavi nel file Map convertito. |
valueColumnName |
stringa | Nome della colonna i cui valori diventeranno valori nel
Map convertito. |
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.
Object
Restituisce un oggetto che fornisce metodi Object
.
Il metodo keys()
fornisce il comportamento della libreria standard Object.keys(). Restituisce un array di nomi di proprietà enumerabili di un determinato oggetto
nello stesso ordine di un ciclo for...in...
. Se il valore di input non è un oggetto, verrà forzato a un oggetto.
Il metodo values()
fornisce il comportamento della libreria standard Object.values(). Restituisce un array dei valori delle proprietà enumerabili di un determinato oggetto
nello stesso ordine di un ciclo for...in...
. Se il valore di input non è un oggetto, verrà forzato a un oggetto.
Il metodo entries()
fornisce il comportamento della libreria standard Object.entries(). Restituisce un array di coppie [key, value]
della proprietà enumerabile di un determinato oggetto nello stesso ordine di un ciclo for...in...
. Se il valore di input non è un oggetto, verrà forzato a un oggetto.
Il metodo freeze()
fornisce il comportamento di Object.freeze() della libreria standard. Un oggetto bloccato non può più essere modificato; il blocco di un oggetto impedisce
l'aggiunta di nuove proprietà, la rimozione di quelle esistenti
e la modifica dei valori delle proprietà esistenti. freeze()
restituisce lo stesso oggetto passato. Un argomento primitivo o nullo verrà trattato come
se fosse un oggetto bloccato e verrà restituito.
Il metodo delete()
fornisce il comportamento dell'operatore di eliminazione della libreria standard. Rimuove la chiave specificata dall'oggetto, a meno che l'oggetto non sia bloccato.
Come l'operatore di eliminazione della libreria standard, restituisce true
se il primo valore di input (objectInput
) è un oggetto non bloccato, anche se il secondo valore di input (keyToDelete
) specifica una chiave inesistente. In tutti gli altri casi, restituisce false
. Tuttavia, differisce dall'operatore di eliminazione della libreria standard
per i seguenti motivi:
keyToDelete
non può essere una stringa delimitata da punti che specifica una chiave nidificata.delete()
non può essere utilizzato per rimuovere elementi da un array.delete()
non può essere utilizzato 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 | any | L'oggetto di cui enumerare le chiavi. Se l'input non è un oggetto, verrà forzato a un oggetto. |
Object.values
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | any | L'oggetto di cui enumerare i valori. Se l'input non è un oggetto, verrà forzato a un oggetto. |
Object.entries
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | any | L'oggetto di cui enumerare le coppie chiave/valore. Se l'input non è un oggetto, verrà forzato a un oggetto. |
Object.freeze
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | any | L'oggetto da bloccare. Se l'input non è un oggetto, verrà trattato come un oggetto bloccato. |
Object.delete
Parametro | Tipo | Descrizione |
---|---|---|
objectInput | any | 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.
parseUrl
Restituisce un oggetto che contiene tutte le parti componenti di un determinato URL, simile
all'oggetto URL
.
Questa API restituirà undefined
per qualsiasi URL non valido. Per gli URL formattati correttamente, i campi non presenti nella stringa URL avranno un valore di 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.
queryPermission
Esegui query sulle autorizzazioni consentite e ristrette. Restituisce un valore booleano: true
se è stata concessa un'autorizzazione, false
altrimenti.
Sintassi
queryPermission(permission, functionArgs*)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
permission |
stringa | Nome dell'autorizzazione. |
functionArgs |
any | Gli argomenti della funzione variano in base all'autorizzazione di cui viene eseguita la query. Consulta la sezione Argomenti delle funzioni di seguito. |
Argomenti della funzione
sendPixel
, injectScript
, injectHiddenIframe
: il secondo parametro
deve essere una stringa URL.
writeGlobals
, readGlobals
: il secondo parametro deve essere la chiave
scritta o letta.
readUrl
: non sono necessari argomenti aggiuntivi per verificare se è possibile leggere l'intero URL. Per eseguire una query per verificare se un determinato componente può essere letto, passa il
nome del componente come secondo argomento:
if (queryPermission('readUrl','port')) {
// read the port
}
Per verificare se una chiave di query specifica è leggibile, passa la chiave di query come terzo parametro:
if (queryPermission('readUrl','query','key')) {
getUrlComponent(...);
}
Autorizzazioni associate
Nessuno.
readAnalyticsStorage
Recupera i dati archiviati per l'analisi e restituisce un oggetto con client_id
e sessions
.
client_id
: una stringa che rappresenta l'ID client utilizzato per Analytics.sessions
: un array di oggetti contenenti informazioni sulle sessioni attuali. Ogni oggetto include:measurement_id
: una stringa che rappresenta l'ID misurazione della destinazione Analytics.session_id
: una stringa che rappresenta il timestamp che identifica la sessione corrente.session_number
: un numero che rappresenta il conteggio delle sessioni che un utente ha avviato fino alla sessione corrente.
Sintassi
const readAnalyticsStorage = require('readAnalyticsStorage');
const cookieOptions = {
cookie_prefix: "xyz",
cookie_domain: "google.com",
cookie_path: "/",
};
readAnalyticsStorage(cookieOptions);
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
cookieOptions |
oggetto |
Opzioni facoltative per la lettura dei cookie con
cookie_prefix , cookie_domain o
cookie_path specifici.
|
Autorizzazioni associate
Esempio
const readAnalyticsStorage = require('readAnalyticsStorage');
const analyticsStorageData = readAnalyticsStorage();
sendOfflineEvent(analyticsStorageData.client_id, "tutorial_begin");
readCharacterSet
Restituisce il valore di document.characterSet
.
Sintassi
readCharacterSet()
Parametri
Nessuno.
Autorizzazioni associate
readTitle
Restituisce il valore di document.title
.
Sintassi
readTitle()
Parametri
Nessuno.
Autorizzazioni associate
require
Importa una funzione integrata in base al nome. Restituisce una funzione o un oggetto che può essere chiamato dal tuo programma. Restituisce undefined quando il browser non supporta la funzione integrata.
Sintassi
require(name)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Il nome della funzione da importare. |
Esempio
const getUrl = require('getUrl');
const url = getUrl();
Autorizzazioni associate
Nessuno.
sendPixel
Invia una richiesta GET a un endpoint URL specificato.
Sintassi
sendPixel(url, onSuccess, onFailure)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
url |
stringa | Dove inviare il pixel. |
onSuccess |
function | Chiamato quando il pixel viene caricato correttamente. Nota: anche se la richiesta viene inviata correttamente, i browser potrebbero richiedere una risposta immagine valida per eseguire onSuccess. |
onFailure |
function | Chiamato quando il pixel non viene caricato. Nota: anche se la richiesta viene inviata correttamente, onFailure potrebbe essere eseguito se il server non restituisce una risposta di immagine valida. |
Autorizzazioni associate
setCookie
Imposta o elimina il cookie con il nome, il valore e le opzioni specificati.
Sintassi
setCookie(name, value[, options, encode])
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
name |
stringa | Nome del cookie. |
value |
stringa | Valore del cookie. |
options |
oggetto | Specifica gli attributi Domain, Path, Expires, Max-Age, Secure e SameSite. (vedi Opzioni di seguito). |
encode |
boolean | Controlla se il valore del cookie deve essere codificato con
encodeURIComponent() di JavaScript.
Il valore predefinito è true . |
- Domain:impostato dalla proprietà
options['domain']
, se presente. Imposta questo valore su'auto'
per tentare di scrivere il cookie utilizzando il dominio più ampio possibile, in base alla posizione del documento. Se non riesce, proverà con sottodomini sempre più ristretti. Se tutti questi tentativi non vanno a buon fine, proverà a scrivere il cookie senza un dominio. Se non viene impostato alcun valore, verrà tentato di scrivere il cookie senza specificare un dominio. Nota: quando un cookie senza un dominio specificato viene scritto indocument.cookie
, lo user agent imposta per impostazione predefinita il dominio del cookie sull'host della posizione corrente del documento. - Percorso:impostato da
options['path']
, se presente. Quando un cookie senza un percorso specificato viene scritto indocument.cookie
, lo user agent imposta il percorso del cookie sul percorso della posizione del documento corrente. - Max-Age: impostato da
options['max-age']
, se presente. - Scadenza impostata da
options['expires']
, se presente. Se presente, deve essere una stringa di data formattata in formato UTC.Date.toUTCString()
può essere utilizzato per formattare unDate
per questo parametro. - Sicuro:impostato da
options['secure']
, se presente. - SameSite:impostato da
options['samesite']
, se presente.
Autorizzazioni associate
setDefaultConsentState
Invia un aggiornamento del consenso predefinito al livello dati, da elaborare il prima possibile dopo che l'evento corrente e i tag che ha attivato hanno terminato l'elaborazione (o è stato raggiunto il timeout di elaborazione dei tag). L'aggiornamento viene elaborato in questo contenitore prima di qualsiasi elemento in coda nel data layer. Scopri di più sul consenso.
Esempio:
const setDefaultConsentState = require('setDefaultConsentState');
setDefaultConsentState({
'ad_storage': 'denied',
'analytics_storage': 'granted',
'third_party_storage': 'denied',
'region': ['US-CA'],
'wait_for_update': 500
});
Sintassi
setDefaultConsentState(consentSettings)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
consentSettings |
oggetto | Un oggetto che definisce lo stato predefinito per i tipi di consenso specificati. |
L'oggetto consentSettings
è una mappatura di stringhe di tipo di consenso arbitrarie a
'granted'
o 'denied'
. Supporta i seguenti valori:
Nome chiave | Tipo | Descrizione |
---|---|---|
consentType |
stringa | Il valore di ogni tipo di consenso può essere impostato su "granted" o "denied". Qualsiasi valore diverso da "granted" verrà considerato come "denied". L'impostazione del valore su "undefined" non influirà sul valore precedente. |
region |
Array | Un array facoltativo di codici regione che specificano a quale regione si applicano le impostazioni di consenso. I codici regione sono espressi utilizzando paesi e/o suddivisioni nel formato ISO 3166-2. |
wait_for_update |
number | Specifica un valore in millisecondi per controllare per quanto tempo attendere prima dell'invio dei dati. Utilizzato con strumenti per il consenso che vengono caricati in modo asincrono. |
Autorizzazioni associate
Autorizzazione access_consent
con accesso in scrittura per tutti i tipi di consenso nell'oggetto
consentSettings.
setInWindow
Imposta il valore specificato in window
in corrispondenza della chiave specificata. Per impostazione predefinita, questo metodo non
imposta il valore in window
se è già presente un valore. Imposta
overrideExisting
su true
per impostare il valore in window
indipendentemente dalla
presenza di un valore esistente. Restituisce un valore booleano: true
se il valore è stato
impostato correttamente e false
in caso contrario.
Sintassi
setInWindow(key, value, overrideExisting)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
key |
stringa | La chiave in window in cui inserire il valore. |
value |
* | Il valore da impostare in window . |
overrideExisting |
boolean | Il flag che indica che il valore deve essere impostato in window ,
indipendentemente dalla presenza o meno di un valore. |
Autorizzazioni associate
sha256
Calcola il digest SHA-256 dell'input e richiama un callback con il
digest codificato in base64, a meno che l'oggetto options
non specifichi una codifica
di output diversa.
Esempio:
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure);
sha256('inputString', (digest) => {
sendPixel('https://example.com/collect?id=' + digest);
data.gtmOnSuccess();
}, data.gtmOnFailure, {outputEncoding: 'hex'});
Sintassi
sha256(input, onSuccess, onFailure = undefined, options = undefined)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
input |
stringa | La stringa per cui calcolare l'hash. |
onSuccess |
function | Chiamato con il digest risultante, codificato in base64, a meno che l'oggetto options non specifichi una codifica di output diversa. |
onFailure |
function | Chiamato se si verifica un errore durante il calcolo del digest o se il browser non supporta in modo nativo SHA256. La callback viene chiamata con un oggetto contenente il nome dell'errore e il messaggio. |
options |
oggetto | Oggetto delle opzioni facoltativo per specificare la codifica dell'output. Se
specificato, l'oggetto deve contenere la chiave outputEncoding
con valore base64 o hex . |
Autorizzazioni associate
Nessuno.
templateStorage
Restituisce un oggetto con metodi per accedere all'archiviazione dei modelli. L'archiviazione dei modelli consente di condividere i dati tra le esecuzioni di un singolo modello. I dati memorizzati nell'archivio dei modelli vengono conservati per tutta la durata della pagina.
Sintassi
const templateStorage = require('templateStorage');
templateStorage.getItem(key);
templateStorage.setItem(key, value);
templateStorage.removeItem(key);
// Deletes all stored values for the template.
templateStorage.clear();
Autorizzazioni associate
Esempio
const templateStorage = require('templateStorage');
const sendPixel = require('sendPixel');
// Ensure sendPixel is called only once per page.
if (templateStorage.getItem('alreadyRan')) {
data.gtmOnSuccess();
return;
}
templateStorage.setItem('alreadyRan', true);
sendPixel(
data.oncePerPagePixelUrl,
data.gtmOnSuccess,
() => {
templateStorage.setItem('alreadyRan', false);
data.gtmOnFailure();
});
toBase64
L'API toBase64
consente di codificare una stringa in una rappresentazione base64.
Sintassi
toBase64(input)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
input |
stringa | Stringa da codificare. |
Esempio
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
Autorizzazioni associate
Nessuno
updateConsentState
Invia un aggiornamento del consenso al data layer, da elaborare il prima possibile dopo che l'evento corrente e tutti i tag che ha attivato hanno terminato l'elaborazione (o è stato raggiunto il timeout di elaborazione dei tag). L'aggiornamento viene elaborato in questo container prima di qualsiasi elemento in coda nel livello dati. Scopri di più sul consenso.
Esempio:
const updateConsentState = require('updateConsentState');
updateConsentState({
'ad_storage': 'granted',
'analytics_storage': 'denied',
'third_party_storage': 'granted',
});
Sintassi
updateConsentState(consentSettings)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
consentSettings |
oggetto | Un oggetto che aggiorna lo stato per i tipi di consenso specificati. |
L'oggetto consentSettings
è una mappatura di stringhe di tipo di consenso arbitrarie a
'granted'
o 'denied'
. Supporta i seguenti valori:
Nome chiave | Tipo | Descrizione |
---|---|---|
consentType |
stringa | Il valore per ogni tipo di consenso può essere impostato su "concesso" o "negato". Qualsiasi valore diverso da "granted" verrà considerato "denied". Se imposti il valore su "undefined", non avrà alcun effetto sul valore precedente. |
Autorizzazioni associate
Autorizzazione access_consent
con accesso in scrittura per tutti i tipi di consenso nell'oggetto
consentSettings.
Testare le API
Queste API funzionano con i test JavaScript in sandbox per creare test per i modelli personalizzati in Google Tag Manager. Queste API di test non richiedono una dichiarazione require()
. Scopri di più sui test dei modelli personalizzati.
assertApi
Restituisce un oggetto matcher che può essere utilizzato per fare asserzioni in modo fluido sull'API specificata.
Sintassi
assertApi(apiName)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
apiName |
stringa | Il nome dell'API da controllare; la stessa stringa passata a
require() .
|
Matchers
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 sulla libreria [Truth] di Google. Restituisce un
oggetto che può essere utilizzato per fare asserzioni in modo fluido sul valore di un soggetto. Un
errore di asserzione interromperà immediatamente il test e lo contrassegnerà come non riuscito. Tuttavia,
un errore in un test non influirà sugli altri scenari di test.
Sintassi
assertThat(actual, opt_message)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
actual |
any | Il valore da utilizzare nei controlli di fluidità. |
opt_message |
stringa | Messaggio facoltativo da stampare se l'asserzione non riesce. |
Matchers
Matcher | Descrizione |
---|---|
isUndefined() |
Afferma che il soggetto è undefined . |
isDefined() |
Afferma che il soggetto non è undefined . |
isNull() |
Afferma che il soggetto è null . |
isNotNull() |
Afferma che il soggetto non è null . |
isFalse() |
Afferma che il soggetto è false . |
isTrue() |
Afferma che il soggetto è true . |
isFalsy() |
Afferma che il soggetto è falso. I valori falsy sono
undefined , null , false ,
NaN , 0 e "" (stringa vuota). |
isTruthy() |
Afferma che il soggetto è truthy. I valori falsy sono
undefined , null , false ,
NaN , 0 e "" (stringa vuota). |
isNaN() |
Verifica che il soggetto sia il valore NaN. |
isNotNaN() |
Verifica che il soggetto sia un valore diverso da NaN. |
isInfinity() |
Afferma che il soggetto è infinito positivo o negativo. |
isNotInfinity() |
Afferma che il soggetto è un valore diverso da infinito positivo o negativo. |
isEqualTo(expected) |
Afferma che il soggetto è uguale al valore specificato. Si tratta di un confronto tra valori, non di un confronto di riferimento. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
isNotEqualTo(expected) |
Afferma che il soggetto non è uguale al valore specificato. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
isAnyOf(...expected) |
Afferma che il soggetto è uguale a uno dei valori indicati. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
isNoneOf(...expected) |
Afferma che il soggetto non è uguale a nessuno dei valori forniti. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
isStrictlyEqualTo(expected) |
Afferma che il soggetto è strettamente uguale (=== ) al
valore specificato. |
isNotStrictlyEqualTo(expected) |
Afferma che il soggetto non è strettamente uguale (!== ) al
valore specificato. |
isGreaterThan(expected) |
Afferma che il soggetto è maggiore di (> ) il valore
dato in un confronto ordinato. |
isGreaterThanOrEqualTo(expected) |
Afferma che il soggetto è maggiore o uguale a
(>= ) il valore specificato in un confronto ordinato. |
isLessThan(expected) |
Afferma che il soggetto è inferiore (< ) al valore
dato in un confronto ordinato. |
isLessThanOrEqualTo(expected) |
Afferma che il soggetto è minore o uguale a (<= )
il valore specificato in un confronto ordinato. |
contains(...expected) |
Afferma che il soggetto è un array o una stringa che contiene tutti i valori specificati in qualsiasi ordine. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
doesNotContain(...expected) |
Afferma che il soggetto è un array o una stringa che non contiene nessuno dei valori specificati. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
containsExactly(...expected) |
Afferma che il soggetto è un array che contiene tutti i valori forniti in qualsiasi ordine e nessun altro valore. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
doesNotContainExactly(...expected) |
Afferma che il soggetto è un array che contiene un insieme diverso di valori rispetto a quelli forniti in qualsiasi ordine. Si tratta di un confronto di valori, non di un confronto di riferimenti. I contenuti di oggetti e array vengono confrontati in modo ricorsivo. |
hasLength(expected) |
Afferma che il soggetto è un array o una stringa con la lunghezza specificata. L'asserzione ha sempre esito negativo se il valore non è un array o una stringa. |
isEmpty() |
Verifica che il soggetto sia un array o una stringa vuota (lunghezza = 0). L'asserzione ha sempre esito negativo se il valore non è un array o una stringa. |
isNotEmpty() |
Afferma 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() |
Afferma che il tipo del soggetto è un array. |
isBoolean() |
Afferma che il tipo del soggetto è booleano. |
isFunction() |
Afferma che il tipo del soggetto è una funzione. |
isNumber() |
Afferma che il tipo di soggetto è un numero. |
isObject() |
Afferma che il tipo di soggetto è un oggetto. |
isString() |
Afferma che il tipo di 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
Interrompe 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 in sandbox. L'API
mock è sicura da utilizzare nel codice del modello, ma è operativa solo in modalità test.
I mock vengono reimpostati 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 a
require() |
returnValue |
any | Il valore da restituire per l'API o una funzione chiamata al posto dell'API. Se returnValue è una funzione, questa viene chiamata al posto dell'API Sandbox; se returnValue è un valore diverso da una funzione, questo viene restituito al posto dell'API Sandbox. |
Esempi
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
L'API mockObject
ti consente di eseguire l'override del comportamento delle API sandbox che restituiscono un oggetto. L'API può essere utilizzata in modo sicuro nel codice del modello, ma è operativa
solo in modalità di test. I mock vengono reimpostati 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 a
require() |
objectMock |
oggetto | Il valore da restituire per l'API o una funzione chiamata al posto dell'API. Deve essere un oggetto. |
Esempi
const storage = {};
mockObject('localStorage', {
setItem: (key, value) => {storage[key] = value;},
getItem: (key) => storage[key],
});
runCode
Esegue il codice per il modello, ovvero il contenuto della scheda Codice, nell' ambiente di test corrente con un determinato oggetto dati di input.
Sintassi
runCode(data)
Parametri
Parametro | Tipo | Descrizione |
---|---|---|
data |
oggetto | L'oggetto dati da utilizzare nel test. |
Valore restituito
Restituisce il valore di una variabile per i modelli di variabili; restituisce undefined
per
tutti gli altri tipi di modelli.
Esempio
runCode({field1: 123, field2: 'value'});