# Auditoria de Pixel Meta - Chácara Sonho Verde Top

- **LP auditada:** https://chacarasonhoverdetop.com.br
- **Data:** 2026-08-10
- **Responsável pela auditoria:** Leo (dev-designer, Climb Digital)
- **Contexto:** campanha CHÁCARA (ID 120250515556410251) pausada porque auditoria prévia do Bruno (2026-08-07) suspeitou de pixel LEAD sem `last_fired_time`. Sem pixel funcionando o Meta otimiza no escuro.

---

## VEREDITO: PIXEL AUSENTE POR COMPLETO (crítico)

A LP da Chácara **não tem pixel algum instalado**. Nem código base, nem GTM, nem CAPI, nem trigger de Lead. A campanha estava configurada pra otimizar contra `custom_event LEAD` no pixel `1827905078178460`, mas esse pixel nunca recebeu um único hit da LP. Se a campanha voltasse a rodar do jeito que está, o Meta cobra impressão/clique e não tem sinal de conversão nenhum pra otimizar. Fase de aprendizado nunca sai.

Status: **PROBLEMA SIMPLES, PATCH PRONTO, AGUARDANDO OK PRA DEPLOY.**

---

## 1. Evidência do problema

### 1.1 Análise estática do HTML servido
Baixei o HTML direto de `https://chacarasonhoverdetop.com.br` (94 KB, 2253 linhas, servido por Apache/HostGator).

Grep case-insensitive por `fbq|facebook|pixel|fbevents|gtm|googletagmanager|meta.*track`:

```
(vazio - zero matches)
```

Único script externo: `AOS` (animação) e `Swiper` (carrossel de fotos/depoimentos). Nada de tracking.

### 1.2 Validação em runtime via Playwright headless
Rodei Chromium headless carregando a LP até `networkidle` + 3s de espera, interceptando toda requisição HTTP:

| Check | Resultado |
|---|---|
| `typeof window.fbq` | `undefined` |
| `typeof window._fbq` | `undefined` |
| `window.dataLayer` (GTM) | `undefined` |
| Requests para `facebook.com` / `fbevents.js` / `graph.facebook.com` | **0** |
| Requests após click no CTA WhatsApp | **0** |
| Scripts externos carregados | AOS, Swiper (só) |

Ou seja: nem via código direto, nem via GTM, nem via CAPI 3rd party. Zero rastro do Meta.

### 1.3 Confirmação no Meta Events Manager (Graph API)
Consultei o pixel `1827905078178460` (nome CHACARA, BM Francisco Borrello 194633344835973):

```json
{
  "name": "CHACARA",
  "creation_time": "2026-08-10T13:27:24-0300",
  "owner_business": { "id": "194633344835973", "name": "Francisco Borrello" },
  "data_use_setting": "advertising_and_analytics"
}
```

Nota: o campo `last_fired_time` **nem retorna** (quando o pixel nunca disparou, a API omite). Stats de eventos nos últimos 7 dias: `{"data": []}`. Ou seja, pixel criado hoje mesmo (praticamente junto com a campanha) e sem um único evento registrado.

### 1.4 Sobre os IDs mencionados no brief (Matriz/Backup Borrello)
O brief citou dois pixels do Borrello:
- `464623303880507` (Matriz) - usado nas outras props do Borrello (franciscoborrello.com.br, etc)
- `2524745817761620` (Backup)

**Nenhum dos dois é o pixel certo pra essa campanha.** A campanha CHÁCARA está configurada com `promoted_object.pixel_id = 1827905078178460` (pixel nomeado "CHACARA", criado especificamente pra essa conta em 10/08). É esse que precisa ser instalado. Se colocar o do Matriz iria misturar leads de duas operações diferentes no mesmo funil, e a otimização ficaria bagunçada.

---

## 2. Diagnóstico dos gatilhos de conversão que existem na LP

A LP tem 4 CTAs que abrem WhatsApp (número 11 94192-3232). Nenhum tem tracking. Mapeamento:

| # | Local | Linha no HTML | Selector |
|---|---|---|---|
| 1 | Nav "Reservar" (menu topo) | 1446 | `a.btn-primary[href*="wa.me"]` (no `<li class="nav-cta">`) |
| 2 | Seção Localização "Pedir Endereço no WhatsApp" | 1993 | `a[href*="wa.me"]` na section localização |
| 3 | CTA Final #contato "Falar no WhatsApp" | 2032 | `a[href*="wa.me"]` dentro de `.cta-btns` |
| 4 | Botão flutuante fixo (canto inferior direito) | 2094 | `a.wpp-float` |

Não existe form nativo na página. **Todo o funil é WhatsApp direto.** Isso importa pra decisão do evento: como a conversão é intent de contato via clique no botão de WhatsApp (não um submit de form nem uma thank-you page), o gatilho correto é `fbq('track', 'Lead')` no click.

Observação estratégica: como o click abre `wa.me` em `target="_blank"`, o browser pode em alguns casos matar requests pendentes na página original antes de mandar. Por isso o snippet usa `addEventListener` com `capture: true` no document, o que garante o disparo ANTES de qualquer handler que abra a nova aba.

---

## 3. Patch preparado (NÃO deployado ainda)

Dois insertions cirúrgicos, sem tocar em nada do design ou markup existente.

### 3.1 Pixel base no `<head>` (após `<title>`, linha 12)
Snippet oficial do Meta com PageView automático, pixel `1827905078178460`. Salvo em `pixel_fix/snippet_head.html`.

### 3.2 Lead tracker antes dos scripts do `<body>` (linha 2113)
Delegated click listener global que dispara `fbq('track', 'Lead', {...})` sempre que o usuário clica em qualquer `<a>` para `wa.me` ou `api.whatsapp.com`. Cobre os 4 CTAs de uma vez sem precisar editar cada `<a>`. Salvo em `pixel_fix/snippet_lead_tracker.html`.

Custom data enviado com o Lead:
```js
{
  content_name: 'Contato WhatsApp Chacara',
  content_category: '<className do botão>',  // permite ver depois qual CTA mais converte
  value: 1.00,
  currency: 'BRL'
}
```

### 3.3 Arquivos gerados
- `pixel_fix/snippet_head.html` - só o pixel base
- `pixel_fix/snippet_lead_tracker.html` - só o Lead tracker
- `pixel_fix/index.html.original` - HTML original baixado (94459 bytes)
- `pixel_fix/index.html.patched` - HTML com os 2 patches aplicados (pronto pra subir no HostGator)

Diff: **+44 linhas, 0 removidas.** Todos os elementos existentes intactos.

---

## 4. Validação do patch (Playwright, servidor local)

Servi o `index.html.patched` num HTTP local na porta 8791 e rodei o mesmo teste que fez a LP original falhar:

| Check | Antes (LP real) | Depois (patched) |
|---|---|---|
| `typeof window.fbq` | undefined | **function** |
| GET `connect.facebook.net/en_US/fbevents.js` | não | **sim** |
| GET `facebook.com/tr/?ev=PageView&id=1827905078178460` | não | **sim** |
| GET `facebook.com/tr/?ev=Lead&id=1827905078178460` (após click WA) | não | **sim** com `cd[content_name]=Contato WhatsApp Chacara` |

Log real do disparo do Lead:
```
GET https://www.facebook.com/tr/?id=1827905078178460&ev=Lead&dl=...&cd[content_name]=Contato...
```

**Ambos os eventos (PageView + Lead) validados end-to-end antes do deploy.**

---

## 5. Plano de deploy (aguardando OK)

### Onde a LP está hospedada
- IP: `108.179.241.221` (HostGator)
- Server: Apache
- Last-Modified: 16/06/2026 (LP no ar há ~2 meses, sem pixel esse tempo todo)
- **Mesmo IP do `franciscoborrello.com.br`.** Muito provável que seja a mesma conta cPanel do Borrello, com `chacarasonhoverdetop.com.br` como addon domain.

### Credencial disponível
`/opt/mia/config/hostgator/borrello_cpanel.env` (CPANEL_USER + CPANEL_TOKEN + CPANEL_HOST). Se for a mesma conta, o script `/opt/mia/scripts/hostgator_deploy.sh` já resolve.

### Comando de deploy (pré-carregado, não executado)
```bash
/opt/mia/scripts/hostgator_deploy.sh \
  borrello \
  /opt/mia/workspace/clientes/chacara-sonho-verde/pixel_fix/index.html.patched \
  /public_html/chacarasonhoverdetop.com.br/index.html
```
(Caminho remoto exato depende de como o addon está configurado no cPanel; primeira execução verifica.)

### Pós-deploy (checklist obrigatório)
1. Curl na LP em produção e grepar `fbq('init', '1827905078178460')` no HTML retornado.
2. Rodar mesmo teste Playwright contra `https://chacarasonhoverdetop.com.br` e confirmar PageView.
3. Abrir Meta Events Manager > Pixel CHACARA > Test Events, colar URL da LP no "Test Browser Events", clicar num WA CTA, verificar Lead aparecendo em tempo real.
4. Aguardar 15-30 min e conferir se `last_fired_time` popula na API do pixel.
5. Só depois disso liberar o Bruno pra reativar a campanha.

---

## 6. Handoff

- **Correção do pixel na LP:** dentro do meu escopo (leo-web), patch pronto, deploy aguardando OK.
- **Reativação da campanha + demais ajustes (geo duplicada, UTM ausente, orçamento, criativo v6):** com o Bruno, seguindo a auditoria dele de 07/08.
- **Se der pau na credencial cPanel** (chacarasonhoverdetop.com.br não estiver na conta do Borrello): pedir Renato o cPanel específico do domínio.
- **Se quiser CAPI (server-side)** pra recuperar iOS 14+/adblock (~10-25% dos eventos): escopo do Paulo (paulo-dev), envolve endpoint próprio + token de sistema Meta. Não é bloqueante pra rodar hoje; o pixel client-side já resolve 75-90%.

---

## 7. Resumo para a Mia

| Item | Status |
|---|---|
| Pixel instalado na LP? | Não. Zero. |
| Qual pixel deveria estar? | `1827905078178460` (CHACARA, BM Borrello) |
| Evento Lead configurado? | Não existe |
| CAPI? | Não |
| GTM? | Não |
| Patch pronto? | Sim, `pixel_fix/index.html.patched` |
| Patch validado? | Sim, PageView + Lead confirmados via Playwright |
| Deploy feito? | **Não**, aguardando OK (regra: não deploya em produção sem confirmação) |
| Bloqueia campanha? | **Sim**, sem pixel a campanha desperdiça verba |
