## A URL pública

Toda campanha tem uma URL no formato:

```
https://app.medsac.com.br/r/MSAC-{campaign_token}
```

Esse `campaign_token` identifica a **campanha**. Tem 24 caracteres aleatórios, é gerado automaticamente na criação e nunca muda. É o que você divulga.

## O que acontece quando o paciente clica

1. O paciente acessa `/r/MSAC-...`.

2. O MEDSAC registra um **clique**, capturando:

   * UTM (source, medium, campaign, content, term) da URL OU defaults da campanha

   * `gclid` (Google Ads) e `fbclid` (Meta) se presentes

   * User Agent, referer, IP hasheado (LGPD-safe)

   * Timestamp

   * Um **click_token único** de 24 caracteres

3. Redireciona o navegador para `wa.me/<telefone>?text=<mensagem_pre_preenchida_com_token>`.

4. O WhatsApp do paciente abre com a mensagem pronta.

5. Quando o paciente envia, a mensagem chega no MEDSAC.

6. O MEDSAC extrai o `MSAC-...` do texto e vincula o clique àquela conversa.

7. O card MEDSAC aparece no topo da conversa.

## Por que dois tokens?

| Token            | O que identifica                  | Vida                       | Aparece em              |
| ---------------- | --------------------------------- | -------------------------- | ----------------------- |
| `campaign_token` | A campanha (vida longa)           | Da criação ao arquivamento | URL pública             |
| `click_token`    | Um clique específico (vida curta) | Cada clique gera um novo   | Mensagem pré-preenchida |

**Por que não usar um só?** Se duas pessoas clicassem no mesmo link antes da primeira mandar mensagem, com um token único seria impossível saber qual clique veio de cada uma. Com `click_token` distinto por clique, a atribuição é **determinística**.

## O placeholder {{click_token}}

Sua mensagem pré-preenchida **deve** conter `{{click_token}}` em algum lugar. Exemplo:

```
Olá! Tudo bem? Vim pelo Instagram. Código: {{click_token}}
```

No momento do clique, o `{{click_token}}` é substituído pelo token real (`MSAC-RDHs5iokSJZgCSsQzGorMV5r`). É esse trecho que o MEDSAC procura na primeira mensagem do paciente.

## Janela de match

Cada `click_token` expira após **7 dias**. Se o paciente clicar e só mandar mensagem 8 dias depois, o clique fica órfão (visível no relatório como "clique sem conversão") e a conversa não recebe o card.

## E se o paciente apagar o texto?

Se o paciente apagar o `MSAC-...` antes de enviar, perdemos a atribuição. O clique fica órfão. Isso é raro porque o WhatsApp Mobile não incentiva edição da mensagem pré-preenchida.