Docs
Referência

Gatilhos e capturas

Numa regra de tag, o gatilho diz "quando" o evento sai e as capturas dizem "com qual valor" cada parâmetro sai. Os nomes abaixo são os que o editor mostra; para o formato JSON exato, veja Regras de tag na API.

Gatilhos

Você escolhe o gatilho de origem no campo "Dispara quando"; a tabela segue a ordem do editor.

GatilhoDispara quandoVocê configuraEntregatype
Evento em elementoum evento do navegador acontece em um elemento que casa com o seletor CSS, inclusive elementos inseridos depois do carregamentoo seletor e o evento (ex. click, submit, change)elemento e eventoElementEvent
Página carregadauma vez, quando o DOM fica pronto (na hora, se já estiver pronto)nadanadaPageReady
Evento na janelaum evento acontece na janela, ex. scroll, resizeo eventoeventoWindowEvent
Temporizadora cada intervalo; navegadores estrangulam timers em abas de fundoo intervalo, de 1 segundo a 1 hora (1000 a 3600000 ms)nadaTimer
Profundidade de rolagema página é rolada até cada porcentagem, uma vez por porcentagem por carregamento; o evento carrega detail.threshold_pct1 a 10 porcentagens, cada uma de 1 a 100eventoScrollDepth
Tempo de atençãoo visitante acumula cada duração, uma vez por duração por carregamento; o evento carrega detail.threshold_s e detail.engaged_ms1 a 10 durações em segundos, de 1 a 3600eventoTimeEngaged
Elemento visívelo elemento entra na área visível em pelo menos a fração configurada, uma vez por elemento por carregamentoo seletor e a fração visível, maior que 0 e até 1 (padrão 0,5)elementoElementVisible

Tempo de atenção conta só os segundos com a página visível (aba em segundo plano não conta); o Temporizador conta o relógio.

As listas de Profundidade de rolagem e Tempo de atenção precisam ser estritamente crescentes: um valor repetido ou fora de ordem é recusado ao salvar.

Envelopes

Um envelope não dispara sozinho: ele envolve outro gatilho e muda quando ele dispara.

EnvelopeO que fazVocê configuratype
Uma vez porreduz o gatilho interno ao primeiro disparo dentro de um escopoo escopoOnce
Só nas páginas que casamdeixa o gatilho interno disparar só quando a URL (location.href) casa com o padrão; reavaliado quando o site troca de página sem recarregar (SPA)o padrãoOnPage
Filtro em JavaScriptroda um trecho de JavaScript (corpo de (element, event) => ...) a cada disparo do gatilho interno, antes de capturar e enviar; devolver false veta aquele disparoo códigoSideEffect

Escopos de Uma vez por:

EscopoPrimeiro disparo porOnde é lembrado
páginacarregamentoem memória; recarregar zera
elementoelemento casadoem memória; exige gatilho interno que entregue elemento (Evento em elemento ou Elemento visível), senão o servidor recusa a regra
sessãosessão da abana aba; fechar a aba zera
usuárionavegadorno navegador; persiste entre visitas

Os escopos sessão e usuário são lembrados pelo nome da regra: renomear a regra zera a contagem dela.

Aviso

A ordem dos envelopes muda o resultado. De fora para dentro: Uma vez por, Só nas páginas que casam, Filtro em JavaScript e, por último, o gatilho de origem.

Certo: Uma vez por (sessão) > Só nas páginas que casam (/checkout) > Evento em elemento. A regra espera um clique no checkout e então gasta o disparo único.

Trocado: Só nas páginas que casam > Uma vez por > Evento em elemento. O disparo único é gasto no primeiro clique em qualquer página do site, antes de a página ser checada; com escopo sessão ou usuário, a regra pode nunca enviar nada naquele navegador. Da mesma forma, Uma vez por dentro de Filtro em JavaScript faz um disparo vetado pelo filtro consumir a cota.

A API aceita qualquer ordem. O editor detecta a ordem errada, mostra o aviso "A ordem importa aqui" com a consequência e oferece o botão "Corrigir ordem", que só muda a regra se você pedir. O bloco "Saúde" do painel da regra também aponta o caso.

Receitas comuns

O que você quer medirComo montar
Clique no botão de compra, uma vez por sessão, só no checkoutUma vez por (sessão) > Só nas páginas que casam (/checkout) > Evento em elemento (button.comprar, click)
Envio de um formulário de contatoEvento em elemento (form#contato, submit)
Leitura de um artigoTempo de atenção (30, 60, 180 s)
Download de arquivoEvento em elemento (a[href$=".pdf"], click)
Visualização de um bloco de preçosElemento visível (#planos)
Rolagem da páginaProfundidade de rolagem (25, 50, 75, 100)

Capturas

Cada parâmetro do evento tem a sua captura: um passo ou uma cadeia de passos, da esquerda para a direita, em que cada passo recebe o que o anterior produziu. O primeiro passo recebe o elemento que o gatilho entregou (ou nada).

A ordem que evita estouro:

  1. Comece no elemento ou numa fonte da página.
  2. Ande pelo DOM, se o valor não está no próprio elemento.
  3. Leia e transforme o valor.

Sem elemento, os passos que leem elemento não produzem valor; sem evento, Propriedade do evento não produz valor. A paleta do editor mostra esses passos desabilitados com o motivo ("Neste ponto a cadeia não carrega um elemento" ou "Este disparador não entrega um evento").

Do elemento

Recebem elemento, devolvem valor.

PassoDevolve / fazConfiguraNão produz valor quando
Atributo do elemento (Attr)o valor de um atributoo atributo (ex. data-preco)o atributo não existe
Texto visível (Text)o texto do elemento, sem espaços nas pontasnadao texto está vazio
Valor do campo (Value)o valor de um controle de formulárionadao elemento não tem valor
Domínio do link (Hostname)o domínio de um link; útil para separar link externonadao elemento não é um link
Campo do formulário (Field)o valor do campo com esse nome no formulárioo campo (ex. email)o formulário não tem esse campo

Da página

Ignoram o que vem antes, devolvem valor.

PassoDevolve / fazConfiguraNão produz valor quando
Parte da URL (Location)uma parte da URL da páginaa parte
Parâmetro da URL (UrlParam)o valor de um parâmetro da queryo parâmetro (ex. utm_source, sku)o parâmetro não está na URL
Dado do documento (DocumentProp)um dado do documentoo dado
Dado da janela (WindowProp)um dado da janelao dado
Valor fixo (Constant)o valor que você escreve; útil como último caminho de uma Alternativao valor (texto, número ou verdadeiro/falso)
  • Partes da URL: URL completa (href), caminho (pathname), host com porta (host), domínio (hostname), query string (search), fragmento (hash), origem (origin).
  • Dado do documento: title, referrer, readyState, visibilityState, characterSet, contentType.
  • Dado da janela: scrollX, scrollY, innerWidth, innerHeight, outerWidth, outerHeight, devicePixelRatio.

Do evento

PassoDevolve / fazConfiguraNão produz valor quando
Propriedade do evento (EventProp)um dado do evento do navegadorcaminho com pontos (ex. detail.threshold_pct)o gatilho não entrega evento, ou o caminho não existe

Recebem elemento, devolvem elemento.

PassoDevolve / fazConfiguraNão produz valor quando
Sobe até o ancestral (Closest)o ancestral mais próximo que casa com o seletorseletor CSSnenhum ancestral casa
Desce até o descendente (Find)o descendente que casa com o seletorseletor CSSnenhum descendente casa
Sobe um nível (Parent)o elemento painadao elemento não tem pai

Condição

PassoDevolve / fazConfiguraNão produz valor quando
Só se casar com (WhenMatches)deixa o valor passar se casarexpressão regularo valor não casa
Só se for igual a (WhenEquals)deixa o valor passar se for igualvaloro valor é diferente (igualdade estrita)

Transformar

PassoDevolve / fazConfiguraNão produz valor quando
Remove espaços das pontas (Trim)o valor sem espaços nas pontasnada
Minúsculas (Lowercase)o valor em minúsculasnada
Converte para número (ToNumber)o valor como númeronadao valor não é numérico
Recorta com expressão (RegexCapture)o trecho capturado pela expressãoexpressão e grupo (0 a 9, padrão 1)a expressão não casa ou o grupo não existe
Corta no tamanho (Truncate)o valor cortado no tamanhotamanho, de 1 a 500
Vira slug (Slug)o valor sem acentos, em minúsculas, com o que não é letra ou número trocado por _ e _ aparado das pontasnadao resultado fica vazio
Decodifica da URL (UrlDecode)o valor com a codificação de URL desfeitanadao escape está malformado
Vira hash SHA-256 (Hash)o valor como hash SHA-256, calculado no navegador: o dado pessoal nunca é enviado em claro. Para e-mail, telefone ou CPF, use depois de Remove espaços e Minúsculas, para o mesmo valor dar sempre o mesmo hash. Sem este passo, o parâmetro é gravado como veionada

Combinar

PassoDevolve / fazConfiguraNão produz valor quando
Alternativa (Or)tenta os caminhos em ordem contra o mesmo valor de entrada; vence o primeiro que produzir valor. Ex.: o id do produto vem do atributo do card ou, se não houver, do parâmetro sku da URL2 a 8 caminhostodos os caminhos falham

Escotilha

PassoDevolve / fazConfiguraNão produz valor quando
JavaScript (Script)o resultado do códigocorpo de (value, state) => resultadoo código devolve undefined

Parâmetros que toda regra já envia

A tag acrescenta a todo evento href (URL da página), page_title (título) e page_referrer (só quando há referrer); eles não contam como capturas da regra. Uma captura com o mesmo nome sobrepõe o valor base naquele evento, e o editor avisa no parâmetro: "Sobrepõe o parâmetro que toda regra já envia" (o aviso cobre href e page_title). Se essa captura não produzir valor, o parâmetro sai do evento: o valor base não volta.

Halt, estouro e cadeia que termina em elemento

O que aconteceEfeito no eventoExemplo
Halt: um passo não produz valor e a cadeia parao parâmetro é omitido; o evento é enviadoproduto sem preço na página gera evento sem price
Estouro: um passo levanta erroo evento inteiro é descartado, sem aviso, e não só aquele parâmetroParte da URL > Atributo do elemento
A cadeia termina em elemento (último passo é de Navegar no DOM)o evento é enviado com o parâmetro vazio no analytics; o editor avisa no parâmetro e pede para fechar com um passo que produza texto ou númeroSobe até o ancestral sem um passo de leitura depois

Aviso

O servidor aceita passos incompatíveis. Ele não checa a compatibilidade entre passos, e só três passos estouram ao receber um valor em vez de elemento: Atributo do elemento, Sobe até o ancestral e Desce até o descendente. Os outros passos de elemento (Texto visível, Valor do campo, Domínio do link, Campo do formulário, Sobe um nível) só deixam de produzir valor. No editor visual, a paleta não oferece um passo onde ele estouraria; se a cadeia vier pronta (JSON, API), o parâmetro mostra o problema, mas o salvamento não é bloqueado.

Aviso

JavaScript com erro de sintaxe é aceito ao salvar. Vale para Filtro em JavaScript e para o passo JavaScript: o servidor só limita o tamanho, e no navegador a tag pula aquela regra. JavaScript em regra também exige unsafe-eval na política de segurança de conteúdo (CSP) da página, e o código fica legível por qualquer pessoa, porque a configuração das regras é pública.

A faixa "Confira na página" do editor calcula o valor de cada parâmetro contra a página inspecionada, para você ver onde a cadeia não produz valor antes de publicar.

Seletor inválido

A tag liga as regras no navegador em ordem de criação. Um seletor CSS com sintaxe inválida no gatilho (Evento em elemento, Elemento visível) levanta erro ao ligar a regra e interrompe a instrumentação das regras criadas depois dela; as criadas antes continuam medindo. Na captura (Sobe até o ancestral, Desce até o descendente), o seletor inválido só estoura quando a regra dispara: descarta os eventos daquela regra e não afeta as outras.

Cuidado

O servidor não valida CSS, então um seletor inválido passa pela API. O editor recusa salvar e avisa que o seletor interrompe a instrumentação das regras criadas depois. As regras afetadas entram na contagem de regras que não estão medindo em Rastreamento › Visão geral (card "Subdomínios e regras", coluna "Situação das regras"); a lista de regras não as marca. Pausar a regra culpada e publicar devolve as outras, porque regra pausada não é servida.

Limites

Valores acima destes são recusados ao salvar.

LimiteValor
Regras por subdomínio200
Parâmetros (capturas) por regra32
Passos por captura32
Profundidade de uma captura8
Profundidade do gatilho8 níveis, contando o gatilho de origem
Caminhos numa Alternativa2 a 8
Tamanho de uma regra16 KiB
Seletor CSS512 bytes
Padrão (expressão regular)256 bytes
Código JavaScript8 KiB

Os padrões de Só nas páginas que casam, Só se casar com e Recorta com expressão são compilados no servidor com sintaxe mais restrita que a do navegador: sem lookaround e sem backreference. Um padrão que funciona no console do navegador pode ser recusado ao salvar.

Veja também