> ## Documentation Index
> Fetch the complete documentation index at: https://lifters.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Web Analytics SDK

> SDK JavaScript leve para captura de comportamento web em operadores iGaming. Integra Kafka → ClickHouse → Dashboard Atlas.

<Info>
  **Disponível em beta v1.** Bundle 8 KB gzipped, sem dependências externas,
  compatível com browsers modernos (ES2020+). Catálogo de 14 eventos
  comportamentais Tipo 1 — Session Replay (Tipo 2) chega em v2.
</Info>

## O que é

O **Atlas Web Analytics SDK** (`@atlas/webanalytics`) roda no browser do jogador
final e captura automaticamente eventos de comportamento web. Os dados são
enviados em batches para a API Atlas, persistidos em Kafka + ClickHouse e
disponibilizados no Dashboard para análise.

**Use o SDK para:**

* Mapear o funil completo do jogador (pageview → cadastro → KYC → depósito → aposta)
* Identificar atrito de UX (rage clicks, dead clicks, erros JS)
* Medir performance percebida (Core Web Vitals)
* Cruzar comportamento web com transações server-side via `user_ext_id`

## Diferenças vs Events API

|                       | [Events API](/api-reference/events/overview) | Web Analytics SDK                            |
| --------------------- | -------------------------------------------- | -------------------------------------------- |
| **Origem**            | Servidor do operador                         | Browser do jogador                           |
| **Auth**              | API key (secret)                             | `organization_id` + `brand_id` (público)     |
| **Latência**          | Configurável                                 | Real-time (batch 50/30s)                     |
| **Captura**           | Transacional (bet, deposit, settlement)      | Comportamental (page, click, scroll, vitals) |
| **Volume típico**     | Milhares/dia/operador                        | Milhões/dia/operador                         |
| **Tópico Kafka**      | `atlas.events.raw.*`                         | `atlas.sdk-events`                           |
| **Tabela ClickHouse** | `tbt_raw_events_*`                           | `tbt_sdk_events`                             |

Os dois pipelines são complementares e se cruzam no Dashboard via
`user_ext_id ↔ distinct_id` (criado quando o SDK chama `identify()`).

## Arquitetura

```
Browser do jogador
    │
    │ POST /v1/sdk-events
    │ (batch JSON, CORS *)
    ▼
events/ API (Go)
    │
    │ enrich IP + User-Agent
    │
    ▼
Kafka  atlas.sdk-events  →  atlas.sdk-events.dlq
    │
    ▼
ClickHouse  atlas.tbt_sdk_events
    │
    ▼
Dashboard Atlas (M8 Web Analytics)
```

## Catálogo de eventos

<CardGroup cols={2}>
  <Card title="Sessão (3)" icon="user-clock">
    `session.started`, `session.heartbeat`, `session.ended`
  </Card>

  <Card title="Pageview (2)" icon="file-lines">
    `page.viewed`, `page.left`
  </Card>

  <Card title="Interação (5)" icon="hand-pointer">
    `ig.autocapture`, `rage.click`, `dead.click`, `scroll.depth`, `heatmap.click`
  </Card>

  <Card title="Performance (2)" icon="gauge-high">
    `web.vitals`, `error.occurred`
  </Card>

  <Card title="Identidade (2)" icon="id-badge">
    `user.identified`, `feature_flag.called`
  </Card>

  <Card title="Custom" icon="code">
    Qualquer nome via `iGamingSDK.capture('event.name', props)`
  </Card>
</CardGroup>

Ver detalhes em [Catálogo de eventos](/sdk/web-analytics/events).

## Próximos passos

<Steps>
  <Step title="Instalar o SDK">
    Inclua o bundle no `<head>` do seu app — via CDN, hosting próprio ou Google Tag Manager.
    Veja [Instalação](/sdk/web-analytics/installation).
  </Step>

  <Step title="Inicializar com seus IDs">
    Chame `iGamingSDK.init({ organizationId, brandId, endpoint })`.
    Veja [Configuração](/sdk/web-analytics/configuration).
  </Step>

  <Step title="Identificar usuário após login">
    Chame `iGamingSDK.identify(userId, traits)` para vincular comportamento ao usuário interno.
    Veja [Identificar usuário](/sdk/web-analytics/identify).
  </Step>

  <Step title="Disparar eventos custom">
    `iGamingSDK.capture('deposit.intent', { amount, method })` nos pontos-chave do funil.
    Veja [Catálogo de eventos](/sdk/web-analytics/events).
  </Step>

  <Step title="Respeitar LGPD">
    Configure consent flow com `opt_in_capturing()` / `opt_out_capturing()`.
    Veja [Privacidade & LGPD](/sdk/web-analytics/privacy).
  </Step>
</Steps>

## Especificações

| Atributo            | Valor                                                   |
| ------------------- | ------------------------------------------------------- |
| Pacote npm          | `@atlas/webanalytics`                                   |
| Tamanho bundle      | 8 KB gzipped (core)                                     |
| Browsers suportados | ES2020+ (Chrome 85+, Safari 14+, Firefox 78+, Edge 85+) |
| Node SDK            | Não — apenas browser                                    |
| Endpoint            | `POST /api/v1/sdk-events`                               |
| Batch               | 50 eventos OU 30 segundos OU unload                     |
| Retry               | Exponencial backoff (4 tentativas, max 30s)             |
| Persistência        | localStorage + cookie (cross-subdomain)                 |
| Licença             | Apache 2.0                                              |
