Observação: este site para desenvolvedores está sendo transferido para developers.google.com/tag-platform e será redirecionado até 30 de setembro de 2021.

APIs de inclusão de tags no servidor

Neste documento, descrevemos as APIs relacionadas à inclusão de tags no servidor.


addEventCallback

Registra uma função de callback que é invocada no fim de um evento. O callback é invocado quando todas as tags do evento são executadas. Ele recebe dois valores: o ID do contêiner que invoca a função e um objeto que contém informações sobre o evento.

Quando essa API é usada em uma tag, ela é associada ao evento atual. Quando é utilizada em um cliente, ela precisa ser vinculada a um evento específico usando a função bindToEvent da API runContainer. Veja o exemplo para mais detalhes.

Sintaxe

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // Take some action based on the event data.
});

Parâmetros

Parâmetro Tipo Descrição
callback Função A função a ser invocada ao fim do evento.

O objeto eventData contém os seguintes dados:

Nome da chave Tipo Descrição
tags Matriz Uma matriz de objetos de dados da tag. Cada tag disparada durante o evento terá uma entrada nessa matriz. O objeto de dados da tag contém o ID da tag (id), bem como o status (status) e o tempo de execução (executionTime). Os dados também incluirão outros metadados que foram configurados na tag.

Exemplo

Em um 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();
    }
  });
});

Em uma tag:

const addEventCallback = require('addEventCallback');

addEventCallback((containerId, eventData) => {
  // This will be called at the end of the current event.
});

Permissões associadas

read_event_metadata


callLater

Programa uma chamada de função para ocorrer de maneira assíncrona. A função será chamada após o retorno do código atual. É equivalente a setTimeout(<function>, 0).

Exemplo

const callLater = require('callLater');
const logToConsole = require('logToConsole');

callLater(() => {
  logToConsole('Logged asynchronously');
});

Sintaxe

callLater(function)

Parâmetros

Parâmetro Tipo Descrição
function Função Função a ser chamada.

Permissões associadas

Nenhuma.


claimRequest

Use essa API em um cliente para reivindicar a solicitação. Depois que uma solicitação é reivindicada, o contêiner não executa outros clientes.

Essa API gera uma exceção se for chamada em uma tag ou variável. Ela gera uma exceção se for chamada depois que o cliente retorna (por exemplo, em um callback assíncrono como em callLater ou na função runContainer onComplete).

Um cliente deve reivindicar a solicitação usando essa API antes de chamar a API runContainer.

Exemplo

const claimRequest = require('claimRequest');

claimRequest();

Sintaxe

claimRequest();

Permissões associadas

Nenhuma.


computeEffectiveTldPlusOne

Retorna o domínio efetivo de nível superior + 1 (eTLD+1) do domínio ou URL fornecido. O eTLD+1 é calculado analisando o domínio em relação às regras da lista de sufixos públicos. Ele costuma ser o domínio de nível mais alto em que você pode definir um cookie.

Se o argumento é nulo ou indefinido, o valor dele é retornado sem mudanças. Caso contrário, ele é convertido em uma string. Se o argumento não é um domínio ou URL válido, uma string em branco é retornada. Se o servidor não consegue buscar a lista de sufixos públicos, o valor do argumento retorna sem mudanças.

Exemplo

const computeEffectiveTldPlusOne = require('computeEffectiveTldPlusOne');

// Returns 'example.co.uk'
computeEffectiveTldPlusOne('analytics.example.co.uk');

// Returns 'example.co.uk'
computeEffectiveTldPlusOne('https://analytics.example.co.uk/path');

Sintaxe

computeEffectiveTldPlusOne(domainOrUrl);

Parâmetros

Parâmetro Tipo Descrição
domainOrUrl string Domínio ou URL em que o eTLD+1 é calculado.

Permissões associadas

Nenhuma.


decodeUri

Decodifica os caracteres codificados no URI informado. Retorna uma string que representa o URI decodificado. Retorna undefined quando recebe uma entrada inválida.

Exemplo

const decodeUri = require('decodeUri');

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

Sintaxe

decodeUri(encoded_uri);

Parâmetros

Parâmetro Tipo Descrição
encoded_uri string Um URI que foi codificado por encodeUri() ou outros meios.

Permissões associadas

Nenhuma.


decodeUriComponent

Decodifica qualquer caractere codificado no componente de URI fornecido. Retorna uma string que representa o componente de URI decodificado. Retorna undefined quando recebe uma entrada inválida.

Exemplo

const decodeUriComponent = require('decodeUriComponent');

const decodedQuery = decodeUriComponent(data.query);
if (decodedQuery) {
  // ...
}

Sintaxe

decodeUriComponent(encoded_uri_component);

Parâmetros

Parâmetro Tipo Descrição
encoded_uri_component String Um componente de URI que foi codificado por encodeUriComponent() ou outros meios.

Permissões associadas

Nenhuma.


encodeUri

Retorna um Uniform Resource Identifier (URI) codificado ao adicionar escape aos caracteres especiais. Retorna uma string que representa a string fornecida codificada como URI.

Exemplo

const encodeUri = require('encodeUri');
const sendHttpGet = require('sendHttpGet');

sendHttpGet('https://www.example.com/' + encodeUri(pathInput));

Sintaxe

encodeUri(uri);

Parâmetros

Parâmetro Tipo Descrição
uri String URI completo.

Permissões associadas

Nenhuma.


encodeUriComponent

Retorna um Uniform Resource Identifier (URI) codificado ao adicionar escape aos caracteres especiais. Retorna uma string que representa a string fornecida codificada como URI.

Exemplo

const encodeUriComponent = require('encodeUriComponent');
const sendHttpGet = require('sendHttpGet');

sendHttpGet('https://www.example.com/?' + encodeUriComponent(queryInput));

Sintaxe

encodeUriComponent(str);

Parâmetros

Parâmetro Tipo Descrição
str String Componente de um URI.

Permissões associadas

Nenhuma.


extractEventsFromMpv1

Converte uma solicitação de Measurement Protocol V1 recebida em uma lista de eventos no formato Unified Schema. Retorna a lista de eventos extraídos. Um erro é exibido quando a solicitação não está no formato correto.

Exemplo

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.
  }
}

Sintaxe

extractEventsFromMpv1();

Permissões associadas

Requer a permissão read_request. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • body
  • query parameters

extractEventsFromMpv2

Converte uma solicitação de Measurement Protocol V2 recebida em uma lista de eventos no formato Unified Schema. Retorna a lista de eventos extraídos. Um erro é exibido quando a solicitação não está no formato correto.

Exemplo

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.
  }
}

Sintaxe

extractEventsFromMpv2();

Permissões associadas

Requer a permissão read_request. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • body
  • query parameters

fromBase64

Decodifica uma string codificada em base64. Retornará undefined se a entrada for inválida.

Sintaxe

fromBase64(base64EncodedString);

Parâmetros

Parâmetro Tipo Descrição
base64EncodedString String String codificada em Base64.

Exemplo

const fromBase64 = require('fromBase64');

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

Permissões associadas

Nenhuma.


generateRandom

Retorna um número aleatório (inteiro) dentro do intervalo informado.

Exemplo

const generateRandom = require('generateRandom');

const randomValue = generateRandom(0, 10000000);

Sintaxe

generateRandom(min, max);

Parâmetros

Parâmetro Tipo Descrição
min número Valor em potencial mínimo do número inteiro retornado (inclusivo).
max número Valor potencial máximo do inteiro retornado (inclusivo).

Permissões associadas

Nenhuma.


getAllEventData

Retorna uma cópia dos dados do evento.

Sintaxe

getAllEventData();

Permissões associadas

read_event_data


getClientName

Retorna uma string que contém o nome do cliente atual.

Sintaxe

getClientName();

Permissões associadas

read_container_data


getContainerVersion

Retorna um objeto que contém dados sobre o contêiner atual. O objeto retornado terá os seguintes campos:

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

Exemplo

const getContainerVersion = require('getContainerVersion');

const containerVersion = getContainerVersion();
const containerId = containerVersion['containerId'];
const isDebug = containerVersion['debugMode'];

Sintaxe

getContainerVersion();

Permissões associadas

read_container_data


getCookieValues

Retorna uma matriz que contém os valores de todos os cookies com o nome informado.

Exemplo

const getCookieValues = require('getCookieValues');

const lastVisit = getCookieValues('lastVisit')[0];
if (lastVisit) {
  // ...
}

Sintaxe

getCookieValues(name[, noDecode]);

Parâmetros

Parâmetro Tipo Descrição
name String Nome do cookie.
noDecode booleano Se é true, os valores dos cookies não são decodificados antes de serem retornados. O padrão é false.

Permissões associadas

get_cookies


getEventData

Retorna uma cópia do valor no caminho informado nos dados do evento. Retorna undefined se não há dados de eventos ou se não tem um valor no caminho fornecido.

Exemplo

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 Descrição
keyPath qualquer O caminho da chave, em que os componentes do caminho são separados por pontos. Os componentes do caminho podem ser chaves em um objeto ou índices em uma matriz. Se keyPath não é uma string, ele é convertido em uma.

Sintaxe

getEventData(keyPath);

Permissões associadas

read_event_data


getGoogleScript

Recupera um recurso de um conjunto predeterminado de scripts do Google e invoca o callback fornecido com o script e os metadados de armazenamento em cache associados.

O objeto de metadados contém os metadados de armazenamento em cache a seguir, com base nos cabeçalhos de resposta do recurso. Os campos só existem quando o cabeçalho correspondente está presente na resposta.

{
  'cache-control': string,
  'expires': string,
  'last-modified': string,
}

Exemplo

const getGoogleScript = require('getGoogleScript');

getGoogleScript('ANALYTICS', (script, metadata) => {
  // Operate on script and metadata here.
});

Sintaxe

getGoogleScript(script, callback[, options]);

Parâmetros

Parâmetro Tipo Descrição
script string Nome do script. Os scripts aceitos são 'ANALYTICS', 'GTAG' e 'GTM'.

A opção 'ANALYTICS' busca o script do Google Analytics de https://www.google-analytics.com/analytics.js.

A opção 'GTAG' busca o script da tag global do site (gtag.js) de https://www.googletagmanager.com/gtag/js.

A opção 'GTM' busca o script do Gerenciador de tags do Google de https://www.googletagmanager.com/gtm.js.
callback função Um callback que será invocado com o script e os metadados dele ou undefined e um objeto de metadados vazio se a solicitação falhar ou expirar.
options objeto Opções de solicitação alternativas. Veja abaixo as opções aceitas.

Opções

Opção Tipo Descrição
id string Aplicável a 'GTAG' com o ID de métricas da gtag e 'GTM' com o ID do contêiner da Web (por exemplo, GTM-XXXX).
debug qualquer Se o valor é verdadeiro, ele solicita e retorna a versão de depuração do script de avaliação.
timeout número O tempo limite da solicitação em milissegundos. Os valores não positivos são ignorados. Quando a solicitação expira, o callback é invocado com undefined para o valor do script e {} para o objeto de metadados.

As chaves de opção não reconhecidas são ignoradas.

Permissões associadas

Requer a permissão send_http. A permissão precisa ser configurada para garantir o acesso a pelo menos:

  • Permitir domínios do Google

getRemoteAddress

Retorna uma representação de string do endereço IP de origem da solicitação, por exemplo, 12.345.67.890 para IPv4 ou 2001:0db8:85a3:0:0:8a2e:0370:7334 para IPv6, lendo cabeçalhos de solicitação como Forwarded e X-Forwarded-For. Observação: essa API tenta descobrir o IP de origem, mas não garante um resultado preciso.

Sintaxe

getRemoteAddress();

Permissões associadas

Requer a permissão read_request. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • Cabeçalhos Forwarded e X-Forwarded-For
  • Endereço IP remoto

getRequestBody

Retornará o corpo da solicitação como uma string, se presente, ou undefined, caso ausente.

Sintaxe

getRequestBody();

Permissões associadas

read_request


getRequestHeader

Retorna o valor do cabeçalho da solicitação nomeado como uma string, se presente, ou undefined, caso ausente. Quando o cabeçalho é repetido, os valores retornados são unidos com ', '.

Exemplo

const getRequestHeader = require('getRequestHeader');

const host = getRequestHeader('host');

Sintaxe

getRequestHeader(headerName);

Parâmetros

Parâmetro Tipo Descrição
headerName string Nome do cabeçalho. Esse valor é indiferente a maiúsculas.

Permissões associadas

read_request


getRequestMethod

Retorna o método da solicitação (por exemplo, 'GET' ou 'POST') como uma string.

Exemplo

const getRequestMethod = require('getRequestMethod');

if (getRequestMethod() === 'POST') {
  // Handle the POST request here.
}

Sintaxe

getRequestMethod();

Permissões associadas

Nenhuma.


getRequestPath

Retorna o caminho da solicitação sem a string de consulta. Por exemplo, se o URL é '/foo?id=123', '/foo' é retornado. Remove automaticamente o prefixo de URL do contêiner do servidor do caminho. Por exemplo, se o URL do contêiner do servidor é https://example.com/analytics e o caminho da solicitação é '/analytics/foo', '/foo' é retornado.

Exemplo

const getRequestPath = require('getRequestPath');

const requestPath = getRequestPath();
if (requestPath === '/') {
  // Handle a request for the root path.
}

Sintaxe

getRequestPath();

Permissões associadas

read_request


getRequestQueryParameter

Retorna o valor decodificado do parâmetro de string de consulta nomeado como uma string, se presente, ou undefined, caso o parâmetro esteja ausente. Se o parâmetro está repetido na string de consulta, o primeiro valor exibido nela é retornado.

Exemplo

const getRequestQueryParameter = require('getRequestQueryParameter');

const query = getRequestQueryParameter('query');
if (query) {
  // Process query here.
}

Sintaxe

getRequestQueryParameter(name);

Parâmetros

Parâmetro Tipo Descrição
name string Nome do parâmetro de consulta.

Permissões associadas

read_request


getRequestQueryParameters

Retorna os parâmetros de consulta da solicitação HTTP de entrada como um objeto que mapeia os nomes desses parâmetros para os valores correspondentes. Os nomes e valores são decodificados.

Exemplo

const getRequestQueryParameters = require('getRequestQueryParameters');

const queryParameters = getRequestQueryParameters();
if (queryParameters['search']) {
  // Handle the search query here.
  const maxResults = queryParameters['max_results'];
}

Sintaxe

getRequestQueryParameters();

Permissões associadas

read_request


getRequestQueryString

Retorna a consulta de solicitação como uma string sem o ponto de interrogação inicial ou uma string vazia se o URL de solicitação não inclui uma string de consulta.

Exemplo

const getRequestQueryString = require('getRequestQueryString');

const queryString = getRequestQueryString();
if (queryString !== '') {
  // Handle the query string.
}

Sintaxe

getRequestQueryString();

Permissões associadas

read_request


getTimestamp

Obsoleto. Use getTimestampMillis.

Retorna um número que representa o tempo atual em milissegundos desde a época Unix, conforme retornado por Date.now().

Sintaxe

getTimestamp();

Permissões associadas

Nenhuma.


getTimestampMillis

Retorna um número que representa o tempo atual em milissegundos desde a época Unix, conforme retornado por Date.now().

Sintaxe

getTimestampMillis();

Permissões associadas

Nenhuma.


getType

Retorna uma string que descreve o tipo de valor especificado.

Tipo de entrada Valor retornado
string 'string'
número 'number'
booleano 'boolean'
nulo 'null'
indefinido 'undefined'
Matriz 'array'
Objeto 'object'
Função 'function'

Exemplo

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

Sintaxe

getType(value);

Parâmetros

Parâmetro Tipo Descrição
value qualquer Valor de entrada.

Permissões associadas

Nenhuma.


isRequestMpv1

Retorna true se a solicitação recebida é de Measurement Protocol V1 ou false quando é de outro tipo.

Exemplo

const isRequestMpv1 = require('isRequestMpv1');

if (isRequestMpv1()) {
  // Handle Measurement Protocol V1 request.
  const events = extractEventsFromMpv1();
}

Sintaxe

isRequestMpv1();

Permissões associadas

Nenhuma.


isRequestMpv2

Retorna true se a solicitação recebida é de Measurement Protocol V2 ou false quando é de outro tipo.

Exemplo

const isRequestMpv2 = require('isRequestMpv2');

if (isRequestMpv2()) {
  // Handle Measurement Protocol V2 request.
  const events = extractEventsFromMpv2();
}

Sintaxe

isRequestMpv2();

Permissões associadas

Nenhuma.


logToConsole

Registra os argumentos no console.

Esses registros ficam visíveis no Explorador de registros no Console do Google Cloud. Nesse local, execute a consulta logName =~ "stdout" para ver as entradas de registro criadas por essa API.

Exemplo

const logToConsole = require('logToConsole');

const that = 123;
const those = { ... };
logToConsole('that is: ', that, ' and those is: ', those);

Sintaxe

logToConsole(argument1[, argument2, ...]);

Parâmetros

A API usa um ou mais argumentos, cada um convertido em uma string, se necessário, e registrado no console.

Permissões associadas

logging


makeInteger

Converte o valor informado em um número (inteiro).

Sintaxe

makeInteger(value);

Parâmetros

Parâmetro Tipo Descrição
value qualquer tipo O valor a ser convertido.

Permissões associadas

Nenhuma.


makeNumber

Converte o valor informado em um número.

Sintaxe

makeNumber(value);

Parâmetros

Parâmetro Tipo Descrição
value qualquer tipo O valor a ser convertido.

Permissões associadas

Nenhuma.


makeString

Retorna o valor fornecido como uma string.

Sintaxe

makeString(value);

Parâmetros

Parâmetro Tipo Descrição
value qualquer tipo O valor a ser convertido.

Permissões associadas

Nenhuma.


makeTableMap

Converte um objeto de tabela simples com duas colunas em um Map. Isso é usado para alterar um campo de modelo SIMPLE_TABLE com duas colunas em um formato mais prático.

Por exemplo, a função a seguir poderia converter um objeto de tabela:

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

em um "Map":

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

Retorna um objeto: o Map convertido dos pares de chave-valor foram adicionados a ele. Caso contrário, o resultado será null.

Sintaxe

makeTableMap(tableObj, keyColumnName, valueColumnName);

Parâmetros

Parâmetro Tipo Descrição
tableObj List Objeto de tabela a ser convertido. É uma lista de mapas em que cada Map representa uma linha na tabela. Cada nome de propriedade em um objeto de linha é o nome da coluna, e o valor da propriedade é o valor da coluna na linha.
keyColumnName String Nome da coluna cujos valores se tornarão chaves no Map convertido.
valueColumnName String Nome da coluna cujos valores se tornarão valores no Map convertido.

Permissões associadas

Nenhuma.


parseUrl

Retorna um objeto que contém todas as partes de componentes de um URL específico, semelhante ao objeto URL.

Essa API retornará undefined para qualquer URL incorreto. Para URLs formatados adequadamente, os campos ausentes na string de URL terão o valor de uma string vazia ou, no caso de searchParams, um objeto vazio.

O objeto retornado terá os seguintes 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,
}

Exemplo

const parseUrl = require('parseUrl');

const urlObject = parseUrl('https://abc:xyz@example.com:8080/foo?param=val%2Cue#bar');

Sintaxe

parseUrl(url);

Parâmetros

Parâmetro Tipo Descrição
url String O URL completo que será analisado.

Permissões associadas

Nenhuma.


returnResponse

Retorna a resposta que foi definida anteriormente por outros modelos usando as APIs que modificam a resposta, incluindo setCookie, setPixelResponse, setResponseBody, setResponseHeader e setResponseStatus. O padrão é um código de status HTTP 200, com corpo vazio e sem cabeçalhos.

É recomendável usar essa API a partir de um modelo de cliente.

Sintaxe

returnResponse();

Exemplo

Veja o exemplo do runContainer.

Permissões associadas

return_response


runContainer

Executa a lógica do contêiner (variáveis, acionadores, tags) no escopo de um evento. Se essa API for chamada durante a execução do contêiner, o contêiner será executado novamente.

Os callbacks onComplete e onStart recebem uma função chamada bindToEvent. Use bindToEvent para executar uma API no contexto do evento. Veja o exemplo de addEventCallback para mais detalhes.

É recomendável usar essa API a partir de um modelo de cliente.

Exemplo

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

Sintaxe

runContainer(event, onComplete, onStart);

Parâmetros

Parâmetro Tipo Descrição
event objeto Parâmetros do evento.
onComplete função Um callback invocado após o disparo de todas as tags.
onStart função Um callback que será invocado imediatamente, antes que as tags comecem a ser disparadas.

Permissões associadas

run_container


sendEventToGoogleAnalytics

Envia um único evento no formato Unified Schema para o Google Analytics.

Exemplo

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, (response) => {
  if (!response.success) {
    setResponseStatus(500);
    data.gtmOnFailure();
    return;
  }

  if (response.location) {
    setResponseHeader('location', response.location);
    setResponseStatus(302);
  } else {
    setResponseStatus(200);
  }
  data.gtmOnSuccess();
});

Sintaxe

sendEventToGoogleAnalytics(event, callback);

Parâmetros

Parâmetro Tipo Descrição
event objeto Evento no formato Unified Schema.
callback função Um callback opcional a ser invocado quando o hit no GA for concluído. Ele será invocado com um objeto que tem os campos success e location.

O campo success será definido como true se o código de resposta for 200 ou 302. Caso contrário, será false. Se a resposta tiver um cabeçalho location, o campo location será definido como o valor do cabeçalho.

Permissões associadas

Requer a permissão send_http. A permissão precisa ser configurada para garantir o acesso a pelo menos:

  • Permitir domínios do Google

sendHttpGet

Faz uma solicitação HTTP GET para o URL especificado e invoca um callback com a resposta quando a solicitação é concluída ou expira.

Exemplo

const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
const setResponseHeader = require('setResponseHeader');
const setResponseStatus = require('setResponseStatus');

// Sends a GET request and nominates response
// based on the response from the GET request.
sendHttpGet('https://example.com/collect', (statusCode, headers, body) => {
  setResponseBody(body);
  setResponseHeader('cache-control', headers['cache-control']);
  setResponseStatus(statusCode);
}, {headers: {key: 'value'}, timeout: 500});

Sintaxe

sendHttpGet(url[, callback[, options]]);

Parâmetros

Parâmetro Tipo Descrição
url string URL da solicitação.
callback função Um callback opcional a ser invocado quando a solicitação for concluída, apresentar um erro ou expirar.

É invocado com o código de status, os cabeçalhos e o corpo da resposta (ou "indefinido" se não houver um corpo).
Se houver alguma falha na solicitação (por exemplo, URL inválido, não há rota para o host, falha na negociação do SSL etc.), o callback será invocado com um código de status de resposta zero, sem cabeçalhos e com um corpo indefinido.
Se a opção 'timeout' de tempo limite tiver sido definida e a solicitação expirar, o callback será invocado com um código de status de resposta -1, sem cabeçalhos e com um corpo indefinido.
options objeto Opções de solicitação alternativas. As opções aceitas são: cabeçalhos e tempo limite. As chaves de opção desconhecidas são ignoradas. Veja Opções abaixo.

Opções

  • cabeçalhos: os cabeçalhos de solicitação adicionais representados como um objeto.
  • tempo limite: tempo limite em milissegundos até o cancelamento da solicitação.

Permissões associadas

send_http


sendHttpRequest

Faz uma solicitação HTTP para o URL especificado e invoca um callback com a resposta quando a solicitação é concluída ou expira.

Exemplo

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', (statusCode, headers, body) => {
  setResponseStatus(statusCode);
  setResponseBody(body);
  setResponseHeader('cache-control', headers['cache-control']);
}, {headers: {key: 'value'}, method: 'POST', timeout: 500}, postBody);

Sintaxe

sendHttpRequest(url[, callback[, options[, body]]]);

Parâmetros

Parâmetro Tipo Descrição
url string URL da solicitação.
callback função Um callback opcional a ser invocado quando a solicitação for concluída, apresentar um erro ou expirar.

É invocado com o código de status, os cabeçalhos e o corpo da resposta (ou "indefinido" se não houver um corpo).
Se houver alguma falha na solicitação (por exemplo, URL inválido, não há rota para o host, falha na negociação do SSL etc.), o callback será invocado com um código de status de resposta zero, sem cabeçalhos e com um corpo indefinido.
Se a opção de tempo limite tiver sido definida e a solicitação expirar, o callback será invocado com um código de status de resposta -1, sem cabeçalhos e com um corpo indefinido.
options objeto Opções de solicitação alternativas. As opções aceitas são: cabeçalhos, método e tempo limite. As chaves de opção desconhecidas são ignoradas. Veja Opções abaixo.
body string Corpo da solicitação opcional.

Opções

  • cabeçalhos: cabeçalhos de solicitação adicionais.
  • método: o método de solicitação cujo padrão é "GET".
  • tempo limite: tempo limite em milissegundos até o cancelamento da solicitação.

Permissões associadas

send_http


sendPixelFromBrowser

Envia um comando ao navegador para carregar o URL fornecido como uma tag <img>. Esse protocolo de comando é compatível com as tags da Web Google Analytics: configuração do GA4 e Google Analytics: evento do GA. Ative a opção Enviar para o contêiner do servidor na tag de configuração. Veja as instruções para mais detalhes.

Essa API retornará false se a solicitação recebida não for compatível com o protocolo de comando ou se a resposta já tiver sido limpa. Caso contrário, a API retornará true.

Exemplo:

const sendPixelFromBrowser = require('sendPixelFromBrowser');

sendPixelFromBrowser('https://example.com/?id=123');

Sintaxe

sendPixelFromBrowser(url)

Parâmetros

Parâmetro Tipo Descrição
url string O URL a ser enviado para o navegador.

Permissões associadas

send_pixel_from_browser


setCookie

Define ou exclui um cookie com as opções especificadas.

Para excluir um cookie, é preciso defini-lo com o mesmo caminho e domínio com que ele foi criado e atribuir um valor de expiração que esteja no passado, por exemplo, "Thu, 01 Jan 1970 00:00:00 GMT".

returnResponse precisa ser chamado para que a resposta seja enviada de volta ao cliente.

Exemplo

const setCookie = require('setCookie');

// Sets an httpOnly cookie with a max-age of 3600.
setCookie('cookieName', 'cookieValue', {'max-age': 3600, httpOnly: true});

Sintaxe

setCookie(name, value[, options[, noEncode]]);

Parâmetros

Parâmetro Tipo Descrição
name string Nome do cookie. O nome é indiferente a maiúsculas.
value string Valor do cookie.
options objeto Atributos opcionais do cookie: domain, expires, fallbackDomain, httpOnly, max-age, path, secure e sameSite. Veja Opções abaixo.
noEncode booleano Se o valor do cookie for verdadeiro, ele não será codificado. O valor padrão é false.

Opções

  • domain: o host para onde o cookie será enviado. Se definido como o valor especial "auto", o host será calculado automaticamente usando a seguinte estratégia:

    • eTLD+1 do cabeçalho Forwarded, se presente.
    • eTLD+1 do cabeçalho X-Forwarded-Host, se presente.
    • eTLD+1 do cabeçalho Host.
  • expires: o ciclo de vida máximo do cookie. Precisa ser uma string de data no formato UTC, por exemplo "Sábado, 26 de outubro de 1985 08:21:00 GMT". Se expires e max-age forem definidos, max-age terá precedência.

  • httpOnly: evita que o JavaScript acesse o cookie se true.

  • max-age: número de segundos até o cookie expirar. Um número zero ou negativo faz com que o cookie expire imediatamente. Se expires e max-age forem definidos, max-age terá prioridade.

  • path: um caminho que precisa existir no URL solicitado. Caso contrário, o navegador não enviará o cabeçalho "Cookie".

  • secure: se for definido como true, o cookie só será enviado ao servidor quando uma solicitação for feita em um endpoint https:.

  • samesite: declara que um cookie não pode ser enviado com solicitações de origem cruzada. Precisa ser 'strict', 'lax' ou 'none'.

Permissões associadas

set_cookie


setPixelResponse

Define o corpo da resposta como um GIF 1x1, o cabeçalho "Content-Type" como "image/gif", os cabeçalhos de armazenamento em cache de modo que os user agents não armazenem a resposta em cache e o status de resposta como "200".

returnResponse precisa ser chamado para que a resposta seja enviada de volta ao cliente.

Sintaxe

setPixelResponse();

Permissões associadas

Requer a permissão access_response. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • headers: precisa permitir as seguintes chaves
    • content-type
    • cache-control
    • expires
    • pragma
  • body
  • status

setResponseBody

Define o corpo da resposta para o argumento.

returnResponse precisa ser chamado para que a resposta seja enviada de volta ao cliente.

Sintaxe

setResponseBody(body[, encoding]);

Parâmetros

Parâmetro Tipo Descrição
body string Valor a ser definido como o corpo da resposta.
encoding string A codificação de caracteres do corpo da resposta (o padrão é 'utf8'). Os valores aceitos incluem 'ascii', 'utf8', 'utf16le', 'ucs2', 'base64', 'latin1', 'binary' e 'hex'.

Permissões associadas

Requer a permissão access_response. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • body

setResponseHeader

Define um cabeçalho na resposta que será retornada. Se um cabeçalho com esse nome (indiferente a maiúsculas) tiver sido definido antes por esta API, a última chamada substituirá ou apagará o valor determinado pelo autor da chamada anterior.

returnResponse precisa ser chamado para que a resposta seja enviada de volta ao cliente.

Sintaxe

setResponseHeader(name, value);

Parâmetros

Parâmetro Tipo Descrição
name string Nome do cabeçalho. Os nomes dos cabeçalhos HTTP são indiferentes a maiúsculas. Assim, eles estarão em letras minúsculas.
value string indefinida Valor do cabeçalho. Se o valor é nulo ou indefinido, o cabeçalho nomeado é apagado da resposta retornada.

Permissões associadas

Requer a permissão access_response. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • headers

setResponseStatus

Define o código de status HTTP da resposta que será retornada.

returnResponse precisa ser chamado para que a resposta seja enviada de volta ao cliente.

Sintaxe

setResponseStatus(statusCode);

Parâmetros

Parâmetro Tipo Descrição
statusCode número Código de status HTTP a ser retornado.

Permissões associadas

Requer a permissão access_response. A permissão precisa ser configurada para garantir acesso a pelo menos:

  • status

sha256

Calcula o valor de hash de SHA-256 da entrada e invoca um callback com o valor codificado em base64, a menos que o objeto options especifique uma codificação de saída diferente.

Esse comportamento e assinatura da API correspondem à API sha256 para contêineres da Web. No entanto, os modelos personalizados em contêineres do servidor devem usar a API sha256Sync para simplificar o código.

Exemplo

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

Sintaxe

sha256(input, onSuccess, options = undefined);

Parâmetros

Parâmetro Tipo Descrição
input string String em que o hash será gerado.
onSuccess função Chamado com o valor de hash resultante, codificado em base64, a menos que o objeto options especifique uma codificação de saída diferente.
options objeto Objeto de escolhas opcionais para especificar a codificação de saída. Se definido, o objeto precisa conter a chave outputEncoding com valor base64 ou hex.

Permissões associadas

Nenhuma.


sha256Sync

Calcula e retorna o valor de hash de SHA-256 da entrada, codificado em base64, a menos que o objeto options especifique uma codificação de saída diferente.

Exemplo

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

Sintaxe

sha256Sync(input, options = undefined);

Parâmetros

Parâmetro Tipo Descrição
input string String em que o hash será gerado.
options objeto Objeto de escolhas opcionais para especificar a codificação de saída. Se definido, o objeto precisa conter a chave outputEncoding com valor base64 ou hex.

Permissões associadas

Nenhuma.


templateDataStorage

Retorna um objeto com métodos para acessar o armazenamento de dados de modelo, que permite que os dados sejam compartilhados entre execuções de um único modelo. Os dados localizados no armazenamento de dados do modelo permanecem no servidor que executa o contêiner. Na maioria dos casos, há vários servidores executando o contêiner. Portanto, salvar informações no armazenamento de dados do modelo não garante que todas as solicitações seguinte terão acesso a elas.

"Data" no nome "templateDataStorage" indica que só os tipos de dados sem formatação e que não sejam uma função podem ser armazenados usando essa API. Todas as funções ou referências a funções transmitidas para a API serão salvas como null.

Sintaxe

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

Exemplo

const sendHttpGet = require('sendHttpGet');
const setResponseBody = require('setResponseBody');
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, (statusCode, headers, body) => {
  if (status >= 200 && status < 300) {
    setResponseBody(body);
    templateDataStorage.setItemCopy(data.key, body);
    data.gtmOnSuccess();
  } else {
    data.gtmOnFailure();
  }
  setResponseStatus(statusCode);
});

Permissões associadas

access_template_storage


toBase64

Codifica uma string como base64.

Sintaxe

toBase64(input);

Parâmetros

Parâmetro Tipo Descrição
input String String a ser codificada.

Exemplo

const toBase64 = require('toBase64');

const base64Hello = toBase64('hello');

Permissões associadas

Nenhuma.


BigQuery

Retorna um objeto que fornece funções JSON.

A função BigQuery.insert permite gravar dados em uma tabela do BigQuery.

Sintaxe

BigQuery.insert(connectionInfo, rows, options, onSuccess, onFailure);

Parâmetros

Parâmetro Tipo Descrição
connectionInfo objeto Define as informações necessárias para se conectar a uma tabela do BigQuery. Há um parâmetro opcional e dois obrigatórios:
  • projectId (opcional) ID do projeto do Google Cloud Platform. Se omitido, o projectId é recuperado da variável de ambiente GOOGLE_CLOUD_PROJECT, desde que a configuração de permissão access_bigquery do ID do projeto esteja definida como * ou GOOGLE_CLOUD_PROJECT. Se o contêiner do servidor estiver em execução no Google Cloud, o GOOGLE_CLOUD_PROJECT já estará definido como o ID do projeto do Google Cloud.
  • datasetId: ID do conjunto de dados do BigQuery.
  • tableId – ID da tabela do BigQuery.
rows Matriz As linhas a serem inseridas na tabela.
options objeto Opções de solicitação alternativas. As opções aceitas são: ignoreUnknownValues e skipInvalidRows. Chaves de opção desconhecidas são ignoradas. Veja Opções abaixo.
onSuccess função Um callback opcional para invocar em uma inserção bem-sucedida. O callback é chamado sem argumentos.
onFailure função Um callback opcional para invocar no caso de um erro. Chamado com uma lista de objetos contendo o motivo do erro e possivelmente um objeto de linha, se ocorrer um erro. É possível que uma parte da solicitação seja concluída com êxito e outras não. O onFailure é chamado nesse caso com uma lista de erros para cada linha com um objeto para distinguir quais linhas foram inseridas. Consulte Exemplos de erros abaixo. Veja a documentação do BigQuery sobre mensagens de erro para mais informações.

Opções

Parâmetro Tipo Descrição
ignoreUnknownValues booleano Se definido como true, as linhas que contêm valores não correspondentes ao esquema serão aceitas. Os valores desconhecidos serão ignorados. O valor padrão é false.
skipInvalidRows booleano Se definido como true, serão inseridas todas as linhas válidas de uma solicitação, mesmo que haja algumas inválidas. O padrão é false.

Exemplos de erro

Um erro de módulo não encontrado significa que o contêiner do servidor provavelmente está executando uma versão mais antiga da nossa imagem que ainda não incluiu o módulo do BigQuery. Implante seu contêiner do servidor com as mesmas configurações usando nosso script de implantação. O módulo será incluído automaticamente assim que a operação for concluída.

Um erro de não inserção normalmente tem um objeto com uma chave reason:

[{reason: 'invalid'}]

Um erro de inserção pode conter vários objetos com uma matriz errors e um objeto row. Veja a seguir um exemplo de resposta de erro exibida quando duas linhas são inseridas e apenas uma contém um erro:

[
  {
    "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
    }
  }
]

Exemplo

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, data.gtmOnSuccess, data.gtmOnFailure);

Permissões associadas

access_bigquery


JSON

Retorna um objeto que oferece funções JSON.

A função parse() analisa uma string JSON para criar o valor ou objeto descrito pela string. Se o valor não puder ser analisado (por exemplo, JSON incorreto), a função retornará undefined. Se o valor de entrada não for uma string, a entrada será convertida para uma string.

A função stringify() converte a entrada em uma string JSON. Se o valor não puder ser analisado (por exemplo, o objeto tiver um ciclo), o método retornará undefined.

Exemplo

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

Sintaxe

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

Permissões associadas

Nenhuma.


Math

Objeto que disponibiliza funções Math.

Sintaxe

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

Os parâmetros das funções matemáticas são convertidos em números.

Permissões associadas

Nenhuma.


Messages

As seguintes APIs funcionam juntas para permitir a transmissão de mensagens entre diferentes partes de um contêiner.


addMessageListener

Adiciona uma função que detecta uma mensagem de um tipo específico. Quando uma mensagem desse tipo é enviada usando a API sendMessage (normalmente por uma tag), o retorno de chamada é executado de forma síncrona. O callback é executado com dois parâmetros:

  1. messageType:string
  2. message:Object

Se o callback for adicionado a um cliente, ele receberá mensagens em todos os eventos criados por esse cliente. Se o callback precisar receber mensagens apenas de determinado evento, vincule essa API ao evento usando bindToEvent na função onStart da API runContainer. Veja o exemplo.

Sintaxe

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 Descrição
messageType string O tipo de mensagem a ser detectada. Se o valor não for uma string, ele será convertido em uma.
callback função O callback a ser executado quando uma mensagem do tipo de mensagem aplicável é enviada. Se o callback não for uma função, a API não terá efeito.

Exemplo

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

Permissões associadas

Requer a permissão use_message. A permissão precisa ser configurada para garantir pelo menos:

  • Um tipo de mensagem com Usage de listen ou listen_and_send

hasMessageListener

Retorna "true" se um listener de mensagens tiver sido adicionado para o tipo de mensagem informado. Retorna "false", caso contrário.

Sintaxe

const hasMessageListener = require('hasMessageListener');

hasMessageListener('send_pixel');

Permissões associadas

Nenhuma.


sendMessage

Envia uma mensagem do tipo especificado para um listener registrado. Isso pode ser usado para enviar mensagens de uma tag de volta ao cliente que executou o contêiner.

Sintaxe

const sendMessage = require('sendMessage');

sendMessage('send_pixel', {url: 'https://analytics.example.com/collect'});

Parâmetros

Parâmetro Tipo Descrição
messageType string O tipo de mensagem a ser enviada. Se o valor não for uma string, ele será convertido em uma.
message objeto A mensagem a ser enviada. Se a mensagem não for um objeto, a API não terá efeito.

Permissões associadas

Requer a permissão use_message. A permissão precisa ser configurada para garantir pelo menos:

  • Um tipo de mensagem com Usage de listen_and_send ou send

APIs de teste

Essas APIs funcionam com testes do JavaScript no modo sandbox para criar testes de modelos personalizados no Gerenciador de tags do Google. Elas não precisam de uma instrução require(). Saiba mais sobre os testes de modelo personalizado.


assertApi

Retorna um objeto de correspondência que pode ser usado para fazer declarações de maneira fluente sobre a API informada.

Sintaxe

assertApi(apiName)

Parâmetros

Parâmetro Tipo Descrição
apiName String O nome da API a ser verificada. Mesma string que foi transmitida para require().

Correspondências

  • Subject.wasCalled()
  • Subject.wasNotCalled()
  • Subject.wasCalledWith(...expected)
  • Subject.wasNotCalledWith(...expected)

Exemplos

assertApi('sendPixel').wasCalled();
assertApi('getUrl').wasNotCalled();
assertApi('makeNumber').wasCalledWith('8');
assertApi('setInWindow').wasNotCalledWith('myVar', 'theWrongValue');

assertThat

A API assertThat é modelada conforme a biblioteca [Truth] do Google. Ela retorna um objeto que pode ser usado para fazer declarações de forma fluente sobre o valor de um assunto. Um erro na declaração fará com que o teste seja interrompido imediatamente e falhe. No entanto, uma falha em um teste não afetará outros casos de teste.

Sintaxe

assertThat(actual, opt_message)

Parâmetros

Parâmetro Tipo Descrição
actual qualquer um O valor a ser usado nas verificações fluentes.
opt_message String Mensagem opcional a ser impressa se a declaração falhar.

Correspondências

Correspondente Descrição
isUndefined() Afirma que o assunto é undefined.
isDefined() Afirma que o assunto não é undefined.
isNull() Afirma que o assunto é null.
isNotNull() Afirma que o assunto não é null.
isFalse() Afirma que o assunto é false.
isTrue() Afirma que o assunto é true.
isFalsy() Afirma que o assunto é false. Os valores false são undefined, null, false, NaN, 0 e '' (string vazia).
isTruthy() Afirma que o assunto é true. Os valores false são undefined, null, false, NaN, 0 e '' (string vazia).
isNaN() Afirma que o assunto é o valor NaN.
isNotNaN() Afirma que o assunto é qualquer valor além de NaN.
isInfinity() Afirma que o assunto é um infinito positivo ou negativo.
isNotInfinity() Afirma que o assunto é qualquer valor além de um infinito positivo ou negativo.
isEqualTo(expected) Afirma que o assunto é igual ao valor informado. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
isNotEqualTo(expected) Afirma que o assunto não é igual ao valor informado. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
isAnyOf(...expected) Afirma que o assunto é igual a um dos valores fornecidos. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
isNoneOf(...expected) Afirma que o assunto não é igual a nenhum dos valores fornecidos. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
isStrictlyEqualTo(expected) Afirma que o assunto é estritamente igual (===) ao valor fornecido.
isNotStrictlyEqualTo(expected) Afirma que o assunto não é estritamente igual (!==) ao valor fornecido.
isGreaterThan(expected) Afirma que o assunto é maior (>) que o valor fornecido em uma comparação ordenada.
isGreaterThanOrEqualTo(expected) Afirma que o assunto é maior ou igual (>=) ao valor fornecido em uma comparação ordenada.
isLessThan(expected) Afirma que o assunto é menor (<) que o valor fornecido em uma comparação ordenada.
isLessThanOrEqualTo(expected) Afirma que o assunto é menor ou igual (<=) ao valor fornecido em uma comparação ordenada.
contains(...expected) Afirma que o assunto é uma matriz ou string que contém todos os valores fornecidos em qualquer ordem. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
doesNotContain(...expected) Afirma que o assunto é uma matriz ou string que não contém nenhum dos valores fornecidos. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
containsExactly(...expected) Afirma que o assunto é uma matriz que contém todos os valores fornecidos em qualquer ordem e nenhum outro valor. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
doesNotContainExactly(...expected) Afirma que o assunto é uma matriz que contém um conjunto de valores diferente dos valores fornecidos, em qualquer ordem. Essa é uma comparação de valores, não de referências. O conteúdo de objetos e matrizes é comparado de maneira recursiva.
hasLength(expected) Afirma que o assunto é uma matriz ou string com o comprimento especificado. A declaração sempre falhará se o valor não for uma matriz ou string.
isEmpty() Afirma que o assunto é uma matriz ou string vazia (comprimento = 0). A declaração sempre falhará se o valor não for uma matriz ou string.
isNotEmpty() Afirma que o assunto é uma matriz ou string que não está vazia (comprimento > 0). A declaração sempre falhará se o valor não for uma matriz ou string.
isArray() Afirma que o tipo de assunto é uma matriz.
isBoolean() Afirma que o tipo de assunto é um booleano.
isFunction() Afirma que o tipo de assunto é uma função.
isNumber() Afirma que o tipo de assunto é um número.
isObject() Afirma que o tipo de assunto é um objeto.
isString() Afirma que o tipo de assunto é uma string.

Exemplos

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

Falha no teste atual imediatamente e imprime a mensagem informada, se houver.

Sintaxe

fail(opt_message);

Parâmetros

Parâmetro Tipo Descrição
opt_message String Texto opcional da mensagem de erro.

Exemplo

fail('This test has failed.');

mock

A API mock permite substituir o comportamento das APIs no modo sandbox. A API de simulação pode ser usada com segurança no código de modelo, mas não funciona fora do modo de teste. As simulações são redefinidas antes da execução de cada teste.

Sintaxe

mock(apiName, returnValue);

Parâmetros

Parâmetro Tipo Descrição
apiName String O nome da API a ser simulada. É a mesma string transmitida para require()
returnValue qualquer um O valor a ser retornado para a API ou uma função chamada no lugar da API. Se returnValue for uma função, ela será chamada no lugar da API no modo sandbox. Caso returnValue não seja uma função, esse valor será retornado no lugar da API.

Exemplos

mock('encodeUri', "https://endpoint.example.com/?account=12345");
mock('sendPixel', function(url, onSuccess, onFailure) {
    onSuccess();
});

runCode

Executa o código do modelo, ou seja, o conteúdo da guia Código, no ambiente de teste atual com um determinado objeto de dados de entrada.

Sintaxe

runCode(data)

Parâmetros

Parâmetro Tipo Descrição
data Objeto Objeto de dados a ser usado no teste.

Valor de retorno

Retorna o valor de uma variável para modelos de variáveis. Retorna undefined para todos os outros tipos de modelo.

Exemplo

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