Skip to main content
Tipo 2 — disponível em beta v2. Chunk lazy-loaded sdk-replay.min.js (~60 KB gzipped, carregado apenas se a sessão for amostrada). Bundle core permanece em ~9 KB. Sem rrweb-player no SDK — replay vive no Dashboard Atlas.

O que é

O Session Replay captura cada interação do jogador (DOM mutations, clicks, scroll, inputs mascarados) e reconstrói a sessão como vídeo no Dashboard Atlas. Use para:
  • Investigar fraude / abuse (sequência exata até o evento)
  • Debug de UX em /deposito, /saque, /kyc (etapas que estão travando)
  • Treinar atendimento (CRM revê última sessão antes do chamado)
  • Análise de funil qualitativa (por que jogadores abandonam após cadastro?)

Diferenças vs Tipo 1 (eventos comportamentais)

Ativação

1

Adicionar bloco sessionReplay no init

2

Verificar no DevTools

Recarregue a página em modo anônimo. Em 10% das sessões deve aparecer:
  • sdk-replay.min.js baixado após o core (lazy)
  • POST /v1/sdk-replay-snapshots a cada ~10s (status 202)
  • Evento replay.started em /v1/sdk-events no canal Tipo 1
3

Cruzar com Tipo 1 no Dashboard

Dashboard → Web Analytics → Replays → filtrar por user_ext_id ou distinct_id. Listagem mostra duração + último URL + eventos críticos (rage clicks, errors) embedded.

Ciclo de vida (13 fases)

O recorder passa por estados bem definidos. Conhecer ajuda a debugar.

API pública

Estimativa de custo

Benchmark briefing v4 §5.11 (operador médio, 150k DAU, 10% sample, 12min sessão). R2 = 0.015/GBarmazenado.Egress=0.015/GB armazenado. Egress = 0 (player consome via signed URL sem cobrança extra). Comparação S3 Standard: ~$2.00/mês com egress equivalente.
Reduzir custo: combine sampleRate: 0.1 (default) com trigger.urlMatchRegex para gravar SÓ sessões críticas (deposito, saque). Veja Session Replay — Triggers.

Limitações conhecidas

Esses pontos vêm do upstream rrweb 2.0-alpha — Atlas não consegue resolver unilateralmente. Documentar é a única mitigação.
  • Cross-origin iframes: por default não são capturados. Browser bloqueia via Same-Origin Policy. Para habilitar, o iframe alvo precisa enviar Access-Control-Allow-Origin + cooperar com o config recordCrossOriginIframes: true.
  • Shadow DOM dinâmico: nós inseridos via attachShadow() após o primeiro snapshot podem não ser observados em algumas versões do rrweb.
  • WebGL / Canvas heavy: por default canvas é OFF. Habilitar gera 5-10× o storage normal (alto custo) — usar SÓ se análise visual de game frames for indispensável. Configurar via canvas.recordCanvas: true + canvasFps: 4.
  • Service Workers em modo restrito: alguns browsers (Brave, Safari Lockdown) bloqueiam Worker compression. SDK cai em fallback usando CompressionStream nativo do navegador — funciona em Chrome 80+/Firefox 113+/Safari 16.4+. Browsers fora dessa faixa enviam Content-Encoding: identity (sem gzip).

Próximos passos

Masking & PII

Hierarquia block/mask/ignore + classes CSS Atlas + proteções hardcoded.

Triggers condicionais

Modo always-on vs URL/event trigger + ring buffer 60s pré-evento.

Network & Console

fetch/XHR capture metric-only + scrubURL + console levels.

LGPD & privacidade

Consent flow + denylist + opt-in. Aplica também a Session Replay.