Skip to main content

Diagnóstico rápido

Cole este snippet no DevTools Console da página onde o SDK roda:

Problemas comuns

window.iGamingSDK é undefined

Causa provável: o bundle não carregou (404, bloqueio CSP, async race). Solução:
  1. Network → procure sdk.min.js → status deve ser 200
  2. Confirme polling do snippet de init:
  1. Se CSP bloqueia, libere domínios:

POSTs falham com CORS error

Causa provável: preflight OPTIONS bloqueado ou origin não permitida. Solução: o endpoint Atlas responde Access-Control-Allow-Origin: * em /v1/sdk-events. Confirme no Network → request OPTIONS retorna 204 com headers corretos. Se seu app usa CSP, libere:

POST retorna 429 Too Many Requests

Causa provável: rate limit per org+brand+ip estourou (default 100 req/s por pod). Solução:
  • Em dev: aguarde 1 minuto e tente novamente
  • Em produção: contate suporte para aumentar o limite via env HTTP_SDK_RATE_LIMIT_PER_SECOND

Eventos somem após capture()flush() não envia nada

Causa provável: SDK em estado opt-out persistido em localStorage. Como confirmar:
Se optedIn: false e/ou storage: '0' → SDK silenciado. Solução:
Ou reset completo (apaga todo estado):

Eventos chegam mas user_ext_id está vazio

Causa provável: identify() nunca foi chamado. Solução: chame identify(userId, traits) no callback de login do seu app. Veja Identificar usuário.

Eventos não aparecem no Kafka mesmo após flush()

Causa 1: Mixed content — page HTTPS chamando endpoint HTTP.
Solução: use endpoint HTTPS (production Atlas) ou teste em page HTTP local. Causa 2: Extensão bloqueando (uBlock, Privacy Badger, Brave Shields). Verifique:
Se o array está vazio mas você chamou flush() → request bloqueado pela extensão. Teste em janela anônima. Causa 3: Endpoint errado.

Heatmap não dispara

Causa provável: sessão não foi amostrada (default 10%). Solução em dev:

Buffer não envia antes de 30s

Comportamento esperado. O SDK acumula eventos e flusha em:
  • 50 eventos no buffer
  • 30 segundos desde último flush
  • visibilitychange:hidden / beforeunload
  • iGamingSDK.flush() manual
Solução para envio imediato:

Vários session.ended em pouco tempo

Causa provável: usuário alternando entre tabs frequentemente (visibilitychange:hidden dispara em cada switch). Solução: comportamento esperado e correto. O dashboard agrega corretamente — não trata cada session.ended como sessão nova, apenas o último wins.

Erro “respect_dnt is true and navigator.doNotTrack is ‘1’”

Não é um erro — é o SDK respeitando o sinal DNT do browser do usuário e silenciando captura. Configurações relacionadas:
Ou peça consent explícito:

Cookies não persistem entre subdomínios

Causa provável: auto-detect do cookie_domain falhou (TLD composto). Solução: force o domínio raiz:

Bundle muito grande para meu CSP / quote bundle

O bundle core é ~8 KB gzipped. Se ainda precisa reduzir:
  1. Desligue capture_performance: false se não usa Web Vitals (economiza ~2KB peer dep)
  2. Use a build core sem polyfills (assume ES2020+)

Coletar logs para suporte

Antes de abrir ticket de suporte, capture:
Cole o output no ticket — acelera diagnóstico.

Suporte