# PostHog nas LPs e ligado ao Claude · Guia para Funnel Builders

Guia da Get Digital para quem constrói as LPs e os funis. No fim, cada LP manda para o PostHog as visitas, os cliques, o scroll, as gravações de sessão e as conversões, e o Claude consegue ler tudo isso para fazer relatórios e dar ideias à equipa.

**O que o PostHog dá (numa só ferramenta):** analytics de páginas e funis, **heatmaps** (cliques e scroll), **gravações de sessão** (ver o que a pessoa fez na LP), **testes A/B**, **inquéritos** na página e um **conector oficial para o Claude**. Faz o trabalho do Hotjar e de boa parte do GA4 nas LPs.

---

## Índice

1. [Conta e organização (uma vez)](#1-conta-e-organização-uma-vez)
2. [Instalar o PostHog numa LP](#2-instalar-o-posthog-numa-lp)
3. [Ativar heatmaps e gravações](#3-ativar-heatmaps-e-gravações)
4. [Medir conversões (incluindo formulários GHL)](#4-medir-conversões-incluindo-formulários-ghl)
5. [Privacidade (RGPD)](#5-privacidade-rgpd)
6. [Ligar o PostHog ao Claude](#6-ligar-o-posthog-ao-claude)
7. [Checklist por LP](#7-checklist-por-lp)
8. [Problemas comuns](#8-problemas-comuns)

---

## 1. Conta e organização (uma vez)

1. Cria a conta em [eu.posthog.com](https://eu.posthog.com/signup), na **EU Cloud**. Os dados ficam na Europa, o que facilita o RGPD.
2. Organização: **Get Digital**. Convida a equipa em **Settings › Organization › Members** (funnel builders como Admin; designers e copywriters como Member).
3. **Como organizar os clientes.** Há duas formas:
   - **Para começar (grátis):** um só projeto, por exemplo "LPs Get Digital", com todas as LPs. Filtras por cliente pelo domínio (a propriedade `Host` / `$host`). O plano gratuito tem um limite de projetos, por isso esta é a forma de começar sem custos.
   - **Quando houver mais clientes:** um projeto por cliente, ligando o plano "pay-as-you-go". As quantidades gratuitas mensais continuam a aplicar-se e podes pôr um **limite de faturação** para não haver surpresas. Confirma os valores atuais em [posthog.com/pricing](https://posthog.com/pricing) antes de decidir.

> Regra igual à do Hotjar: nunca copies a chave do projeto de uma LP para outra de outro cliente sem pensar. Se usas um projeto por cliente, cada cliente tem a sua chave.

---

## 2. Instalar o PostHog numa LP

### 2.1 Copiar o snippet

Em **Settings › Project › General** (ou no onboarding), copia o **Web snippet**. Já vem com a chave do projeto (`phc_...`) e com o endereço da EU (`https://eu.i.posthog.com`).

No `posthog.init(...)` do snippet, confirma ou acrescenta estas opções:

```js
posthog.init('phc_A_TUA_CHAVE', {
  api_host: 'https://eu.i.posthog.com',
  defaults: '2025-05-24',           // se o snippet trouxer outra data, deixa a dele
  person_profiles: 'identified_only',
  capture_pageview: true,
  capture_pageleave: true,          // precisas disto para o mapa de scroll
  enable_heatmaps: true,            // heatmaps de cliques e movimentos
  session_recording: {
    maskAllInputs: true             // esconde o que se escreve nos campos nas gravações
  }
})
```

### 2.2 Onde colar

Cola o snippet completo no **head** da página:

- **GoHighLevel (funis e sites):** no funil ou site, **Settings › Tracking Code › Header Code**. Isto aplica-se a todas as páginas desse funil. Para uma página só: abre a página no editor › **Settings › Tracking Code › Header**.
- **Unbounce:** na página, **JavaScripts › Add a script** › Placement: **Head** › cola e guarda. Volta a publicar a página.
- **WordPress:** num plugin de código no header (por exemplo, "WPCode") ou no tema, em `<head>`.
- **HTML próprio:** antes de `</head>`.

### 2.3 Confirmar que está a funcionar

1. Abre a LP publicada numa janela anónima e clica em algumas coisas.
2. No PostHog, vai a **Activity** (ou **Events**): devem aparecer `$pageview` e `$autocapture` com o URL da LP em menos de 1 minuto.
3. Em **Web analytics** deve aparecer a visita.

> Se não aparecer nada: confirma que publicaste a página depois de colar o código e que não há um bloqueador de anúncios ativo na tua janela de teste.

---

## 3. Ativar heatmaps e gravações

Em **Settings › Project** (ou **Environment**, conforme a conta):

1. **Autocapture:** ligado (vem ligado). Os heatmaps de cliques precisam dele.
2. **Heatmaps:** liga a captura de heatmaps e, em **Heatmap capture URLs**, põe os domínios das LPs (podes usar `*`, por exemplo `https://*.cliente.pt/*`).
3. **Session replay › Record user sessions:** ligado.
   - Em **Authorized domains**, junta os domínios das LPs (sem isto as gravações podem não aparecer).
   - Deixa ligada a opção de esconder os campos de texto (masking).
4. **Web analytics:** ligado.

**Para ver um heatmap:** **Heatmaps** › em **Display URL** põe o URL da LP › escolhe cliques, movimentos ou scroll. O plano gratuito deixa ver heatmaps de algumas páginas na app. Para mais, ou para usar a barra de ferramentas por cima da LP, é preciso o plano pago.

---

## 4. Medir conversões (incluindo formulários GHL)

O formulário do GHL (widget) e muitos calendários vivem dentro de um **iframe** de outro domínio. O PostHog não vê o que se passa lá dentro, nem nos cliques nem nas gravações. Por isso, a conversão mede-se pela **página de obrigado**.

1. Garante que o formulário redireciona para a página de obrigado (ex.: `/obrigado`) e que essa página também tem o snippet.
2. No PostHog, em **Data management › Actions › New action**, cria **Lead [cliente]**: evento `Pageview`, URL contém `/obrigado` (e o domínio do cliente).
3. Cria o funil: **Product analytics › New insight › Funnel**:
   - Passo 1: `Pageview` com URL contém o endereço da LP.
   - Passo 2: a action **Lead [cliente]**.
   - Guarda como "Funil · [cliente] · [LP]" e junta-o a um dashboard do cliente.
4. **Botões importantes (CTA):** o autocapture apanha os cliques. Para os distinguir facilmente, podes acrescentar ao botão o atributo `data-ph-capture-attribute-cta="hero"` (ou "preco", "rodape"...).
5. **Formulários que não são iframe** (HTML próprio, Unbounce): o autocapture regista o `submit`. Mesmo assim, a página de obrigado continua a ser a medida mais fiável.

---

## 5. Privacidade (RGPD)

- Usa a **EU Cloud** (secção 1).
- Mantém `maskAllInputs: true`: os emails e telefones escritos nos formulários não aparecem nas gravações.
- **Cookies e consentimento:** se a LP tem banner de cookies, o PostHog só deve gravar depois de a pessoa aceitar. A forma simples é iniciar com `opt_out_capturing_by_default: true` e chamar `posthog.opt_in_capturing()` quando a pessoa aceita no banner. Combina com o cliente e com a política de privacidade da LP.
- Não envies dados pessoais em eventos personalizados (nomes, emails, telefones).

---

## 6. Ligar o PostHog ao Claude

O PostHog tem um **conector oficial**. Funciona no Cowork, no chat e no Claude Code.

1. Na app do Claude: **Personalizar › Conectores › + › Adicionar conector personalizado**.
2. Preenche e carrega em **Adicionar**:
   - **Nome:** `PostHog`
   - **URL:**
     - Funnel builders (podem criar e alterar insights, testes, inquéritos): `https://mcp.posthog.com/mcp`
     - **Designers e copywriters (só leitura, não alteram nada):** `https://mcp.posthog.com/mcp?readonly=true`
3. Carrega em **Ligar** e faz login com a conta do PostHog. O conector vai sozinho para a EU Cloud, conforme a conta.
4. Testa numa conversa nova: *"No PostHog, quantas visitas e leads teve a LP [url] nos últimos 7 dias?"*

> Se tiveres vários projetos e quiseres fixar um, junta ao URL `project_id=ID_DO_PROJETO` (o ID está em Settings › Project). Ex.: `https://mcp.posthog.com/mcp?readonly=true&project_id=12345`.

> O conector é gratuito. Algumas funções que usam a IA do próprio PostHog (resumos automáticos) podem contar como gasto de IA no PostHog e só funcionam se a organização tiver o processamento de IA ligado.

**Pedidos úteis para funnel builders:**
- *"Cria no PostHog um funil da LP [url] para a página de obrigado, dos últimos 30 dias, e diz-me onde se perde mais gente."*
- *"Compara a conversão desta LP no telemóvel e no computador."*
- *"Lista os eventos que esta LP está a enviar e diz-me se falta algum importante."*
- *"Cria um dashboard para o cliente [nome] com visitas, leads, taxa de conversão e as 5 fontes de tráfego principais."*

---

## 7. Checklist por LP

- [ ] Snippet no head (LP **e** página de obrigado), com `enable_heatmaps` e `capture_pageleave`
- [ ] `$pageview` aparece no Activity com o URL certo
- [ ] Domínio nas **Authorized domains** das gravações e nos **Heatmap capture URLs**
- [ ] Action **Lead [cliente]** criada (página de obrigado)
- [ ] Funil e dashboard do cliente criados
- [ ] Banner de cookies e opt-in combinados com o cliente
- [ ] Avisar os designers e copywriters de que a LP já está a recolher dados (passa ao guia deles)

---

## 8. Problemas comuns

- **Não aparecem eventos.** A página foi republicada depois de colar o código? Testa sem bloqueador de anúncios. Confirma que o `api_host` é `https://eu.i.posthog.com` se a conta é EU.
- **Aparecem eventos mas não há gravações.** Falta o domínio nas Authorized domains, ou a gravação está desligada no projeto.
- **Heatmap vazio.** Falta `enable_heatmaps: true` ou a captura nas definições; para o scroll falta `capture_pageleave: true`. Os dados só começam a contar a partir do momento em que ligas.
- **Não vejo o que acontece dentro do formulário.** É um iframe (GHL e calendários): mede pela página de obrigado (secção 4).
- **O Claude diz que não encontra a LP.** Indica o URL exato e o período. Se tens vários projetos, diz qual ou fixa o `project_id` no conector.

---

Fontes oficiais: [PostHog MCP](https://posthog.com/docs/model-context-protocol) · [MCP FAQ (só leitura, filtros)](https://posthog.com/docs/model-context-protocol/faq) · [Heatmaps](https://posthog.com/docs/toolbar/heatmaps) · [Preços](https://posthog.com/pricing)

Feito por Tiago Mendes · Get Digital
