En este documento, se describen las APIs para el etiquetado del servidor.
addEventCallback
Registra una función de devolución de llamada que se invocará al final de un evento. Se invocará la devolución de llamada cuando se hayan ejecutado todas las etiquetas del evento. La devolución de llamada recibe dos valores: el ID del contenedor que invoca la función y un objeto que contiene información sobre el evento.
Cuando se usa esta API en una etiqueta, se asocia al evento actual. Cuando esta API se usa en un cliente, se debe vincular a un evento específico con la función bindToEvent de la API de runContainer. Consulta el
ejemplo para obtener más detalles.
Sintaxis
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// Take some action based on the event data.
});
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
callback |
function | Es la función que se invocará al final del evento. |
El objeto eventData contiene los siguientes datos:
| Nombre de la clave | Tipo | Descripción |
|---|---|---|
tags |
Matriz |
Es un array de objetos de datos de etiquetas. Cada etiqueta que se activó durante el evento
tendrá una entrada en este array. El objeto de datos de la etiqueta contiene el ID de la etiqueta (id), su estado de ejecución (status) y su tiempo de ejecución (executionTime). Los datos de la etiqueta también incluirán metadatos adicionales que se configuraron en la etiqueta.
|
En 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();
}
});
});
En una etiqueta:
const addEventCallback = require('addEventCallback');
addEventCallback((containerId, eventData) => {
// This will be called at the end of the current event.
});
Permisos asociados
callLater
Programa una llamada a una función para que se produzca de forma asíncrona. Se llamará a la función después de que se devuelva el código actual. Esto equivale a setTimeout(<function>, 0).
Ejemplo
const callLater = require('callLater');
const logToConsole = require('logToConsole');
callLater(() => {
logToConsole('Logged asynchronously');
});
Sintaxis
callLater(function)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
function |
function | Es la función a la que se llamará. |
Permisos asociados
Ninguno
claimRequest
Usa esta API en un cliente para reclamar la solicitud. Una vez que se reclama una solicitud, el contenedor no ejecuta clientes adicionales.
Esta API arroja una excepción si se llama en una etiqueta o variable. Esta API arroja una
excepción si se llama después de que el cliente devuelve un valor (p.ej., si se llama en una devolución de llamada
asíncrona, como en callLater o en la función onComplete de runContainer).
Un cliente debe reclamar la solicitud con esta API antes de llamar a la
API de runContainer.
Ejemplo
const claimRequest = require('claimRequest');
claimRequest();
Sintaxis
claimRequest();
Permisos asociados
Ninguno
computeEffectiveTldPlusOne
Devuelve el dominio de nivel superior efectivo + 1 (eTLD+1) del dominio o la URL proporcionados. El eTLD+1 se calcula evaluando el dominio con las reglas de la lista de sufijos públicos. El eTLD+1 suele ser el dominio de nivel superior en el que puedes establecer una cookie.
Si el argumento es nulo o indefinido, el valor del argumento se devuelve sin alteraciones. De lo contrario, el argumento se convierte en una cadena. Si el argumento no es un dominio o una URL válidos, se devuelve una cadena en blanco. Si el servidor no puede recuperar la lista de sufijos públicos, el valor del argumento se devuelve sin alteraciones.
Ejemplo
const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');
// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');
Sintaxis
computeEffectiveTldPlusOne(domainOrUrl);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
domainOrUrl |
string | Es un dominio o una URL en los que se calcula el eTLD+1. |
Permisos asociados
Ninguno
createRegex
Crea una nueva instancia de regex y la devuelve unida en un objeto. No puedes acceder a la regex directamente. Sin embargo, puedes pasarlo a la API de testRegex,
String.replace(), String.match() y String.search().
Devuelve null si la regex no es válida o Re2 no está disponible en el servidor.
Esta API usa una implementación de Re2. La imagen de Docker del servidor debe ser de la versión 2.0.0 o posterior.
Ejemplo
const createRegex = require('createRegex');
const domainRegex = createRegex('\\w+\\.com', 'i');
// Returns '/foobar'
'example.com/foobar'.replace(domainRegex, '');
Sintaxis
createRegex(pattern, flags);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
pattern |
string | Es el texto de la expresión regular. |
flags |
string | Es una cadena opcional que contiene las marcas de la regex que se está creando. Se admiten `g` (global) e `i` (ignorar mayúsculas y minúsculas). Todos los demás caracteres se ignoran de forma silenciosa. |
Permisos asociados
Ninguno
Versión mínima de la imagen
decodeUri
Decodifica los caracteres codificados en el URI proporcionado. Devuelve una cadena que
representa el URI decodificado. Devuelve undefined cuando se proporciona una entrada no válida.
Ejemplo
const decodeUri = require('decodeUri');
const decodedUrl = decodeUri(data.encodedUrl);
if (decodedUrl) {
// ...
}
Sintaxis
decodeUri(encoded_uri);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
encoded_uri |
string |
Es un URI que se codificó con
encodeUri() o por otros medios.
|
Permisos asociados
Ninguno
decodeUriComponent
Decodifica los caracteres codificados en el componente de URI proporcionado. Devuelve una
cadena que representa el componente de URI decodificado. Devuelve undefined cuando
se proporciona una entrada no válida.
Ejemplo
const decodeUriComponent = require('decodeUriComponent');
const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
// ...
}
Sintaxis
decodeUriComponent(encoded_uri_component);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
encoded_uri_component |
string |
Un componente de URI que se codificó con
encodeUriComponent()
o por otros medios.
|
Permisos asociados
Ninguno
encodeUri
Devuelve un identificador uniforme de recursos (URI) codificado con caracteres especiales de escape. Devuelve una cadena que representa la cadena proporcionada codificada como un URI.
Ejemplo
const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/' + encodeUri(pathInput));
Sintaxis
encodeUri(uri);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
uri |
string | Un URI completo. |
Permisos asociados
Ninguno
encodeUriComponent
Muestra un identificador uniforme de recursos (URI) codificado con caracteres especiales de escape. Devuelve una cadena que representa la cadena proporcionada codificada como un URI.
Ejemplo
const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');
sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));
Sintaxis
encodeUriComponent(str);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
str |
string | Es un componente de un URI. |
Permisos asociados
Ninguno
extractEventsFromMpv1
Traduce una solicitud entrante de Measurement Protocol V1 en una lista de eventos en formato de esquema unificado. Devuelve la lista de eventos extraídos. Se genera un error si la solicitud no tiene el formato correcto.
Ejemplo
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.
}
}
Sintaxis
extractEventsFromMpv1();
Permisos asociados
Requiere el permiso read_request. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
bodyquery parameters
extractEventsFromMpv2
Traduce una solicitud entrante de Measurement Protocol V2 a una lista de eventos en formato de esquema unificado. Devuelve la lista de eventos extraídos. Se genera un error si la solicitud no tiene el formato correcto.
Ejemplo
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.
}
}
Sintaxis
extractEventsFromMpv2();
Permisos asociados
Requiere el permiso read_request. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
bodyquery parameters
fromBase64
Decodifica una cadena codificada en base64. Devuelve undefined si la entrada no es válida.
Sintaxis
fromBase64(base64EncodedString);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
base64EncodedString |
string | Es una cadena codificada en Base64. |
Ejemplo
const fromBase64 = require('fromBase64');
const greeting = fromBase64('aGVsbG8=');
if (greeting === 'hello') {
// ...
}
Permisos asociados
Ninguno
generateRandom
Devuelve un número (entero) aleatorio dentro del rango determinado.
Ejemplo
const generateRandom = require('generateRandom');
const randomValue = generateRandom(0, 10000000);
Sintaxis
generateRandom(min, max);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
min |
número | Es el valor potencial mínimo del número entero que se devuelve (inclusive). |
max |
número | Es el valor potencial máximo del número entero que se devuelve (inclusive). |
Permisos asociados
Ninguno
getAllEventData
Devuelve una copia de los datos del evento.
Sintaxis
getAllEventData();
Permisos asociados
getAnonymizedIpAddress
Devuelve una representación de cadena anonimizada de la dirección IP en la que se originó la solicitud.
En el caso de las direcciones IPv4, el último octeto se enmascara como 0 (por ejemplo,
198.51.100.42 se convierte en 198.51.100.0). En el caso de las direcciones IPv6, los últimos 80 bits
se enmascaran como ceros, y se conservan los primeros 48 bits (por ejemplo,
2001:db8:cafe:1234:5678:90ab:cdef:1234 se convierte en 2001:db8:cafe::).
Devuelve "::" si la dirección IP no es válida o no se puede resolver, por lo que el resultado
siempre es seguro para usarlo como ip_override.
Ejemplo
const getAnonymizedIpAddress = require('getAnonymizedIpAddress');
const anonymizedIp = getAnonymizedIpAddress();
Sintaxis
getAnonymizedIpAddress();
Permisos asociados
getClientName
Devuelve una cadena que contiene el nombre del cliente actual.
Sintaxis
getClientName();
Permisos asociados
getContainerVersion
Devuelve un objeto que contiene datos sobre el contenedor actual. El objeto devuelto tendrá los siguientes campos:
{
containerId: string,
debugMode: boolean,
environmentName: string,
environmentMode: boolean,
previewMode: boolean,
version: string,
}
Ejemplo
const getContainerVersion = require('getContainerVersion');
const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];
Sintaxis
getContainerVersion();
Permisos asociados
getCookieValues
Devuelve un array que contiene los valores de todas las cookies con el nombre proporcionado.
Ejemplo
const getCookieValues = require('getCookieValues');
const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
// ...
}
Sintaxis
getCookieValues(name[, noDecode]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Es el nombre de la cookie. |
noDecode |
boolean |
Si es true, los valores de la cookie no se decodificarán antes de
devolverse. La configuración predeterminada es false.
|
Permisos asociados
getEventData
Devuelve una copia del valor en la ruta de acceso proporcionada en los datos del evento. Devuelve
undefined si no hay datos de eventos o si no hay un valor en la ruta de acceso proporcionada.
Ejemplo
const getEventData = require('getEventData');
const campaignId = getEventData('campaign.id');
const itemId = getEventData('items.0.id');
const referrer = getEventData('page_referrer');
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
keyPath |
cualquiera |
La ruta de la clave, expresada como una lista de sus componentes separados por puntos. Los
componentes de la ruta pueden ser claves de un objeto o índices de un array. Si
keyPath no es una cadena, se convierte en una.
|
Sintaxis
getEventData(keyPath);
Permisos asociados
getGoogleAuth
Devuelve un objeto de autorización que, cuando se usa con
sendHttpGet o sendHttpRequest, incluirá
un encabezado de autorización para las APIs de Google Cloud. Esta API usa
credenciales predeterminadas de la aplicación para encontrar automáticamente credenciales del
entorno del servidor.
Ejemplo
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();
}
});
Sintaxis
getGoogleAuth(scopes);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
scopes
|
Matriz | Es un array de permisos de la API de Google de OAuth 2.0 para solicitar acceso. |
Permisos asociados
Requiere el permiso use_google_credentials. El permiso debe
configurarse con uno o más permisos permitidos.
getGoogleScript
Recupera un recurso de un conjunto predeterminado de secuencias de comandos de Google y devuelve una promesa con la secuencia de comandos y los metadatos de almacenamiento en caché asociados.
La promesa se resolverá en un objeto que contiene dos claves: script y
metadata. Si la solicitud falla, la promesa se rechazará con una clave reason.
El objeto metadata contendrá los siguientes metadatos de almacenamiento en caché según los
encabezados de respuesta del recurso. Cada campo solo estará presente si el encabezado correspondiente
está presente en la respuesta del recurso.
{
'cache-control': string,
'expires': string,
'last-modified': string,
}
Ejemplo
const getGoogleScript = require('getGoogleScript');
getGoogleScript('ANALYTICS').then((result) => {
// Operate on result.script and result.metadata here.
});
Sintaxis
getGoogleScript(script[, options]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
script |
string |
Es el nombre de la secuencia de comandos. Los idiomas admitidos son
'ANALYTICS', 'GTAG' y
'GTM'.La opción 'ANALYTICS'
recupera la secuencia de comandos de Google Analytics de
https://www.google-analytics.com/analytics.js.La opción 'GTAG' recupera la secuencia de comandos de la etiqueta global del sitio (gtag.js) de https://www.googletagmanager.com/gtag/js.La opción 'GTM' recupera la secuencia de comandos de Google Tag Manager
desde https://www.googletagmanager.com/gtm.js.
|
options |
object | Opciones de solicitud opcionales. Consulta las opciones admitidas a continuación. |
Opciones
| Opción | Tipo | Descripción |
|---|---|---|
id |
string |
Se aplica a 'GTAG' con el ID de medición de gtag y
'GTM' con el ID del contenedor web (p. ej., GTM-XXXX).
|
debug |
cualquiera | Si es verdadero, solicita y devuelve la versión de depuración de la secuencia de comandos de medición. |
timeout |
número |
Es el tiempo de espera de la solicitud en milisegundos. Se ignoran los valores no positivos. Si se agota el tiempo de espera de la solicitud, se invocará la devolución de llamada con undefined para el valor de la secuencia de comandos y {} para el objeto de metadatos.
|
Se ignoran las claves de opción no reconocidas.
Permisos asociados
Requiere el permiso send_http. El permiso debe estar configurado para permitir
el acceso, como mínimo, a lo siguiente:
- Permitir los dominios de Google
getRemoteAddress
Devuelve una representación de string de la dirección IP en la que se originó la solicitud, p.ej., 12.345.67.890 para IPv4 o 2001:0db8:85a3:0:0:8a2e:0370:7334 para IPv6, mediante la lectura de encabezados de la solicitud, como Forwarded y X-Forwarded-For.
Nota: Esta API hace todo lo posible para descubrir la IP de origen, pero
no puede garantizar que el resultado sea exacto.
Sintaxis
getRemoteAddress();
Permisos asociados
Requiere el permiso read_request. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
- Encabezados
ForwardedyX-Forwarded-For - Dirección IP remota
getRequestBody
Devuelve el cuerpo de la solicitud como una cadena, si está presente, o undefined de lo contrario.
Sintaxis
getRequestBody();
Permisos asociados
getRequestHeader
Devuelve el valor del encabezado de la solicitud con nombre como una cadena, si está presente, o
undefined de lo contrario. Si el encabezado se repite, los valores mostrados se unen
con ', '.
Ejemplo
const getRequestHeader = require('getRequestHeader');
const host = getRequestHeader('host');
Sintaxis
getRequestHeader(headerName);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
headerName |
string | Es el nombre del encabezado. Este valor no distingue mayúsculas de minúsculas. |
Permisos asociados
getRequestMethod
Devuelve el método de solicitud, p.ej., 'GET' o 'POST', como una cadena.
Ejemplo
const getRequestMethod = require('getRequestMethod');
if (getRequestMethod() === 'POST') {
// Handle the POST request here.
}
Sintaxis
getRequestMethod();
Permisos asociados
Ninguno
getRequestPath
Devuelve la ruta de la solicitud sin la cadena de consulta. Por ejemplo, si la URL es
'/foo?id=123', se devuelve '/foo'. Quita automáticamente el prefijo de la URL del contenedor de servidor de la ruta. Por ejemplo, si la URL del contenedor de servidor es https://example.com/analytics y la ruta de la solicitud es '/analytics/foo', se devuelve '/foo'.
Ejemplo
const getRequestPath = require('getRequestPath');
const requestPath = getRequestPath();
if (requestPath === '/') {
// Handle a request for the root path.
}
Sintaxis
getRequestPath();
Permisos asociados
getRequestQueryParameter
Devuelve el valor decodificado del parámetro de cadena de consulta con nombre como una cadena o undefined si el parámetro no está presente. Si el parámetro se repite en
la cadena de consulta, se devolverá el primer valor que aparezca en
ella.
Ejemplo
const getRequestQueryParameter = require('getRequestQueryParameter');
const query = getRequestQueryParameter('query');
if (query) {
// Process query here.
}
Sintaxis
getRequestQueryParameter(name);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Es el nombre del parámetro de consulta. |
Permisos asociados
getRequestQueryParameters
Devuelve los parámetros de consulta de la solicitud HTTP entrante como un objeto que asigna los nombres de los parámetros de consulta al valor o los valores correspondientes. Los nombres y valores de los parámetros se decodifican.
Ejemplo
const getRequestQueryParameters = require('getRequestQueryParameters');
const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
// Handle the search query here.
const maxResults = queryParameters['max_results'];
}
Sintaxis
getRequestQueryParameters();
Permisos asociados
getRequestQueryString
Devuelve la consulta de la solicitud como una cadena, sin el signo de interrogación inicial, o una cadena vacía si la URL de la solicitud no incluye una cadena de consulta.
Ejemplo
const getRequestQueryString = require('getRequestQueryString');
const queryString = getRequestQueryString();
if (queryString !== '') {
// Handle the query string.
}
Sintaxis
getRequestQueryString();
Permisos asociados
getTimestamp
Obsoleto. Se prefiere getTimestampMillis.
Devuelve un número que representa la hora actual en milisegundos desde el tiempo Unix, como lo devuelve Date.now().
Sintaxis
getTimestamp();
Permisos asociados
Ninguno
getTimestampMillis
Devuelve un número que representa la hora actual en milisegundos desde el tiempo Unix, como lo devuelve Date.now().
Sintaxis
getTimestampMillis();
Permisos asociados
Ninguno
getType
Devuelve una cadena que describe el tipo del valor determinado.
| Tipo de entrada | Valor devuelto |
|---|---|
| string | 'string' |
| número | 'number' |
| boolean | 'boolean' |
| null | 'null' |
| undefined | 'undefined' |
| Matriz | 'array' |
| Objeto | 'object' |
| Función | 'function' |
Ejemplo
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);
}
Sintaxis
getType(value);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
value |
cualquiera | Es el valor de entrada. |
Permisos asociados
Ninguno
hmacSha256
Calcula una firma codificada con el código de autenticación de mensajes basado en hash (HMAC) con SHA-256. La configuración predeterminada es la codificación base64url.
Para usar esta API, configura la variable de entorno SGTM_CREDENTIALS en el servidor
con la ruta de acceso de un archivo de claves JSON codificado en UTF-8 con el siguiente formato:
{
"keys": {
"key1": "YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5",
"key2": "OTg3NjU0MzIxMHp5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2Jh",
...
}
}
Los valores son claves HMAC codificadas en Base64. El texto JSON no debe comenzar con un marcador de orden de bytes.
Ejemplo
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;
Sintaxis
hmacSha256(data, keyId, options)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
data |
string | Son los datos para calcular el valor de HMAC. |
keyId
|
string | Un ID de clave del archivo de claves JSON que hace referencia a la clave que se usará. |
options
|
object | Configuración de la API opcional. (Consulta Opciones a continuación). |
Opciones
| Opción | Tipo | Descripción |
|---|---|---|
outputEncoding
|
string | Especifica el formato de codificación del
valor que se muestra. Los formatos admitidos son hex,
base64 o base64url. El valor predeterminado es
base64url si no se especifica. |
Permisos asociados
Versión mínima de la imagen
isRequestMpv1
Devuelve true si la solicitud entrante es una solicitud del Protocolo de medición V1 o
false de lo contrario.
Ejemplo
const isRequestMpv1 = require('isRequestMpv1');
if (isRequestMpv1()) {
// Handle Measurement Protocol V1 request.
const events = extractEventsFromMpv1();
}
Sintaxis
isRequestMpv1();
Permisos asociados
Ninguno
isRequestMpv2
Devuelve true si la solicitud entrante es una solicitud del Protocolo de medición V2 o false en caso contrario.
Ejemplo
const isRequestMpv2 = require('isRequestMpv2');
if (isRequestMpv2()) {
// Handle Measurement Protocol V2 request.
const events = extractEventsFromMpv2();
}
Sintaxis
isRequestMpv2();
Permisos asociados
Ninguno
logToConsole
Registra sus argumentos en la consola.
Estos registros se pueden ver en el Explorador de registros de la consola de Google Cloud.
En el Explorador de registros, ejecuta la consulta logName =~ "stdout" para ver las entradas de registro
creadas por esta API.
Ejemplo
const logToConsole = require('logToConsole');
const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);
Sintaxis
logToConsole(argument1[, argument2, ...]);
Parámetros
La API toma uno o más argumentos, cada uno de los cuales se convierte en una cadena, si es necesario, y se registra en la consola.
Permisos asociados
makeInteger
Convierte el valor determinado en un número (entero).
Sintaxis
makeInteger(value);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
value |
any type | Es el valor que se convertirá. |
Permisos asociados
Ninguno
makeNumber
Convierte el valor proporcionado en un número.
Sintaxis
makeNumber(value);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
value |
any type | Es el valor que se convertirá. |
Permisos asociados
Ninguno
makeString
Devuelve el valor dado como una cadena.
Sintaxis
makeString(value);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
value |
any type | Es el valor que se convertirá. |
Permisos asociados
Ninguno
makeTableMap
Convierte un objeto de tabla simple con dos columnas en un Map. Esto se usa para
cambiar un campo de plantilla de SIMPLE_TABLE con dos columnas a un formato
más manejable.
Por ejemplo, esta función podría convertir un objeto de tabla:
[
{'key': 'k1', 'value': 'v1'},
{'key': 'k2', 'value': 'v2'}
]
en un Map:
{
'k1': 'v1',
'k2': 'v2'
}
Devuelve un Object: Se le agregó el Map convertido de pares clave-valor; de lo contrario, devuelve null.
Sintaxis
makeTableMap(tableObj, keyColumnName, valueColumnName);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
tableObj |
Lista |
Es el objeto de tabla que se convertirá. Es una lista de mapas en la que cada
Map representa una fila de la tabla. Cada nombre de propiedad en un objeto de fila es el nombre de la columna, y el valor de la propiedad es el valor de la columna en la fila.
|
keyColumnName |
string |
Es el nombre de la columna cuyos valores se convertirán en claves en el Map
convertido.
|
valueColumnName |
string |
Es el nombre de la columna cuyos valores se convertirán en valores en el Map
convertido.
|
Permisos asociados
Ninguno
parseUrl
Devuelve un objeto que contiene todas las partes de un componente de una URL determinada, similar al
objeto URL.
Esta API devolverá undefined para cualquier URL con formato incorrecto. En el caso de las URLs con el formato correcto, los campos que no estén presentes en la cadena de la URL tendrán el valor de una cadena vacía
o, en el caso de searchParams, un objeto vacío.
El objeto que se devuelva tendrá los siguientes campos:
{
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,
}
Ejemplo
const parseUrl = require('parseUrl');
const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');
Sintaxis
parseUrl(url);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
url |
string | Es la URL completa que se analizará. |
Permisos asociados
Ninguno
returnResponse
Vacía la respuesta que se estableció anteriormente con otras plantillas que usan las APIs que modifican la respuesta, incluidas setCookie, setPixelResponse, setResponseBody, setResponseHeader y setResponseStatus. La configuración predeterminada es un código de estado HTTP 200, un cuerpo vacío y sin encabezados.
Se recomienda que esta API se use desde una plantilla de cliente.
Sintaxis
returnResponse();
Ejemplo
Consulta el ejemplo de runContainer.
Permisos asociados
runContainer
Ejecuta la lógica del contenedor (variables, activadores y etiquetas) en el alcance de un evento. Si se llama a esta API durante la ejecución del contenedor, este se vuelve a ejecutar.
Las devoluciones de llamada onComplete y onStart reciben una función llamada bindToEvent. Usa bindToEvent para ejecutar una API en el contexto del evento.
Consulta el ejemplo de addEventCallback para obtener más detalles.
Se recomienda usar esta API desde una plantilla de cliente.
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());
Sintaxis
runContainer(event, onComplete, onStart);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
event |
object | Son los parámetros del evento. |
onComplete |
function | Es una devolución de llamada que se invoca después de que todas las etiquetas terminan de activarse. |
onStart |
function | Es una devolución de llamada que se invoca de inmediato, antes de que se activen las etiquetas. |
Permisos asociados
sendEventToGoogleAnalytics
Envía un solo evento con datos de eventos comunes a Google Analytics y devuelve una
promesa que se resuelve en un objeto con una clave location o
se rechaza en un objeto con una clave reason. El destino, Google Analytics, se basa en el ID de medición de los datos de eventos.
El campo location se establece en el encabezado location, si está presente.
Ejemplo
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();
});
Sintaxis
sendEventToGoogleAnalytics(event);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
event |
object | Es el evento en formato de esquema unificado. |
Permisos asociados
Requiere el permiso send_http. El permiso debe estar configurado para permitir
el acceso, como mínimo, a lo siguiente:
- Permitir los dominios de Google
sendHttpGet
Realiza una solicitud GET de HTTP a la URL especificada y devuelve una promesa que se resuelve con el resultado una vez que se completa la solicitud o se agota el tiempo de espera.
El resultado resuelto es un objeto que contiene tres claves: statusCode, headers y body. Si la solicitud falla (p.ej., URL no válida, no hay ruta al host,
falla en la negociación de SSL, etc.), la promesa se rechazará con: {reason:
'failed'}. Si se estableció la opción timeout y se agotó el tiempo de espera de la solicitud, la promesa se rechazará con el siguiente mensaje: {reason: 'timed_out'}
Ejemplo
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);
Sintaxis
sendHttpGet(url[, options]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
url |
string | La URL solicitada. |
options
|
object | Opciones de solicitud opcionales. (Consulta Opciones a continuación). |
Opciones
| Opción | Tipo | Descripción |
|---|---|---|
headers |
string | Encabezados de la solicitud adicionales. |
timeout
|
número | Es el tiempo de espera, en milisegundos, antes de que se
anule la solicitud. La configuración predeterminada es 15000. |
authorization
|
object | Objeto de autorización opcional de la llamada a getGoogleAuth para incluir encabezados de autorización cuando se realizan solicitudes a googleapis.com. |
Permisos asociados
sendHttpRequest
Realiza una solicitud HTTP a la URL especificada y devuelve una promesa que se resuelve con la respuesta una vez que se completa la solicitud o se agota el tiempo de espera.
El resultado resuelto es un objeto que contiene tres claves: statusCode, headers y body. Si la solicitud falla (p.ej., URL no válida, no hay ruta al host,
falla en la negociación de SSL, etc.), la promesa se rechazará con: {reason:
'failed'}. Si se estableció la opción timeout y se agotó el tiempo de espera de la solicitud, la promesa se rechazará con el siguiente mensaje: {reason: 'timed_out'}
Ejemplo
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']);
});
Sintaxis
sendHttpRequest(url[, options[, body]]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
url |
string | La URL solicitada. |
options
|
object | Opciones de solicitud opcionales. (Consulta Opciones a continuación). |
body |
string | Cuerpo de la solicitud opcional. |
Opciones
| Opción | Tipo | Descripción |
|---|---|---|
headers |
string | Encabezados de la solicitud adicionales. |
method |
object | Es el método de solicitud. La configuración predeterminada es GET. |
timeout
|
número | Es el tiempo de espera, en milisegundos, antes de que se
anule la solicitud. La configuración predeterminada es 15000. |
authorization
|
object | Objeto de autorización opcional de la llamada a getGoogleAuth para incluir encabezados de autorización cuando se realizan solicitudes a googleapis.com. |
Permisos asociados
sendPixelFromBrowser
Envía un comando al navegador para que cargue la URL proporcionada como una etiqueta <img>. Este protocolo de comandos es compatible con la etiqueta de Google para Google Analytics y las etiquetas web de Google Analytics: Evento de GA. Debes configurar la URL del contenedor de servidor. Consulta las instrucciones para obtener más detalles.
Esta API devuelve false si la solicitud entrante no admite el protocolo de comando o si la respuesta ya se vació. De lo contrario, esta API
devuelve true.
Ejemplo:
const sendPixelFromBrowser = require('sendPixelFromBrowser');
sendPixelFromBrowser('https://example.com/?id=123');
Sintaxis
sendPixelFromBrowser(url)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
url |
string | Es la URL que se enviará al navegador. |
Permisos asociados
setCookie
Establece o borra una cookie con las opciones especificadas.
Para borrar una cookie, se debe establecer una cookie con la misma ruta de acceso y el mismo dominio con los que se creó, y asignarle un valor de vencimiento que esté en el pasado, p.ej., "Thu, 01 Jan 1970 00:00:00 GMT".
Ten en cuenta que se debe llamar a returnResponse para que la respuesta se envíe de vuelta al cliente.
Ejemplo
const setCookie = require('setCookie');
// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});
Sintaxis
setCookie(name, value[, options[, noEncode]]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Es el nombre de la cookie. El nombre no distingue mayúsculas de minúsculas. |
value |
string | Es el valor de la cookie. |
options |
object | Atributos de cookies opcionales:domain, expires, fallbackDomain,httpOnly, max- age, path, secure ysameSite. (consulta Opciones, más abajo). |
noEncode |
boolean |
Si es verdadero, no se codificará el valor de la cookie. La configuración predeterminada es
false.
|
domain: Es el host al que se enviará la cookie. Si se establece en el valor especial "auto", el host se calculará automáticamente con la siguiente estrategia:
- eTLD+1 del encabezado
Forwarded, si está presente. - eTLD+1 del encabezado
X-Forwarded-Host, si está presente. - eTLD+1 del encabezado
Host.
- eTLD+1 del encabezado
expires: Es la vida útil máxima de la cookie. Debe ser una cadena de fecha con formato UTC, p.ej., "Sat, 26 Oct 1985 08:21:00 GMT". Si se establecen
expiresymax-age,max-agetiene prioridad.httpOnly: Prohíbe que JavaScript acceda a la cookie si es
true.max-age: Es la cantidad de segundos hasta el vencimiento de la cookie. Un número cero o negativo hará que la cookie venza de inmediato. Si se establecen
expiresymax-age,max-agetiene prioridad.path: Es una ruta de acceso que debe existir en la URL solicitada; de lo contrario, el navegador no enviará el encabezado Cookie.
secure: Si se establece en
true, la cookie solo se envía al servidor cuando se realiza una solicitud desde un extremohttps:.sameSite: Confirma que no se debe enviar una cookie con solicitudes de origen cruzado. Debe ser
'strict','lax'o'none'.
Permisos asociados
setPixelResponse
Establece el cuerpo de la respuesta en un GIF de 1 x 1, el encabezado Content-Type en "image/gif", los encabezados de almacenamiento en caché de modo que los usuarios-agentes no almacenen en caché la respuesta y el estado de la respuesta en 200.
Ten en cuenta que se debe llamar a returnResponse para que la respuesta se envíe de vuelta al cliente.
Sintaxis
setPixelResponse();
Permisos asociados
Requiere el permiso access_response. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
headers: Debe permitir las siguientes clavescontent-typecache-controlexpirespragma
bodystatus
setResponseBody
Establece el cuerpo de la respuesta en el argumento.
Ten en cuenta que se debe llamar a returnResponse para que la respuesta se envíe de vuelta al cliente.
Sintaxis
setResponseBody(body[, encoding]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
body |
string | Es el valor que se establecerá como el cuerpo de la respuesta. |
encoding |
string |
Es la codificación de caracteres del cuerpo de la respuesta (el valor predeterminado es
'utf8'). Los valores admitidos incluyen 'ascii',
'utf8', 'utf16le', 'ucs2',
'base64', 'latin1', 'binary'
y 'hex'.
|
Permisos asociados
Requiere el permiso access_response. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
body
setResponseHeader
Establece un encabezado en la respuesta que se devolverá. Si esta API ya estableció un encabezado con este nombre (no distingue mayúsculas de minúsculas), la última llamada reemplazará o borrará el valor establecido por el llamador anterior.
Ten en cuenta que se debe llamar a returnResponse para que la respuesta se envíe de vuelta al cliente.
Sintaxis
setResponseHeader(name, value);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
name |
string | Es el nombre del encabezado. Los nombres de encabezado HTTP no distinguen mayúsculas de minúsculas, por lo que el nombre del encabezado se escribirá en minúsculas. |
value |
string undefined | Es el valor del encabezado. Si es nulo o indefinido, se borra el encabezado con nombre de la respuesta que se devolverá. |
Permisos asociados
Requiere el permiso access_response. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
headers
setResponseStatus
Establece el código de estado HTTP de la respuesta que se devolverá.
Ten en cuenta que se debe llamar a returnResponse para que la respuesta se envíe de vuelta al cliente.
Sintaxis
setResponseStatus(statusCode);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
statusCode |
número | Es el código de estado HTTP que se devolverá. |
Permisos asociados
Requiere el permiso access_response. El permiso debe configurarse para
permitir el acceso, como mínimo, a lo siguiente:
status
sha256
Calcula el resumen SHA-256 de la entrada y, luego, invoca una devolución de llamada con el
resumen codificado en Base64, a menos que el objeto options especifique una codificación de salida
diferente.
La firma y el comportamiento de esta API coinciden con la API de sha256 para contenedores web. Sin embargo, las plantillas personalizadas de los contenedores de servidor deben usar la API de sha256Sync para simplificar el código.
Ejemplo
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'});
Sintaxis
sha256(input, onSuccess, options = undefined);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
input |
string | Es la cadena a la que se le aplicará el hash. |
onSuccess |
function |
Se llama con el resumen resultante, codificado en base64, a menos que el objeto options especifique una codificación de salida diferente.
|
options |
object |
Objeto de opciones opcional para especificar la codificación de salida. Si
se especifica, el objeto debe contener la clave outputEncoding
con el valor base64 o hex.
|
Permisos asociados
Ninguno
sha256Sync
Calcula y devuelve el resumen SHA-256 de la entrada, codificado en Base64,
a menos que el objeto options especifique una codificación de salida diferente.
Ejemplo
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));
Sintaxis
sha256Sync(input, options = undefined);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
input |
string | Es la cadena a la que se le aplicará el hash. |
options |
object |
Objeto de opciones opcional para especificar la codificación de salida. Si
se especifica, el objeto debe contener la clave outputEncoding
con el valor base64 o hex.
|
Permisos asociados
Ninguno
templateDataStorage
Devuelve un objeto con métodos para acceder al almacén de datos de la plantilla. El almacén de datos de plantillas permite que los datos se compartan entre las ejecuciones de una sola plantilla. Los datos almacenados en el almacén de datos de la plantilla se conservan en el servidor que ejecuta el contenedor. En la mayoría de los casos, hay varios servidores que ejecutan el contenedor, por lo que almacenar datos en el almacén de datos de la plantilla no garantiza que todas las solicitudes posteriores tengan acceso a los datos.
La palabra "data" en el nombre "templateDataStorage" se refiere al hecho de que solo se pueden almacenar tipos de datos simples y no funcionales con esta API. En cambio, las funciones o
referencias a funciones que se pasen a la API se almacenarán como null.
Sintaxis
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();
Ejemplo
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);
});
Permisos asociados
testRegex
Prueba una cadena con una regex creada a través de la API de createRegex. Devuelve true
si la regex coincide. De lo contrario, devuelve false.
Una regex creada con la marca global tiene estado. Consulta la documentación de RegExp para obtener más detalles.
Ejemplo
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');
Sintaxis
testRegex(regex, string);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
regex |
Objeto | Es la regex con la que se realizará la prueba, que se devuelve desde la API de createRegex. |
string |
string | Cadena de prueba para probar. |
Permisos asociados
Ninguno
toBase64
Codifica una cadena como base64 o base64url. La codificación predeterminada es base64.
Sintaxis
toBase64(input, options);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
input |
string | Es la cadena que se codificará. |
options
|
object | Configuración de la API opcional. (Consulta Opciones a continuación). |
Opciones
| Opción | Tipo | Descripción | Versión mínima |
|---|---|---|---|
urlEncoding
|
boolean | Si es verdadero, el resultado se codificará con el formato base64url. |
1.0.0 |
Ejemplo
const toBase64 = require('toBase64');
const base64Hello = toBase64('hello');
const base64UrlHello = toBase64('hello', {urlEncoding: true});
Permisos asociados
Ninguno
BigQuery
Devuelve un objeto que proporciona funciones de BigQuery.
La función BigQuery.insert permite escribir datos en una tabla de BigQuery. Devuelve
una promesa que se resuelve cuando la inserción se realiza correctamente o
se rechaza cuando se produce un error.
Cuando la inserción se realiza correctamente, la promesa se resuelve sin argumentos.
Cuando la inserción falla, la promesa se rechaza con una lista de objetos que contienen el motivo del error y, posiblemente, un objeto de fila si se produce un error. Es posible que una parte de la solicitud se complete correctamente, mientras que otras no. En este caso, la promesa se rechaza con una lista de errores para cada fila con un objeto de fila para ayudar a distinguir qué filas se insertaron (consulta los ejemplos de errores a continuación). Consulta la documentación de BigQuery sobre mensajes de error para obtener más información.
Sintaxis
BigQuery.insert(connectionInfo, rows[, options]);
| Parámetro | Tipo | Descripción |
|---|---|---|
connectionInfo |
object |
Define la información necesaria para conectarse a una tabla de BigQuery. Hay un parámetro opcional y dos obligatorios:
|
rows |
Matriz | Son las filas que se insertarán en la tabla. |
options |
object | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: ignoreUnknownValues y skipInvalidRows. Se ignoran las claves de opción desconocidas. (consulta Opciones, más abajo). |
| Parámetro | Tipo | Descripción |
|---|---|---|
ignoreUnknownValues |
boolean | Si se establece en true, se aceptan las filas que contienen valores
que no coinciden con el esquema. Los valores desconocidos se ignoran. La configuración predeterminada es false. |
skipInvalidRows |
boolean | Si se establece como true, se insertan todas las filas válidas de una solicitud,
incluso si existen filas no válidas. La configuración predeterminada es false. |
Un error de módulo no encontrado significa que es probable que tu contenedor de servidor esté ejecutando una versión anterior de nuestra imagen que aún no incluía el módulo de BigQuery. Vuelve a implementar tu contenedor de servidor con la misma configuración usando nuestra secuencia de comandos de implementación. El módulo se incluirá automáticamente una vez que finalice la operación.
Un error que no es de inserción suele tener un objeto de error con una clave reason:
[{reason: 'invalid'}]
Un error de inserción puede contener varios objetos de error con un array errors
y un objeto row. A continuación, se muestra un ejemplo de una respuesta de error que se genera cuando se insertan dos filas y solo una de ellas tiene un error:
[
{
"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
}
}
]
Ejemplo
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);
Permisos asociados
Firestore
Devuelve un objeto que proporciona funciones de Firestore.
Esta API solo admite Firestore en modo nativo, no Firestore en modo Datastore. Además, la API solo admite el uso de la base de datos predeterminada.
Firestore.read
La función Firestore.read lee datos de un documento de Firestore y
devuelve una promesa que se resuelve en un objeto que contiene dos claves:
id y data. Si el documento no existe, la promesa se rechaza con un
objeto que contiene una clave reason igual a not_found.
Sintaxis
Firestore.read(path[, options]);
| Parámetro | Tipo | Descripción |
|---|---|---|
path |
string | Es la ruta de acceso al documento o a la colección. No debe comenzar ni terminar con una "/". |
options |
object | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: projectId, disableCache y transaction. Se ignoran las claves de opción desconocidas. (consulta Opciones, más abajo). |
| Parámetro | Tipo | Descripción |
|---|---|---|
projectId |
string | Opcional. Es el ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno
GOOGLE_CLOUD_PROJECT, siempre que el
parámetro de configuración de permisos
access_firestore
para el ID del proyecto esté establecido en * o
GOOGLE_CLOUD_PROJECT. Si el contenedor de servidor se ejecuta en Google Cloud, GOOGLE_CLOUD_PROJECT ya estará configurado con el ID del proyecto de Google Cloud. |
disableCache |
boolean | Opcional. Determina si se debe inhabilitar la caché o no. El almacenamiento en caché está habilitado de forma predeterminada, lo que almacenará en caché los resultados durante la solicitud. |
transaction |
string | Opcional. Es el valor que se recupera de Firestore.runTransaction(). Marca la operación que se usará dentro de una transacción. |
Ejemplo
const Firestore = require('Firestore');
return Firestore.read('collection/document', {
projectId: 'gcp-cloud-project-id',
}).then((result) => result.data.key, () => undefined);
Firestore.write
La función Firestore.write escribe datos en un documento o una colección de
Firestore. Si la ruta corresponde a una colección, se creará un documento con un
ID generado de forma aleatoria. Si la ruta de acceso es a un documento y este no existe, se creará. Esta API devuelve una promesa que se resuelve con el ID del
documento agregado o modificado. Si se usa la opción de transacción, la API aún
devuelve una promesa, pero no contendrá el ID, ya que las operaciones de escritura se realizan por lotes.
Sintaxis
Firestore.write(path, input[, options]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
path |
string | Es la ruta de acceso al documento o a la colección. No debe comenzar ni terminar con una "/". |
input |
object | Es el valor que se escribirá en el documento. Si se establece la opción de combinación, la API combinará las claves de la entrada en el documento. |
options |
object | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: projectId, merge y transaction. Se ignoran las claves de opción desconocidas. (consulta Opciones, más abajo). |
| Parámetro | Tipo | Descripción |
|---|---|---|
projectId |
string | Opcional. Es el ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno
GOOGLE_CLOUD_PROJECT, siempre que el
parámetro de configuración de permisos
access_firestore
para el ID del proyecto esté establecido en * o
GOOGLE_CLOUD_PROJECT. Si el contenedor de servidor se ejecuta en Google Cloud, GOOGLE_CLOUD_PROJECT ya estará configurado con el ID del proyecto de Google Cloud. |
merge |
boolean | Opcional. Si se establece en
true, combina las claves de la entrada en el documento;
de lo contrario, el método anulará todo el documento. La configuración predeterminada es false. |
transaction |
string | Opcional. Es el valor que se recupera de Firestore.runTransaction(). Marca la operación que se usará dentro de una transacción. |
Ejemplo
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 función Firestore.query consulta la colección dada y devuelve una
promesa que se resuelve en un array de documentos de Firestore que coinciden con las condiciones de la consulta. El objeto de documento de Firestore es el mismo que se indicó anteriormente en
Firestore.read. Si no hay documentos que coincidan con las condiciones de la consulta,
la promesa que se devuelve se resolverá en un array vacío.
Sintaxis
Firestore.query(collection, queryConditions[, options]);
| Parámetro | Tipo | Descripción |
|---|---|---|
collection |
string | La ruta de acceso a la colección. No debe comenzar ni terminar con una "/". |
queryConditions |
Matriz | Un array de condiciones de consulta. Cada consulta se presenta en forma de un
array con tres valores: key,
operator y expectedValue. P. ej.:
[[‘id’, ‘<’, ‘5’], [‘state’, ‘==’, ‘CA’]]. Las condiciones se unen con AND para crear el resultado de la consulta. Consulta los operadores de consulta de Firestore para obtener una lista de los operadores de consulta compatibles. |
options |
object | Opciones de solicitud opcionales. Las opciones compatibles son las siguientes: projectId, disableCache, limit y transaction. Se ignoran las claves de opción desconocidas. (consulta Opciones, más abajo). |
| Parámetro | Tipo | Descripción |
|---|---|---|
projectId |
string | Opcional. Es el ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno
GOOGLE_CLOUD_PROJECT, siempre que el
parámetro de configuración de permisos
access_firestore
para el ID del proyecto esté establecido en * o
GOOGLE_CLOUD_PROJECT. Si el contenedor de servidor se ejecuta en Google Cloud, GOOGLE_CLOUD_PROJECT ya estará configurado con el ID del proyecto de Google Cloud. |
disableCache |
boolean | Opcional. Determina si se debe inhabilitar la caché o no. El almacenamiento en caché está habilitado de forma predeterminada, lo que almacenará en caché los resultados durante la solicitud. |
limit |
número | Opcional. Cambia la cantidad máxima de resultados que devuelve la consulta; el valor predeterminado es 5. |
transaction |
string | Opcional. Es el valor que se recupera de Firestore.runTransaction(). Marca la operación que se usará dentro de una transacción. |
Ejemplo
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 función Firestore.runTransaction permite que el usuario lea y escriba
de forma atómica en Firestore. Si se produce una escritura simultánea o algún otro conflicto de transacciones, se volverá a intentar la transacción hasta dos veces. Si falla después de tres intentos en total, la API rechazará la solicitud con un error. Esta API devuelve
una promesa que se resuelve en un array de IDs de documentos para cada operación de escritura
si la transacción se realiza correctamente, y se rechazará con el error si falla.
Sintaxis
Firestore.runTransaction(callback[, options]);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
callback |
function | Es una devolución de llamada que se invoca con un ID de transacción de cadena. El ID de transacción se puede pasar a las llamadas a la API de lectura, escritura o consulta. Esta función de devolución de llamada debe mostrar una promesa. La devolución de llamada puede ejecutarse hasta tres veces antes de fallar. |
options |
object | Opciones de solicitud opcionales. La única opción admitida es projectId. Se ignoran las claves de opción desconocidas. (consulta Opciones, más abajo). |
| Parámetro | Tipo | Descripción |
|---|---|---|
projectId |
string | Opcional. Es el ID del proyecto de Google Cloud Platform. Si se omite, el
projectId se recupera de la variable de entorno
GOOGLE_CLOUD_PROJECT, siempre que el
parámetro de configuración de permisos
access_firestore
para el ID del proyecto esté establecido en * o
GOOGLE_CLOUD_PROJECT. Si el contenedor de servidor se ejecuta en Google Cloud, GOOGLE_CLOUD_PROJECT ya estará configurado con el ID del proyecto de Google Cloud. |
Ejemplo
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);
Los errores disponibles en cada función de Firestore se rechazarán con un objeto
que contenga una clave reason:
Firestore.read(...).then(onSuccess, (error) => {
if (error.reason === 'unknown') {
// Handle the unknown error here.
}
});
Los motivos de error pueden contener, entre otros, los códigos de error de la API de REST de Firestore.
Permisos asociados
JSON
Devuelve un objeto que proporciona funciones de JSON.
La función parse() analiza una cadena JSON para construir el valor o el objeto
que describe la cadena. Si no se puede analizar el valor (p.ej., JSON con formato incorrecto),
la función devolverá undefined. Si el valor de entrada no es una cadena, se forzará a que lo sea.
La función stringify() convierte la entrada en una cadena JSON. Si no se puede analizar el valor (p.ej., el objeto tiene un ciclo), el método devolverá undefined.
Ejemplo
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'});
Sintaxis
JSON.parse(stringInput);
JSON.stringify(value);
Permisos asociados
Ninguno
Math
Es un objeto que proporciona funciones Math.
Sintaxis
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);
Parámetros
Los parámetros de las funciones matemáticas se convierten en números.
Permisos asociados
Ninguno
Messages
Las siguientes APIs funcionan juntas para permitir el paso de mensajes entre diferentes partes de un contenedor.
addMessageListener
Agrega una función que escucha un mensaje de un tipo en particular. Cuando se envía un mensaje
de ese tipo con la API de sendMessage (por lo general, a través de una etiqueta), la
devolución de llamada se ejecutará de forma síncrona. La devolución de llamada se ejecuta con dos parámetros:
messageType:stringmessage:Object
Si la devolución de llamada se agrega en un cliente, esta recibirá mensajes en todos los eventos que cree ese cliente. Si la devolución de llamada debe recibir mensajes
solo de un evento determinado, vincula esta API al evento con bindToEvent
en la función onStart de la API de runContainer. Consulta el ejemplo.
Sintaxis
const addMessageListener = require('addMessageListener');
addMessageListener('send_pixel', (messageType, message) => {
// This will be run whenever something sends a 'send_pixel' message.
});
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
messageType |
string | Es el tipo de mensaje que se debe escuchar. Si el valor no es una cadena, se forzará para que lo sea. |
callback |
function | Es la devolución de llamada que se ejecutará cuando se envíe un mensaje del tipo de mensaje aplicable. Si la devolución de llamada no es una función, la API no hará nada. |
Ejemplo
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.
});
}
});
});
Permisos asociados
Requiere el permiso use_message. El permiso debe configurarse para permitir,
como mínimo, lo siguiente:
- Es un tipo de mensaje con un
Usagedelistenolisten_and_send.
hasMessageListener
Devuelve verdadero si se agregó un objeto de escucha de mensajes para el tipo de mensaje determinado. De lo contrario, devuelve false.
Sintaxis
const hasMessageListener = require('hasMessageListener');
hasMessageListener('send_pixel');
Permisos asociados
Ninguno
sendMessage
Envía un mensaje del tipo especificado a un objeto de escucha registrado. Esto se puede usar para enviar mensajes de una etiqueta al cliente que ejecutó el contenedor.
Sintaxis
const sendMessage = require('sendMessage');
sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
messageType |
string | Es el tipo de mensaje que se enviará. Si el valor no es una cadena, se forzará a que lo sea. |
message |
object | Es el mensaje que se enviará. Si el mensaje no es un objeto, la API no hará nada. |
Permisos asociados
Requiere el permiso use_message. El permiso debe configurarse para permitir,
como mínimo, lo siguiente:
- Es un tipo de mensaje con un
Usagedelisten_and_sendosend.
Object
Devuelve un objeto que proporciona métodos Object.
El método keys() proporciona el comportamiento de la biblioteca estándar
Object.keys(). Devuelve un array de los nombres de las propiedades enumerables de un objeto determinado en el mismo orden que un bucle for...in.... Si el valor de entrada no es un objeto, se forzará para que lo sea.
El método values() proporciona el comportamiento de Object.values() de la biblioteca estándar. Devuelve un array de los valores de propiedad enumerables propios de un objeto determinado
en el mismo orden que un bucle for...in.... Si el valor de entrada no es un
objeto, se forzará a un objeto.
El método entries() proporciona el comportamiento de la biblioteca estándar Object.entries(). Devuelve un array de pares [key, value] de propiedades enumerables propias de un objeto determinado en el mismo orden que un bucle for...in.... Si el
valor de entrada no es un objeto, se forzará a un objeto.
El método freeze() proporciona el comportamiento Object.freeze() de la biblioteca estándar. Un objeto congelado ya no se puede cambiar. Congelar un objeto evita que se le agreguen propiedades nuevas, que se quiten las propiedades existentes y que se cambien los valores de las propiedades existentes. freeze() devuelve el
mismo objeto que se pasó. Un argumento primitivo o nulo se tratará como
si fuera un objeto inmovilizado y se devolverá.
El método delete() proporciona el comportamiento del operador de eliminación de la biblioteca estándar. Quita la clave proporcionada del objeto, a menos que este esté inmovilizado.
Al igual que el operador delete de la biblioteca estándar, devuelve true si el primer valor de entrada (objectInput) es un objeto que no está inmovilizado, incluso si el segundo valor de entrada (keyToDelete) especifica una clave que no existe. Devuelve false en todos los demás casos. Sin embargo, se diferencia del operador de eliminación de la biblioteca estándar de las siguientes maneras:
keyToDeleteno puede ser una cadena delimitada por puntos que especifique una clave anidada.- No se puede usar
delete()para quitar elementos de un array. delete()no se puede usar para quitar ninguna propiedad del alcance global.
Sintaxis
Object.keys(objectInput)
Object.values(objectInput)
Object.entries(objectInput)
Object.freeze(objectInput)
Object.delete(objectInput, keyToDelete)
Parámetros
Object.keys
| Parámetro | Tipo | Descripción |
|---|---|---|
| objectInput | cualquiera | Es el objeto cuyas claves se enumerarán. Si la entrada no es un objeto, se forzará para que lo sea. |
Object.values
| Parámetro | Tipo | Descripción |
|---|---|---|
| objectInput | cualquiera | Es el objeto cuyos valores se enumerarán. Si la entrada no es un objeto, se forzará para que lo sea. |
Object.entries
| Parámetro | Tipo | Descripción |
|---|---|---|
| objectInput | cualquiera | Es el objeto cuyos pares clave-valor se enumerarán. Si la entrada no es un objeto, se forzará para que lo sea. |
Object.freeze
| Parámetro | Tipo | Descripción |
|---|---|---|
| objectInput | cualquiera | Es el objeto que se inmovilizará. Si la entrada no es un objeto, se tratará como un objeto inmovilizado. |
Object.delete
| Parámetro | Tipo | Descripción |
|---|---|---|
| objectInput | cualquiera | Es el objeto cuya clave se borrará. |
| keyToDelete | string | Es la clave de nivel superior que se borrará. |
Ejemplo
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
Devuelve un objeto que proporciona métodos para interactuar con promesas.
Las promesas son funcionalmente equivalentes a las promesas de JavaScript. Cada instancia tiene tres métodos que devuelven una promesa que permite realizar más acciones cuando se resuelve una promesa:
.then(): Controla los casos resueltos y rechazados. Toma dos devoluciones de llamada como parámetros: una para el caso de éxito y otra para el caso de error..catch(): Solo se encarga de los casos rechazados. Toma una devolución de llamada como parámetro..finally(): Proporciona una forma de ejecutar el código, ya sea que la promesa se haya resuelto o rechazado. Toma una devolución de llamada como parámetro que se invoca sin argumento.
Una variable que devuelve una promesa es igual al valor resuelto de la promesa o a
false si se rechaza la promesa.
Ejemplo
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
Devuelve una promesa que puede hacer lo siguiente:
- se resuelve cuando se resuelven todas las entradas o
- rechaza cuando cualquiera de las entradas rechaza
Sintaxis
Promise.all(inputs);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
inputs |
Matriz | Un array de valores o promesas. Si una entrada no es una promesa, se pasa como si fuera el valor resuelto de una promesa. Arroja un error si la entrada no es un array. |
Ejemplo
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: ''}]
});
Permisos asociados
Ninguno
Promise.create
Crea una promesa que es funcionalmente equivalente a una promesa de JavaScript.
Sintaxis
Promise.create(resolver);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
resolver |
function | Es una función que se invoca con dos funciones: resolve y reject. La promesa que se muestra se resolverá o rechazará cuando se invoque el parámetro correspondiente. Arroja un error si el agente de resolución no es una función. |
Ejemplo
const Promise = require('Promise');
return Promise.create((resolve, reject) => {
// Do asynchronous work that eventually calls resolve() or reject()
});
Permisos asociados
Ninguno
APIs de prueba
Estas APIs funcionan con pruebas de JavaScript de zona de pruebas para compilar pruebas de plantillas personalizadas en Google Tag Manager. Estas APIs de prueba no necesitan una sentencia require(). [Obtén más información sobre las pruebas de plantillas personalizadas].
assertApi
Devuelve un objeto de comparador que se puede usar para realizar aserciones con fluidez sobre la API determinada.
Sintaxis
assertApi(apiName)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
apiName |
string | Es el nombre de la API que se debe verificar; es la misma cadena que se pasa a
require().
|
Matchers
Subject.wasCalled()Subject.wasNotCalled()Subject.wasCalledWith(...expected)Subject.wasNotCalledWith(...expected)
Ejemplos
assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');
assertThat
La API de assertThat se basa en el modelo de la biblioteca [Truth] de Google. Muestra un objeto que se puede usar para realizar aserciones con fluidez sobre el valor de un sujeto. Un error de aserción detendrá de inmediato la prueba y la marcará como fallida. Sin embargo,
un error en una prueba no afectará a otros casos de prueba.
Sintaxis
assertThat(actual, opt_message)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
actual |
cualquiera | Es el valor que se usará en las verificaciones fluidas. |
opt_message |
string | Es un mensaje opcional que se imprime si falla la aserción. |
Matchers
| Matcher | Descripción |
|---|---|
isUndefined() |
Confirma que el sujeto es undefined. |
isDefined() |
Confirma que el sujeto no es undefined. |
isNull() |
Confirma que el sujeto es null. |
isNotNull() |
Confirma que el sujeto no es null. |
isFalse() |
Confirma que el sujeto es false. |
isTrue() |
Confirma que el sujeto es true. |
isFalsy() |
Confirma que el sujeto es falso. Los valores falsos son
undefined, null, false,
NaN, 0 y '' (cadena vacía). |
isTruthy() |
Confirma que el sujeto es verdadero. Los valores falsos son
undefined, null, false,
NaN, 0 y '' (cadena vacía). |
isNaN() |
Confirma que el sujeto es el valor NaN. |
isNotNaN() |
Confirma que el sujeto es cualquier valor, excepto NaN. |
isInfinity() |
Confirma que el sujeto es infinito positivo o negativo. |
isNotInfinity() |
Confirma que el sujeto es cualquier valor, además de infinito positivo o negativo. |
isEqualTo(expected) |
Confirma que el sujeto es igual al valor dado. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
isNotEqualTo(expected) |
Confirma que el sujeto no es igual al valor dado. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
isAnyOf(...expected) |
Confirma que el sujeto es igual a uno de los valores dados. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
isNoneOf(...expected) |
Confirma que el sujeto no es igual a ninguno de los valores dados. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
isStrictlyEqualTo(expected) |
Confirma que el sujeto es estrictamente igual (===) al valor dado. |
isNotStrictlyEqualTo(expected) |
Confirma que el sujeto no es estrictamente igual (!==) al valor dado. |
isGreaterThan(expected) |
Confirma que el sujeto es mayor que (>) el valor dado en una comparación ordenada. |
isGreaterThanOrEqualTo(expected) |
Confirma que el sujeto es mayor o igual que (>=) el valor dado en una comparación ordenada. |
isLessThan(expected) |
Confirma que el sujeto es menor que (<) el valor
proporcionado en una comparación ordenada. |
isLessThanOrEqualTo(expected) |
Confirma que el sujeto es menor o igual que (<=)
el valor dado en una comparación ordenada. |
contains(...expected) |
Confirma que el sujeto es un array o una cadena que contiene todos los valores dados en cualquier orden. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
doesNotContain(...expected) |
Confirma que el sujeto es un array o una cadena que no contiene ninguno de los valores dados. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
containsExactly(...expected) |
Confirma que el sujeto es un array que contiene todos los valores dados en cualquier orden y ningún otro valor. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
doesNotContainExactly(...expected) |
Confirma que el sujeto es un array que contiene un conjunto de valores diferente de los valores dados en cualquier orden. Esta es una comparación de valores, no de referencias. El contenido de los objetos y los arrays se compara de forma recurrente. |
hasLength(expected) |
Confirma que el sujeto es un array o una cadena con la longitud dada. La aserción siempre falla si el valor no es un array o una cadena. |
isEmpty() |
Confirma que el sujeto es un array o una cadena vacía (longitud = 0). La aserción siempre falla si el valor no es un array o una cadena. |
isNotEmpty() |
Confirma que el sujeto es un array o una cadena que no está vacía (longitud > 0). La aserción siempre falla si el valor no es un array o una cadena. |
isArray() |
Confirma que el tipo del sujeto es un array. |
isBoolean() |
Confirma que el tipo del sujeto es un booleano. |
isFunction() |
Confirma que el tipo del sujeto es una función. |
isNumber() |
Confirma que el tipo del sujeto es un número. |
isObject() |
Confirma que el tipo del sujeto es un objeto. |
isString() |
Confirma que el tipo del sujeto sea una cadena. |
Ejemplos
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
Falla de inmediato la prueba actual y muestra el mensaje proporcionado, si lo hay.
Sintaxis
fail(opt_message);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
opt_message |
string | Texto opcional del mensaje de error. |
Ejemplo
fail('This test has failed.');
mock
La API de mock te permite anular el comportamiento de las APIs de la zona de pruebas. La API de simulación se puede usar de forma segura en el código de la plantilla, pero solo funciona en el modo de prueba.
Los objetos simulados se restablecen antes de que se ejecute cada prueba.
Sintaxis
mock(apiName, returnValue);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
apiName |
string | Es el nombre de la API que se simulará; es la misma cadena que se pasa a
require(). |
returnValue |
cualquiera | Es el valor que se muestra para la API o una función a la que se llama en lugar de la
API. Si returnValue es una función, se llama a esa función en lugar de la API de zona de pruebas. Si returnValue es cualquier otro elemento que no sea una función, se devuelve ese valor en lugar de la API de zona de pruebas. |
Ejemplos
mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
onSuccess();
});
mockObject
La API de mockObject te permite anular el comportamiento de las APIs de la zona de pruebas que
devuelven un objeto. La API se puede usar de forma segura en el código de la plantilla, pero solo funciona en el modo de prueba. Los objetos simulados se restablecen antes de que se ejecute cada prueba.
Sintaxis
mockObject(apiName, objectMock);
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
apiName |
string | Es el nombre de la API que se simulará; es la misma cadena que se pasa a
require(). |
objectMock |
object | Es el valor que se muestra para la API o una función a la que se llama en lugar de la API. Debe ser un objeto. |
Ejemplos
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
Ejecuta el código de la plantilla, es decir, el contenido de la pestaña Código, en el entorno de pruebas actual con un objeto de datos de entrada determinado.
Sintaxis
runCode(data)
Parámetros
| Parámetro | Tipo | Descripción |
|---|---|---|
data |
object | Es el objeto de datos que se usará en la prueba. |
Valor que se muestra
Devuelve el valor de una variable para las plantillas de variables; devuelve undefined para todos los demás tipos de plantillas.
Ejemplo
runCode({field1: 123, field2: 'value'});