Pular para o conteúdo principal

Glossário

Termos que aparecem nesta doc (e em conversas com dev/BI) — definidos com a interpretação que o front-end Cactus usa, não a definição genérica de mercado quando elas divergem.


Atribuição

Last-touch — política em que cada UTM nova sobrescreve as anteriores. O canal final que trouxe o user antes da conversão leva o crédito. É o que a Cactus usa em todas as brands desde o legado Vue.

First-touch — política oposta: o primeiro canal capturado é preservado e nunca sobrescrito. Mais comum em campanhas de awareness. Não é a política da Cactus — mudar exige alinhamento com BI (relatórios calibrados em last-touch).

Attribution window — janela de tempo entre o clique e a conversão durante a qual a atribuição ainda vale. No front, é definida pelo TTL do cookie_tracking: default 30 dias (720 horas), configurável por brand via trackingCookieTtlHours. Brands que sobrescrevem hoje: 7k-bet-br 720h, betpontobet-bet-br 240h, donald-bet-br 240h.

FTD (First-Time Deposit) — primeiro depósito do usuário. Detectado por user.ftd_value === 0 ANTES do depósito, e por response do BFF DEPOIS. Dispara eventos especiais (first_deposit, pix_confirmado_ftd, AppsFlyer dep) distintos de rebill.

Rebill — qualquer depósito que não seja o primeiro. Dispara second_deposit no GTM (nome herdado do legado 7k — significa "qualquer não-FTD"), pix_confirmado no GTM, AppsFlyer rebill.


Identificadores

external_id — UUID first-party gerado pelo front, persistido no cookie de remarketing da brand (rmk7k, rmkbpb, rmkst77, etc), enviado como identificador estável pra Meta CAPI / Google Enhanced Conversions / TikTok Events API. Funciona mesmo sem cookie de terceiro (iOS 14+, ITP, Brave).

ga_client_id — Google Analytics client ID, formato GA1.1.XXXXXX.YYYYYY. Lido raw do cookie _ga e enviado nos payloads de signup/deposit pro BFF.

affiliation_code — código de afiliado capturado da URL (aliases: aff, ref, referenceCode, btag, b_tag, btagid). Persistido no cookie_tracking e enviado no payload de signup. Não vai no deposit (paridade legado).

subid — sub-ID de afiliado (RedTrack, Tonic). Aliases: subid, sub_id. Capturado e enviado no payload de signup.

cinfoId / cinfoIdRef — IDs de tracking gerados pelo BFF e ecoados em headers de response (X-INFOS-ID/X-INFOS-REF) após login/register. Persistidos no cookie_referrer e enviados de volta como X-ORIGIN-CINFO-ID/X-ORIGIN-CINFO-ID-REF em todas as requests subsequentes.

appsflyer_id / advertising_id — IDs nativos do mobile (TWA), persistidos em sessionStorage. Usados só em modo app (?app=true).


Plataformas

CAPI (Conversions API) — protocolo da Meta pra enviar eventos server-side, paralelo ao Pixel client-side. Permite atribuição mesmo com Pixel bloqueado (ad blockers, ITP). Identidade primária é o external_id. Cactus tem CAPI no roadmap (server-side via BFF) — hoje só Pixel client-side.

Enhanced Conversions — equivalente do CAPI no Google Ads. Mesma ideia: server-side com identidade enriquecida (e-mail, telefone, external_id). Roadmap.

Events API (TikTok) — equivalente da CAPI da Meta no TikTok. Roadmap.

S2S (Server-to-Server) — envio de evento direto do servidor pra plataforma de ads, sem passar pelo browser. Mais resistente a ad blockers. AppsFlyer é o único integrado em S2S hoje; o encaminhamento passa por uma rota interna do próprio front (/api/tracking/appsflyer) e vale pra UA mobile em geral, não só TWA. Ver AppsFlyer.

Pixel — script client-side da plataforma de ads que dispara eventos do browser. Carregado pelo GTM ou direto pelo useAnalytics.

Tracker — termo genérico pra qualquer ferramenta de tracking (Pixel, GTM, Hotjar, Clarity, etc).

Floodlight / DV360 — sistema de conversões do Google Marketing Platform. Diferente do Google Ads (que vive todo no GTM), o Floodlight é carregado pelo próprio front via gtag.js com o tag id DC-<advertiserId>, e dispara gtag('event','conversion',{ send_to }). Ativo em 2 brands. Ver Floodlight.

Pendo — product analytics + in-app guides / tours / NPS. Recebe 3 eventos manuais do hook (app_loaded, login, logout) e 3 de conversão pela matriz (sign_up, deposit_confirmed, withdraw). Carrega numa lane só de interação — não existe antes do primeiro clique. Ver Pendo.

Mixpanelnão existe mais. A integração foi removida de todas as brands em 2026-05: não há hook, config, package nem canal na matriz. Tracking spec ou dashboard que ainda citem Mixpanel estão desatualizados.


Privacidade

GCM v2 (Google Consent Mode v2) — protocolo do Google pra propagar consent do usuário pros tags GTM. 7 sinais: analytics_storage, ad_storage, ad_user_data, ad_personalization, functionality_storage, personalization_storage, security_storage. Cada um pode ser granted ou denied. Os defaults são injetados no dataLayer antes do container carregar — e, nas brands com anaLayer, também no dataLayer customizado, antes do container secundário. O wrapper gtag usado pra isso fica em window.__gtagConsent.

LGPD — Lei Geral de Proteção de Dados (Brasil). O banner de cookies do front trabalha com 4 categorias (necessary, performance, functionality, others) e persiste a escolha em cookies_consent por 12 meses. A tabela de divulgação que o usuário vê no painel é a COOKIE_TABLE de app/utils/consent.ts. Qual é o estado default de consent e o que a recusa do usuário efetivamente faz está descrito em Consent LGPD — o comportamento shipado difere da descrição antiga e precisa da confirmação do responsável por LGPD.

Modo cosmético — flag cookieConsentCosmeticOnly. Controla se a recusa do usuário no banner tem efeito. Estado default e brands afetadas em Modo Cosmético (página em revisão do owner de LGPD).


Eventos

Funnel signal — sinal binário e durável (registered, ftd_completed). Persiste no cookie de remarketing como audience tag.

Streaming event — sinal volumétrico (cada view_game_page, cada deposit_initiated). Vai pro dataLayer, é processado pelo GTM e disparado pros pixels. Não persiste no cookie.

view_item_list — evento GA4 ecommerce-standard que o front dispara quando uma seção da home/cassino entra no viewport pela primeira vez (após scroll). Vai pra GTM com array de itens.

view_promotion / select_promotion — eventos GA4 ecommerce de banner. Disparados quando user vê / clica em banner ou card de promoção.


Infraestrutura

TWA (Trusted Web Activity) — APK Android que renderiza o site num WebView Chrome controlado. Comporta-se como app nativo (push, install, full screen). Injeta ?app=true (ou ?is_twa=true) na URL inicial. Detalhes em App Mode.

?app=true / ?is_twa=true — query strings equivalentes que identificam o site rodando dentro de um TWA. is_twa existe porque os APKs publicados antes do rename ainda o injetam — ignorá-lo já matou silenciosamente o S2S de AppsFlyer pra esses usuários. O flag persiste em sessionStorage["cookie_app_mode"].

Efeito: desativa os trackers web client-side — a fórmula do gate é shouldLoadTrackers = !isAppMode. AppsFlyer permanece ativo (e é chamado antes do gate). Nas brands com anaLayer, os eventos do anaLayer são redirecionados pro AppsFlyer em vez do GTM.

:::note A cláusula de bot foi removida A fórmula documentada antes era !isAppMode && !isBot. O && !isBot saiu junto com o branch de auditoria sintética na revisão de scheduler de 2026-06 — bots e Lighthouse carregam os mesmos scripts que usuário real, deliberadamente ("sem inflar score"). :::

BFF (Backend-for-Frontend) — camada de API que serve o front. Endpoints em /bff/*. Recebe os payloads de signup/deposit com UTMs.

GTM (Google Tag Manager) — container que orquestra pixels client-side (Meta, Google, TikTok, Kwai, Taboola, etc) sem precisar deploy de front.

anaLayersegundo container GTM por brand, que lê de um dataLayer customizado (window.anaLayer) em vez do window.dataLayer. Catálogo de eventos próprio (33 hoje), isolado do stack antigo. Ativo em 4 brands — e na 7k-bet-br o GTM primário está desligado em prod, então lá o anaLayer é o único container. Ver anaLayer.

Stape (GTM Server-Side) — proxy GTM rodando em domínio próprio (ex: https://stape.brand.com). Configurável via gtmProxyUrl ou gtmScriptUrl na analyticsConfig; os dois setups vivos (betpontobet-bet-br, donald-bet-br) usam gtmScriptUrl — path ofuscado com o container ID em base64. gtmProxyUrl não é usado por nenhuma brand hoje.

dataLayer — array global do GTM (window.dataLayer). Front faz dataLayer.push({ event: "X", ... }) e GTM dispara as tags configuradas.

marketingScriptsStrategy"eager" (default) ou "engagement". Controla quando o script de marketing baixa, não o que é medido: no modo engagement as filas nascem no mount e o download vai pra primeira interação real ou pro deadline marketingScriptsMaxDelayMs (default 5000ms). Nenhum evento é descartado. Hoje ligado em 7k-bet-br. Ver GTM.

enabledSpecificEvents — whitelist de eventos por brand no dispatcher GTM. Evento fora da lista no-opa silenciosamente. Ligado em betpontobet-bet-br e donald-bet-br (11 chaves cada). É a primeira coisa a checar quando "o evento X não dispara nessa brand".

Prerender guard — o dispatcher de analytics e o scheduler de terceiros seguram tudo enquanto document.prerendering === true e dão flush no prerenderingchange. Evita pageview/conversão fantasma de página pré-renderizada que o usuário nunca visitou. É correção de atribuição, não bug.

brand override — arquivo em overrides/<brand>/app/config/... que substitui (file-replacement, sem deep-merge) o config default do base. É como cada brand customiza pixel IDs, GTM ID, feature flags etc.


Misc

X-ORIGIN-* — família de headers HTTP injetados em toda chamada API pelo @cactus-agents/api-client. Carregam referrer, IDs de tracking e enum de access (1=App, 4=Mobile, etc). Usados pelo BFF pra atribuição e anti-fraude.

X-LOG-INFO — header de tracing único por request, formato 1-{timestamp}-{buildId}. Permite correlacionar logs server-side ao deploy específico.

build-id — primeiros 12 chars do commit SHA do deploy. Injetado em cookies de cache, headers de tracing, query string de scripts externos. Muda a cada deploy.

Wildcard utm_* — qualquer query param que comece com utm_ é capturado dinamicamente (não só os 4 canonical). Permite marketing adicionar utm_oferta, utm_term, utm_creative, utm_placement sem precisar deploy de front. Detalhes em UTMs.

Clicked-ID — ID de clique gerado pela plataforma de ads (gclid Google, fbclid Meta, ttclid TikTok, mgclid MGID, tclid Taboola, kwclid Kwai, obclid Outbrain, gbraid/wbraid Google iOS-15+). Capturado da URL e persistido individualmente no cookie_tracking. Detalhes em Clicked-IDs.