APIs de plantillas personalizadas

APIs principales

Estas APIs funcionan con JavaScript de zona de pruebas para compilar plantillas personalizadas en Google en Tag Manager. Cada API se agrega con una sentencia require(), p.ej.:

const myAPI = require('myAPI');

addConsentListener

Registra una función de escucha para que se ejecute cuando el estado del consentimiento especificado cambios de tipo.

El objeto de escucha específico se invocará cada vez que el estado del objeto de escucha especificado el tipo de consentimiento cambia de denegado a concedido o de concedido a denegado. Un consentimiento tipo sin estado se considera otorgado, por lo que no se llamará al objeto de escucha si un el tipo de consentimiento sin establecer se actualiza a concedido. Las funciones de escucha estarán a cargo de asegurarse de que su código se ejecute la cantidad adecuada de veces.

Ejemplo:

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

Sintaxis

addConsentListener(consentType, listener)

Parámetros

Parámetro Tipo Descripción
consentType string El tipo de consentimiento en el que se detectarán los cambios de estado.
listener function La función que se ejecutará cuando el estado del tipo de consentimiento especificado cambios.

Cuando se invoca un objeto de escucha, se le pasa el tipo de consentimiento que se envía y el nuevo valor de ese tipo de consentimiento:

Parámetro Tipo Descripción
consentType string El tipo de consentimiento que se modificará.
granted booleano Un valor booleano que es verdadero si se cambia el tipo de consentimiento especificado que se debe otorgar.

Permisos asociados

El permiso access_consent con acceso de lectura para el tipo de consentimiento.


addEventCallback

La API de addEventCallback te permite registrar una función de devolución de llamada que invocarse al final de un evento. Se invocará la devolución de llamada cuando se hayan se ejecutaron las etiquetas del evento o si se alcanza el tiempo de espera de un evento en la página. 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.

Sintaxis

addEventCallback(callback)

Parámetros

Parámetro Tipo Descripción
callback function 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 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 las 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 de etiqueta que se configuraron en ella.

Ejemplo

addEventCallback(function(ctid, eventData) {
  logToConsole('Tag count for container ' + ctid + ': ' + eventData['tags'].length);
});

Permisos asociados

read_event_metadata


aliasInWindow

La API de aliasInWindow te permite crear un alias (p.ej., window.foo = window.bar), que ayuda a admitir ciertas etiquetas que requieren alias. Asigna el valor en el objeto window que se encuentra en fromPath a la clave en window en toPath. Muestra true si se realiza correctamente, false. de lo contrario.

Sintaxis

aliasInWindow(toPath, fromPath)

Parámetros

Parámetro Tipo Descripción
toPath string Una ruta separada por puntos al objeto window, en la que un valor a la que se debe copiar. Todos los componentes desde la ruta de acceso hasta el último componente ya debe existir en el objeto window.
fromPath string Una ruta de acceso separada por puntos en window al valor que se copiará. Si el valor no existe, la operación fallará.

Ejemplo

aliasInWindow('foo.bar', 'baz.qux')

Permisos asociados

access_globals es obligatorio para toPath y fromPath. toPath requiere acceso de escritura, fromPath requiere acceso de lectura.


callInWindow

Te permite llamar a funciones desde una ruta fuera del objeto window, en una política. y controlada. Llama a la función en la ruta de acceso determinada en window con la argumentos y muestra el valor. Si el tipo de datos que se muestra no se puede asignar directamente un tipo compatible con JavaScript de zona de pruebas, se mostrará undefined. El ocho tipos admitidos en el JavaScript de la zona de pruebas son null, undefined, boolean, number, string, Array, Object y function. Si el valor proporcionado ruta de acceso no existe o no hace referencia a una función, se undefined que se devuelven.

Sintaxis

callInWindow(pathToFunction, argument [, argument2,... argumentN])

Parámetros

Parámetro Tipo Descripción
pathToFunction string Una ruta de acceso separada por puntos a la función en window para llamada.
args * Argumentos que se pasarán a la función.

Permisos asociados

access_globals con el permiso execute habilitado.


callLater

Programa una llamada a una función para que ocurra de forma asíncrona. La función será se llama después de que se devuelve el código actual. Esto equivale a lo siguiente: setTimeout(<function>, 0)

Sintaxis

callLater(function)

Parámetros

Parámetro Tipo Descripción
function function La función a la que se llamará.

copyFromDataLayer

Devuelve el valor asignado actualmente a la clave determinada en la capa de datos: la valor que se encuentra en la clave determinada si es un objeto, una función o un tipo primitivo literal, o undefined de lo contrario.

Sintaxis

copyFromDataLayer(key[, dataLayerVersion])

Parámetros

Parámetro Tipo Descripción
key string La clave en el formato “a.b.c”.
dataLayerVersion número Los datos opcionales versión de la capa. El valor predeterminado es 2. No se recomienda usa el valor 1.

Permisos asociados

read_data_layer


copyFromWindow

Copia una variable del objeto window. Si el valor de window no se puede asignado directamente a un tipo admitido en el código JavaScript de zona de pruebas, undefined se que se devuelven. Los ocho tipos admitidos en JavaScript de zona de pruebas son null, undefined, boolean, number, string, Array, Object y function. Muestra el valor recuperado (y forzado).

Sintaxis

copyFromWindow(key)

Parámetros

Parámetro Tipo Descripción
key string La clave en window de la que se copiará el valor.

Permisos asociados

access_globals


createArgumentsQueue

Crea una cola que se propaga con objetos de argumento para admitir etiquetas. soluciones que lo requieren.

Crea una función en alcance global (es decir, window) con el argumento fnKey. (misma semántica que createQueue). Después de crear la función, esta API Crea un array en window (si aún no existe) con arrayKey. argumento.

Cuando se llama a la función creada en fnKey, se envían sus argumentos. en el array creado con arrayKey. El valor de retorno de la API es el función creada en fnKey.

Esta función requiere el parámetro de configuración de lectura y escritura para fnKey y arrayKey activados el permiso access_globals.

Ejemplo:

const gtag = createArgumentsQueue('gtag', 'dataLayer');
gtag('set', {'currency': 'USD'});

Sintaxis

createArgumentsQueue(fnKey, arrayKey)

Parámetros

Parámetro Tipo Descripción
fnKey string La ruta de acceso de window en la que se establece la función, si lo hace que todavía no existen. Este argumento admite la notación de puntos estándar. Si el botón la ruta de acceso de la clave no existe, se arroja una excepción. Es decir, si fnKey es 'one.two', arrojará una excepción.
arrayKey string La ruta de acceso de window en la que se establece el array (si no lo hace) ya existen. Este argumento admite la notación de puntos estándar. Si el botón la ruta de acceso de la clave no existe, se arroja una excepción. Es decir, si arrayKey es 'one.two' y no hay un objeto global llamado 'one', arrojará un excepción.

Permisos asociados

access_globals


createQueue

Crea un array en window (si aún no existe) y muestra un que enviará los valores a ese array.

Esta función requiere el parámetro de configuración de lectura y escritura para arrayKey en el access_globals.

Ejemplo:

const dataLayerPush = createQueue('dataLayer');
dataLayerPush({'currency': 'USD'}, {'event': 'myConversion'});

Sintaxis

createQueue(arrayKey)

Parámetros

Parámetro Tipo Descripción
arrayKey string La clave en window en la que se establece el array, en caso de que no sea así ya existen. Este argumento admite la notación de puntos estándar. Si el botón la ruta de acceso de la clave no existe, se arroja una excepción. Por ejemplo, arrayKey es 'one.two' y no hay un objeto global llamado 'one', arrojará un excepción.

Permisos asociados

access_globals


decodeUri

Decodifica cualquier carácter codificado en el URI proporcionado. Muestra una string que representa el URI decodificado. Muestra undefined cuando se proporciona con un valor no válido entrada.

Ejemplo:

const decode = require('decodeUri');

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

Sintaxis

decodeUri(encoded_uri)

Parámetros

Parámetro Tipo Descripción
encoded_uri string Un URI codificado por encodeUri() o por otros medios.

Permisos asociados

Ninguno


decodeUriComponent

Decodifica cualquier carácter codificado en el componente de URI proporcionado. Devuelve un string que representa el componente del URI decodificado. Muestra undefined cuando con entradas no válidas.

Ejemplo:

const decode = require('decodeUriComponent');

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

Sintaxis

decodeUriComponent(encoded_uri_component)

Parámetros

Parámetro Tipo Descripción
encoded_uri_component string Un componente de URI que codificó encodeUriComponent() o por otros medios.

Permisos asociados

Ninguno


encodeUri

Muestra un identificador uniforme de recursos (URI) codificado con un escape especial caracteres. Muestra una string que representa la cadena proporcionada codificada como un URI. Muestra undefined cuando se proporciona con una entrada no válida (un subrogado único).

Ejemplo:

sendPixel('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 un escape especial caracteres. Muestra una string que representa la cadena proporcionada codificada como un URI. Muestra undefined cuando se proporciona con una entrada no válida (un subrogado único).

Ejemplo:

sendPixel('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


fromBase64

La API de fromBase64 te permite decodificar strings de su base64 para la representación de los datos. Muestra undefined cuando se proporciona con una entrada no válida.

Sintaxis

fromBase64(base64EncodedString)

Parámetros

Parámetro Tipo Descripción
base64EncodedString string String codificada en base64.

Ejemplo

const fromBase64 = require('fromBase64');

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

Permisos asociados

Ninguno


generateRandom

Muestra un número aleatorio (número entero) dentro del rango especificado.

Sintaxis

generateRandom(min, max)

Parámetros

Parámetro Tipo Descripción
min número Valor potencial mínimo del número entero mostrado.
max número Valor potencial máximo del número entero que se muestra.

Permisos asociados

Ninguno


getContainerVersion

Muestra un objeto que contiene datos sobre el contenedor actual. El valor devuelto tiene los siguientes campos:

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

Ejemplo

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

Sintaxis

getContainerVersion();

Permisos asociados

read_container_data


getCookieValues

Muestra los valores de todas las cookies con el nombre dado.

Sintaxis

getCookieValues(name[, decode])

Parámetros

Parámetro Tipo Descripción
name string Nombre de la cookie.
decode booleano Controla si los valores de las cookies se deben decodificar con JavaScript decodeURIComponent() La configuración predeterminada es true.

Permisos asociados

get_cookies


getQueryParameters

Muestra el primer o todos los parámetros del queryKey de la URL actual. Muestra el primer valor de queryKey o un array de valores de la queryKey

Sintaxis

getQueryParameters(queryKey[, retrieveAll])

Parámetros

Parámetro Tipo Descripción
queryKey string La clave para leer de los parámetros de consulta.
retrieveAll booleano Indica si se deben recuperar todos los valores.

Por ejemplo, si la URL actual es https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo y, luego, sigue estos pasos:

  • getQueryParameters('var') == 'foo'
  • getQueryParameters('var', false) == 'foo'
  • getQueryParameters('var', null) == 'foo'
  • getQueryParameters('var', true) == ['foo', 'foo2', 'foo']

Permisos asociados

get_url debe permitir el componente query y debe especificar el queryKey en las claves de consulta permitidas (o permitir cualquier clave de consulta).


getReferrerQueryParameters

La API de getReferrerQueryParameters actúa de la misma manera que getQueryParameters, excepto que actúa sobre la URL de referencia y no en la URL actual. Muestra el primer o todos los parámetros del queryKey de la URL de referencia especificada Devuelve el primer de queryKey o un array de valores de queryKey.

Sintaxis

getReferrerQueryParameters(queryKey[, retrieveAll])

Parámetros

Parámetro Tipo Descripción
queryKey string La clave para leer de los parámetros de consulta.
retrieveAll booleano Indica si se deben recuperar todos los valores.

Por ejemplo, si la URL de referencia es https://example.com/path?var=foo&var1=foo1&var=foo2&var=foo y, luego, sigue estos pasos:

  • getReferrerQueryParameters('var') == 'foo'
  • getReferrerQueryParameters('var', false) == 'foo'
  • getReferrerQueryParameters('var', null) == 'foo'
  • getReferrerQueryParameters('var', true) == ['foo', 'foo2', 'foo']

Permisos asociados

get_referrer debe permitir el componente query y debe especificar la queryKey en las claves de consulta permitidas (o puedes permitir cualquier clave de consulta).


getReferrerUrl

A partir de un tipo de componente, la API lee el objeto del documento para la URL de referencia y devuelve una cadena que representa una parte de la URL de referencia. Si no se incluye ningún componente especificada, se devuelve la URL de referencia completa.

Sintaxis

getReferrerUrl([component])

Parámetros

Parámetro Tipo Descripción
component string El componente que se va a mostrar desde la URL. Puede ser una de las siguientes opciones: protocol, host y port path, query y extension. Si component es undefined, null o no coincide con uno de estos componentes, la URL completa será que se devuelven.

Permisos asociados

get_referrer debe permitir el componente query y debe especificar la queryKey en las claves de consulta permitidas (o puedes permitir cualquier clave de consulta).


getTimestamp

Obsoleto. Prefiere getTimestampMillis.

Muestra un número que representa el tiempo actual en milisegundos desde Unix epoch, como lo muestra Date.now().

Sintaxis

getTimestamp();

Permisos asociados

Ninguno


getTimestampMillis

Muestra un número que representa el tiempo actual en milisegundos desde Unix epoch, como lo muestra Date.now().

Sintaxis

getTimestampMillis();

Permisos asociados

Ninguno


getType

Muestra una string que describe el tipo del valor determinado. A diferencia de typeof, getType diferencia entre array y object.

Sintaxis

getType(data.someField)

Notas

La siguiente tabla enumera las cadenas mostradas para cada valor de entrada.

Valor de entrada Resultado
undefined 'sin definir'
null 'null' [null]
true "booleano"
12 'número'
'string' 'cadena'
{ a: 3 } "object"
[ 1, 3 ] "array"
(x) => x + 1 función

Permisos asociados

Ninguno


getUrl

Muestra una string que representa toda o una parte de la URL actual, según un tipo de componente y algunos parámetros de configuración.

Sintaxis

getUrl(component)

Parámetros

Parámetro Tipo Descripción
component string El componente que se va a mostrar desde la URL. Debe ser uno de los siguientes: protocol, host y port path, query, extension, fragment Si el componente es undefined, null, o no coincide con uno de estos componentes, el Se mostrará el valor href completo.

Permisos asociados

get_url


gtagSet

Envía un comando gtag set a la capa de datos para que se procese lo antes posible. posible después de que finalicen el evento actual y las etiquetas que activó (o se alcanza el tiempo de espera de procesamiento de la etiqueta). La actualización está garantizada se procesarán en este contenedor antes que los elementos en cola en la capa de datos en la fila.

Por ejemplo, si lo llama una etiqueta activada en Inicialización de consentimiento, la actualización se aplicará antes de que se procese el evento de inicialización. Ejemplos sería ads_data_redaction establecerse en true o false o url_passthrough. se establezca en true o false.

Ejemplos:

const gtagSet = require('gtagSet');

gtagSet({
  'ads_data_redaction': true,
  'url_passthrough': true,
});

Sintaxis

gtagSet(object)

Parámetros

Parámetro Tipo Descripción
Object objeto Un objeto que actualiza el estado global de las propiedades que lo contienen.

Permisos asociados

write_data_layer verifica el permiso de escritura en dataLayer para todos las claves especificadas. Si la entrada a gtagSet es un objeto sin formato, la API verificará para el permiso de escritura a todas las claves acopladas dentro de ese objeto, p.ej., para gtagSet({foo: {bar: 'baz'}}), la API verificará la escritura permiso a foo.bar.

Si la entrada a gtagSet es una clave y algún valor de objeto no plano, la API verificar el permiso de escritura para esa clave, p.ej., para gtagSet('abc', true) , la API verificará el permiso de escritura en 'abc'.

Ten en cuenta que, si hay un ciclo en el objeto de entrada, solo las claves antes de se verificará el mismo objeto.


injectHiddenIframe

Agrega un iframe invisible a la página.

Las devoluciones de llamada se proporcionan como instancias de función y se unen en JavaScript. funciones que las llaman.

Sintaxis

injectHiddenIframe(url, onSuccess)

Parámetros

Parámetro Tipo Descripción
url string La URL que se usará como valor del elemento src del iframe .
onSuccess function Se llama cuando el fotograma se carga correctamente.

Permisos asociados

inject_hidden_iframe


injectScript

Agrega una etiqueta de secuencia de comandos a la página para cargar la URL dada de forma asíncrona. El las devoluciones de llamada se proporcionan como instancias de función y se unen en JavaScript funciones que las llaman.

Sintaxis

injectScript(url, onSuccess, onFailure[, cacheToken])

Parámetros

Parámetro Tipo Descripción
url string La dirección de la secuencia de comandos que se insertará.
onSuccess function Se llama cuando la secuencia de comandos se carga correctamente.
onFailure function Se llama cuando no se puede cargar la secuencia de comandos.
cacheToken string Cadena opcional que se usa para indicar que la URL determinada debe almacenarse en caché. Si se especifica este valor, solo se creará un elemento de script para solicitar el código JavaScript. Cualquier intento adicional de carga hará que el usuario los métodos onSuccess y onFailure dados en cola hasta que se cargue la secuencia de comandos.

Permisos asociados

inject_script


isConsentGranted

Muestra el valor true si se otorga el tipo de consentimiento especificado.

El consentimiento para un tipo de consentimiento específico se considera otorgado si el consentimiento El tipo se estableció como “granted”. o no está establecido. Si el tipo de consentimiento se establece en cualquier otro valor que se considerará no otorgado.

La interfaz de usuario de Tag Manager para la configuración de etiquetas ofrece la opción de siempre fuego. Si una etiqueta con la opción "Siempre activada" usa esta API, se considera el consentimiento otorgada y se mostrará true, independientemente del estado real de consentimiento.

Ejemplo:

const isConsentGranted = require('isConsentGranted');

if (isConsentGranted('ad_storage')) {
  sendFullPixel();
} else {
  sendPixelWithoutCookies();
}

Sintaxis

isConsentGranted(consentType)

Parámetros

Parámetro Tipo Descripción
consentType string Es el tipo de consentimiento del que se debe verificar el estado.

Permisos asociados

El permiso access_consent con acceso de lectura para el tipo de consentimiento.


JSON

Muestra un objeto que proporciona funciones JSON.

La función parse() analiza una cadena JSON para construir el valor o el objeto. que describe la cadena. Si el valor no se puede analizar (p.ej., tiene un formato JSON con formato incorrecto), haz lo siguiente: la función mostrará undefined. Si el valor de entrada no es una cadena, el de entrada se convertirá en una cadena.

La función stringify() convierte la entrada en una string JSON. Si el valor no se puede analizar (p.ej., el objeto tiene un ciclo), el método mostrará undefined

Sintaxis

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

Parámetros

JSON.parse

Parámetro Tipo Descripción
stringInput cualquiera Valor que se va a convertir. Si el valor no es una cadena, la entrada será se convierte en una cadena.

JSON.stringify

Parámetro Tipo Descripción
valor cualquiera Valor que se va a convertir.

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

localStorage

Muestra un objeto con métodos para acceder al almacenamiento local.

Sintaxis

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

Permisos asociados

access_local_storage

Ejemplo

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 argumentos en la consola del navegador.

Sintaxis

logToConsole(obj1 [, obj2,... objN])

Parámetros

Parámetro Tipo Descripción
obj1 [, obj2,... objN] cualquiera Argumentos

Permisos asociados

logging


makeInteger

Convierte el valor especificado en un número (número entero).

Sintaxis

makeInteger(value)

Parámetros

Parámetro Tipo Descripción
value cualquiera Valor que se va a convertir.

Permisos asociados

Ninguno


makeNumber

Convierte el valor especificado en un número.

Sintaxis

makeNumber(value)

Parámetros

Parámetro Tipo Descripción
value cualquiera Valor que se va a convertir.

Permisos asociados

Ninguno


makeString

Muestra el valor especificado como una string.

Sintaxis

makeString(value)

Parámetros

Parámetro Tipo Descripción
value cualquiera Valor que se va a convertir.

Permisos asociados

Ninguno


makeTableMap

Convierte un objeto de tabla simple con dos columnas en un Map. Esto se usa para cambie un campo de plantilla SIMPLE_TABLE de dos columnas por una columna más manejable de un conjunto de datos tengan un formato común.

Por ejemplo, esta función podría convertir un objeto de tabla:

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

en un mapa:

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

Muestra un Object: El Map convertido si se agregaron pares clave-valor a o, de lo contrario, null.

Sintaxis

makeTableMap(tableObj, keyColumnName, valueColumnName)

Parámetros

Parámetro Tipo Descripción
tableObj Lista El objeto de la tabla que se va a convertir. Es una lista de mapas en la que Map representa una fila en la tabla. El nombre de cada propiedad en una objeto de fila es el nombre de la columna y el valor de la propiedad es el nombre de la columna de la fila.
keyColumnName string Nombre de la columna cuyos valores se convertirán en claves en la columna Map
valueColumnName string Nombre de la columna cuyos valores se convertirán en valores Map

Permisos asociados

Ninguno


Math

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


Object

Muestra un objeto que proporciona métodos Object.

El método keys() proporciona la biblioteca estándar Object.keys() el comportamiento de los usuarios. Muestra un array de la propiedad enumerable propia de un objeto determinado. en el mismo orden en que lo haría un bucle for...in.... Si el valor de entrada es no es un objeto, se lo coercionará a uno.

El método values() proporciona la biblioteca estándar Object.values(). el comportamiento de los usuarios. Muestra un array de los valores de propiedades enumerables propios de un objeto determinado. en el mismo orden en que lo haría un bucle for...in.... Si el valor de entrada no es un objeto, se convertirá en un objeto.

El método entries() proporciona la biblioteca estándar Object.entries(). el comportamiento de los usuarios. Muestra un array de la propiedad enumerable propia de un objeto determinado. [key, value] se vinculan en el mismo orden que lo haría un bucle for...in.... Si el botón el valor de entrada no es un objeto, se lo coercionará a un objeto.

El método freeze() proporciona la biblioteca estándar Object.freeze(). el comportamiento de los usuarios. Ya no se puede cambiar un objeto inmovilizado. inmovilizar un objeto evita para evitar que se agreguen propiedades nuevas, se quiten las existentes y 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 mostrarán.

El método delete() proporciona el operador de eliminación de la biblioteca estándar. el comportamiento de los usuarios. Quita la clave dada del objeto, a menos que este esté inmovilizado. Al igual que el operador de eliminación de la biblioteca estándar, muestra true si la primera entrada valor (objectInput) es un objeto que no está inmovilizado, incluso si la segunda entrada valor (keyToDelete) especifica una clave que no existe. Muestra false en todos los demás casos. Sin embargo, difiere del operador de eliminación de la biblioteca estándar. de las siguientes maneras:

  • keyToDelete no puede ser una string delimitada por puntos que especifica una clave anidada.
  • No se puede usar delete() para quitar elementos de un array.
  • No se puede usar delete() para quitar propiedades del permiso 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 El objeto cuyas claves se enumeran. Si la entrada no es un objeto, se convertirá en un objeto.

Object.values

Parámetro Tipo Descripción
objectInput cualquiera El objeto cuyos valores se enumeran. Si la entrada no es un objeto, se convertirá en un objeto.

Object.entries

Parámetro Tipo Descripción
objectInput cualquiera El objeto cuyos pares clave-valor se enumeran. Si la entrada no es una objeto, se convertirá en un objeto.

Object.freeze

Parámetro Tipo Descripción
objectInput cualquiera El objeto que se inmovilizará. Si la entrada no es un objeto, se lo tratará como un objeto inmovilizado.

Object.delete

Parámetro Tipo Descripción
objectInput cualquiera El objeto cuya clave se borrará.
keyToDelete string 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.

parseUrl

Devuelve un objeto que contiene todas las partes componentes de una URL determinada, similar a el objeto URL.

Esta API mostrará undefined para cualquier URL con formato incorrecto. Para un formato adecuado Las URLs, los campos que no se encuentran en la cadena de URL tendrán el valor de una cadena vacía o, en el caso de searchParams, un objeto vacío.

El objeto que se muestra 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 La URL completa que se analizará.

Permisos asociados

Ninguno


queryPermission

Consultar los permisos permitidos y reducidos Muestra un booleano: true si un permiso, false de lo contrario.

Sintaxis

queryPermission(permission, functionArgs*)

Parámetros

Parámetro Tipo Descripción
permission string Es el nombre del permiso.
functionArgs cualquiera Los argumentos de función varían según el permiso que se consulta. Consulta Argumentos de la función a continuación.

Argumentos de la función

sendPixel, injectScript, injectHiddenIframe: El segundo parámetro debe ser una cadena de URL.

writeGlobals, readGlobals: El segundo parámetro debe ser la clave escribir o leer.

readUrl: No se necesitan argumentos adicionales para consultar si toda Se puede leer la URL. Para consultar si un componente determinado puede leerse, pasa el componente como segundo argumento:

if (queryPermission('readUrl','port')) {
  // read the port
}

Para comprobar si una clave de consulta específica es legible, pasa la clave de consulta como el Tercer parámetro:

if (queryPermission('readUrl','query','key')) {
  getUrlComponent(...);
}

Permisos asociados

Ninguno


readCharacterSet

Muestra el valor de document.characterSet.

Sintaxis

readCharacterSet()

Parámetros

Ninguno

Permisos asociados

read_character_set


readTitle

Muestra el valor de document.title.

Sintaxis

readTitle()

Parámetros

Ninguno

Permisos asociados

read_title


require

Importa una función integrada por nombre. Muestra una función o un objeto. a las que se puede llamar desde el programa. Muestra undefined cuando el navegador no admite la función integrada.

Sintaxis

require(name)

Parámetros

Parámetro Tipo Descripción
name string Es el nombre de la función que se importará.

Ejemplo

const getUrl = require('getUrl');
const url = getUrl();

Permisos asociados

Ninguno


sendPixel

Realiza una solicitud GET a un extremo de URL especificado.

Sintaxis

sendPixel(url, onSuccess, onFailure)

Parámetros

Parámetro Tipo Descripción
url string A dónde enviar el píxel.
onSuccess function Se llama cuando el píxel se carga correctamente. Nota: incluso si la solicitud se envía correctamente, es posible que los navegadores requieran una respuesta de imagen válida para para que se ejecute onSuccess.
onFailure function Se llama cuando no se carga el píxel. Nota: incluso si la solicitud envía correctamente, onFailure se puede ejecutar si el servidor no devuelve un respuesta de imagen válida.

Permisos asociados

send_pixel


setCookie

Establece o borra la cookie con el nombre, el valor y las opciones especificados.

Sintaxis

setCookie(name, value[, options, encode])

Parámetros

Parámetro Tipo Descripción
name string Nombre de la cookie.
value string Valor de la cookie.
options objeto Especifica el Dominio, Atributos ruta, vencimiento, edad máxima, seguridad y SameSite (Consulta Opciones a continuación).
encode booleano Controla si el valor de la cookie se debe codificar con JavaScript encodeURIComponent() La configuración predeterminada es true.

  • Dominio: Establecido por la propiedad options['domain'], si está presente. Establece este valor a 'auto' para intentar escribir la cookie con el dominio más amplio posible según la ubicación del documento. Si eso falla, se intentará de forma sucesiva subdominios más estrechos. Si todos fallan, intentará escribir la cookie sin un dominio. Si no se establece ningún valor, se intentará escribir la cookie sin un dominio especificado. Nota: Cuando una cookie sin un dominio especificado se se escribe en document.cookie, el usuario-agente establecerá el dominio de la cookie de forma predeterminada al host de la ubicación actual del documento.
  • Ruta de acceso: Establecida por options['path'], si está presente. Cuando una cookie sin una ruta de acceso especificado se escribe en document.cookie, el usuario-agente usará la la ruta de acceso de la cookie a la ruta de la ubicación del documento actual.
  • Max-Age: Se establece por options['max-age'], si está presente.
  • Vencimiento: establecido por options['expires'], si está presente. Si está presente, debe ser una cadena de fecha con formato UTC. Se puede usar Date.toUTCString() para formatear un Date para este parámetro.
  • Seguro: Establecido por options['secure'], si está presente.
  • SameSite: Establecido por options['samesite'], si está presente

Permisos asociados

set_cookies


setDefaultConsentState

Envía una actualización del consentimiento predeterminada a la capa de datos para que se procese en cuanto posible después de que finalicen el evento actual y las etiquetas que activó (o se alcanza el tiempo de espera de procesamiento de la etiqueta). La actualización está garantizada se procesarán en este contenedor antes que los elementos en cola en la capa de datos. Obtén más información sobre el consentimiento.

Ejemplo:

const setDefaultConsentState = require('setDefaultConsentState');

setDefaultConsentState({
  'ad_storage': 'denied',
  'analytics_storage': 'granted',
  'third_party_storage': 'denied',
  'region': ['US-CA'],
  'wait_for_update': 500
});

Sintaxis

setDefaultConsentState(consentSettings)

Parámetros

Parámetro Tipo Descripción
consentSettings objeto Un objeto que define el estado predeterminado del consentimiento especificado de tipos de datos.

El objeto consentSettings es una asignación de cadenas de tipos de consentimiento arbitrarias a 'granted' o 'denied'. Admite los siguientes valores:

Nombre de la clave Tipo Descripción
consentType string Se puede establecer el valor de cada tipo de consentimiento como "granted" o "denied". Cualquier valor distinto de `'granted'` se tratará como `'denied'`. Parámetro de configuración el valor a "undefined" no tendrá ningún efecto en su valor anterior.
region Matriz Un array opcional de códigos regionales que especifica la región a la que del consentimiento al que se aplican. Los códigos regionales se expresan por país o subdivisiones en formato ISO 3166-2.
wait_for_update número Especifica un valor en milisegundos para controlar cuánto tiempo esperar antes de que los datos enviado. Se usa con herramientas de consentimiento que se cargan de forma asíncrona.

Permisos asociados

el permiso access_consent con acceso de escritura para todos los tipos de consentimiento en el consentSettings.


setInWindow

Establece el valor dado en window en la clave determinada. De forma predeterminada, este método no establece el valor en window si ya hay un valor presente. Definir overrideExisting por true para establecer el valor en window, sin importar la de un valor existente. Muestra un booleano: true si el valor era se configuró correctamente; de lo contrario, false.

Sintaxis

setInWindow(key, value, overrideExisting)

Parámetros

Parámetro Tipo Descripción
key string Es la clave de window en la que se debe colocar el valor.
value * Es el valor que se debe establecer en window.
overrideExisting booleano La marca que indica que el valor se debe establecer en window. sin importar si hay un valor allí o no.

Permisos asociados

access_globals


sha256

Calcula el resumen SHA-256 de la entrada e invoca una devolución de llamada con el codificado en base64, a menos que el objeto options especifique un codificación de salida.

Ejemplo:

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

Sintaxis

sha256(input, onSuccess, onFailure = undefined, options = undefined)

Parámetros

Parámetro Tipo Descripción
input string Cadena para la que se calculará el hash.
onSuccess function Se llama con el resumen resultante, codificado en base64, a menos que el El objeto options especifica una codificación de salida diferente.
onFailure function Se llama si se produce un error al calcular el resumen o si el navegador no tiene compatibilidad nativa con SHA256. Se llama a la devolución de llamada con un objeto que contiene el nombre del error y el mensaje.
options objeto Optional para especificar la codificación de salida. Si especificado, el objeto debe contener la clave outputEncoding con un valor como base64 o hex.

Permisos asociados

Ninguno


templateStorage

Muestra un objeto con métodos para acceder al almacenamiento de plantillas. Plantilla permite compartir datos entre ejecuciones de una sola plantilla. Datos almacenadas en el almacenamiento de plantillas persisten durante el ciclo de vida de la página.

Sintaxis

const templateStorage = require('templateStorage');

templateStorage.getItem(key);

templateStorage.setItem(key, value);

templateStorage.removeItem(key);

// Deletes all stored values for the template.
templateStorage.clear();

Permisos asociados

access_template_storage

Ejemplo

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

La API de toBase64 te permite codificar una cadena en una representación en base64.

Sintaxis

toBase64(input)

Parámetros

Parámetro Tipo Descripción
input string Cadena que se codificará.

Ejemplo

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');

Permisos asociados

Ninguno


updateConsentState

Envía una actualización del consentimiento a la capa de datos para que se procese lo antes posible. después de que terminen de procesarse el evento actual y las etiquetas que activó (o se alcanza el tiempo de espera de procesamiento de la etiqueta). Se garantiza que la actualización y se procesan en este contenedor antes que los elementos en cola de la capa de datos. Más información sobre el consentimiento.

Ejemplo:

const updateConsentState = require('updateConsentState');

updateConsentState({
  'ad_storage': 'granted',
  'analytics_storage': 'denied',
  'third_party_storage': 'granted',
});

Sintaxis

updateConsentState(consentSettings)

Parámetros

Parámetro Tipo Descripción
consentSettings objeto Un objeto que actualiza el estado para los tipos de consentimiento especificados.

El objeto consentSettings es una asignación de cadenas de tipos de consentimiento arbitrarias a 'granted' o 'denied'. Admite los siguientes valores:

Nombre de la clave Tipo Descripción
consentType string El valor de cada tipo de consentimiento se puede establecer como “granted”. o “rechazada”. Cualquier valor distinto de “granted” se tratará como “rechazado”. Parámetro de configuración el valor a 'undefined' no tendrá ningún efecto en su valor anterior.

Permisos asociados

el permiso access_consent con acceso de escritura para todos los tipos de consentimiento en el consentSettings.


APIs de prueba

Estas APIs funcionan con pruebas de JavaScript en zonas de pruebas a fin de crear pruebas para código plantillas en Google Tag Manager. Estas APIs de prueba no necesitan un require() declaración. Obtén más información sobre las pruebas de plantillas personalizadas.


assertApi

Devuelve un objeto comparador que puede usarse para realizar aserciones con fluidez sobre el API determinada.

Sintaxis

assertApi(apiName)

Parámetros

Parámetro Tipo Descripción
apiName string El nombre de la API que se verificará. misma cadena que se pasa a require()

Comparadores

  • 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 que puede usarse para hacer aserciones con fluidez sobre el valor de un sujeto. Los una falla de aserción detendrá de inmediato la prueba y la marcará como fallida. Sin embargo, si falla una prueba, no se verán afectados otros casos de prueba.

Sintaxis

assertThat(actual, opt_message)

Parámetros

Parámetro Tipo Descripción
actual cualquiera El valor a usar en las verificaciones de fluidez.
opt_message string Mensaje opcional para imprimir si falla la aserción.

Comparadores

Matcher Descripción
isUndefined() Afirma que el sujeto es undefined.
isDefined() Afirma que el sujeto no es undefined.
isNull() Afirma que el sujeto es null.
isNotNull() Afirma que el sujeto no es null.
isFalse() Afirma que el sujeto es false.
isTrue() Afirma que el sujeto es true.
isFalsy() Afirmar que el tema es falso. Los valores falsos son undefined, null y false NaN, 0 y '' (cadena vacía).
isTruthy() Afirmar que el tema es veraz. Los valores falsos son undefined, null y false NaN, 0 y '' (cadena vacía).
isNaN() Afirma que el sujeto es el valor NaN.
isNotNaN() Afirma que el sujeto es cualquier valor además de NaN.
isInfinity() Afirma que el sujeto es infinito positivo o negativo.
isNotInfinity() Afirmar que el sujeto es cualquier valor que no sea positivo o negativo Infinito.
isEqualTo(expected) Afirma que el sujeto es igual al valor dado. Este es un valor una comparación, no una comparación de referencia. El contenido de objetos y arrays se comparan de forma recursiva.
isNotEqualTo(expected) Afirma que el sujeto no es igual al valor dado. Este es un de valores, no de referencia. El contenido de los objetos y los arrays se comparan de forma recursiva.
isAnyOf(...expected) Afirma que el sujeto es igual a uno de los valores especificados. Este es un de valores, no de referencia. El contenido de los objetos y los arrays se comparan de forma recursiva.
isNoneOf(...expected) Afirma que el sujeto no es igual a ninguno de los valores especificados. Esta es una comparación de valores, no una comparación de referencia. El contenido de los objetos y las matrices se comparan de forma recursiva.
isStrictlyEqualTo(expected) Afirma que el sujeto es estrictamente igual (===) al un valor determinado.
isNotStrictlyEqualTo(expected) Afirmar que el sujeto no es estrictamente igual (!==) a el valor dado.
isGreaterThan(expected) Afirma que el sujeto es mayor que (>) el valor especificado valor en una comparación ordenada.
isGreaterThanOrEqualTo(expected) Afirmar que el sujeto es mayor o igual que (>=) es el valor dado en una comparación ordenada.
isLessThan(expected) Afirma que el sujeto es menor que (<) el valor especificado valor en una comparación ordenada.
isLessThanOrEqualTo(expected) Afirmar que el sujeto es menor o igual que (<=) el valor dado en una comparación ordenada.
contains(...expected) Afirma 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 una referencia comparación. Se compara el contenido de los objetos y los arrays de forma recursiva.
doesNotContain(...expected) Afirma que el sujeto es un array o una cadena que no contiene los valores dados. Esta es una comparación de valores, no una comparación de referencia. El contenido de los objetos y las matrices se compara de manera recursiva.
containsExactly(...expected) Afirma que el sujeto es un array que contiene todos los datos valores en cualquier orden y ningún otro. Esta es una comparación de valores, no un comparación de referencias. Se compara el contenido de los objetos y los arrays de forma recursiva.
doesNotContainExactly(...expected) Afirma que el sujeto es un array que contiene un conjunto diferente. de valores a partir de los valores dados en cualquier orden. Esta es una comparación de valores, no es una comparación de referencia. El contenido de los objetos y arrays se comparar de forma recursiva.
hasLength(expected) Afirma que el sujeto es un array o una cadena con una longitud determinada. La aserción siempre falla si el valor no es un array o una cadena.
isEmpty() Afirma que el sujeto es una matriz o una cadena vacía (longitud = 0). La aserción siempre falla si el valor no es un array o una cadena vacía.
isNotEmpty() Afirmar que el sujeto es un array o una cadena que no está vacío. (longitud > 0). La aserción siempre falla si el valor no es un array. o cadena.
isArray() Afirma que el tipo del sujeto es un array.
isBoolean() Afirma que el tipo del sujeto es booleano.
isFunction() Afirma que el tipo del sujeto es una función.
isNumber() Afirma que el tipo de sujeto es un número.
isObject() Afirma que el tipo de sujeto es un objeto.
isString() Afirma que el tipo del sujeto es 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 en la prueba actual y, además, imprime el mensaje dado, si se lo suministró.

Sintaxis

fail(opt_message);

Parámetros

Parámetro Tipo Descripción
opt_message string Texto del mensaje de error opcional.

Ejemplo

fail('This test has failed.');

mock

La API de mock te permite anular el comportamiento de las APIs de zona de pruebas. La simulación Es seguro usar la API en el código de plantilla, pero solo funciona en modo de prueba. Las simulaciones se restablecen antes de ejecutar cada prueba.

Sintaxis

mock(apiName, returnValue);

Parámetros

Parámetro Tipo Descripción
apiName string El nombre de la API que se simulará; misma cadena que se pasa a require()
returnValue cualquiera El valor que se devuelve para la API o una función a la que se llama en lugar del en la API de Cloud. Si returnValue es una función, se llama a esa función en lugar de la API de Sandboxed si returnValue es otra cosa que una función, se devuelve el valor en lugar del entorno en la API de Cloud.

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 zona de pruebas que devolver un objeto. Es seguro usar la API en el código de plantilla, pero está operativa solo en modo de prueba. Las simulaciones se restablecen antes de ejecutar cada prueba.

Sintaxis

mockObject(apiName, objectMock);

Parámetros

Parámetro Tipo Descripción
apiName string El nombre de la API que se simulará; misma cadena que se pasa a require()
objectMock objeto El valor que se devuelve para la API o una función a la que se llama en lugar del en la API de Cloud. Debe ser un objeto.

Ejemplos

const storage = {};
mockObject('localStorage', {
  setItem: (key, value) => {storage[key] = value;},
  getItem: (key) => storage[key],
});

runCode

Ejecuta el código para la plantilla, es decir, el contenido de la pestaña Code, 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 objeto Es el objeto de datos que se usará en la prueba.

Valor que se muestra

Muestra el valor de una variable para plantillas de variables; muestra undefined por todos los demás tipos de plantillas.

Ejemplo

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