# Plano de Campanha — Meta Ads | Cloud PhotoRF 2.0 · OFERTA pós-lançamento

**Responsável:** Bruno (Gestão de Tráfego — Climb Digital)
**Data:** 08/10/2026
**Status:** PLANO PARA APROVAÇÃO — nada foi criado no Meta Ads Manager. Renato aprova, resolvo as pendências bloqueantes, só então subo a campanha em PAUSED e ativo com OK explícito.
**Destino:** `https://oferta.px3lab.com.br` (landing de oferta, 3 CTAs de WhatsApp + vídeo do YouTube do lançamento embebido)
**Momento:** pós-lançamento (lançamento foi 07/10). Agora é conversão para WhatsApp / venda consultiva, não mais lista de espera.

---

## 0. Resumo executivo

| Item | Definição |
|---|---|
| **Produto** | Cloud PhotoRF 2.0 — software de separação/organização de fotos por IA (nicho fotógrafo de formatura/eventos) |
| **Objetivo da campanha** | Levar tráfego qualificado pra landing de oferta e gerar **conversas no WhatsApp** com o time comercial PX3 |
| **Objetivo Meta recomendado** | **OUTCOME_SALES/LEADS otimizando pelo evento de clique no WhatsApp** (ver Seção 2 — depende de instalar o evento server-side primeiro). Fallback tático descrito. |
| **Conta** | `act_519765955435243` — "PX3LAB \| Vinicius Amaral" (BRL, America/Sao_Paulo) |
| **Pixel** | `1509133033542161` — "[Pixel] PX3 - Site" (mesmo da landing e do receiver CAPI) |
| **Estrutura** | 1 campanha CBO, 3 adsets (interesses, LAL, retargeting) |
| **Budget inicial** | Recomendado R$150/dia total · teste 5-7 dias (3 cenários na Seção 5) |
| **Nome** | `[PX3][CONV][CloudPhotoRF2][Oferta][Out26]` |
| **BLOQUEANTE** | O evento de clique no WhatsApp (`InitiateConversation` / `Contact`) **NÃO existe hoje** — nem no pixel da landing, nem no receiver CAPI. Sem ele a campanha otimiza no escuro. Ver Seção 7. |

> **Verificado ao vivo nesta análise:** landing no ar (HTTP 200), pixel dispara `PageView` (browser + CAPI async), receiver CAPI saudável (`/health` ok, pixel 1509133033542161, prod). Os 3 botões de WhatsApp montam `wa.me` com UTM na mensagem, mas **não disparam evento nenhum** no clique.

---

## 1. Conta / BM / Pixel

- **Conta de anúncios:** `act_519765955435243` — "PX3LAB | Vinicius Amaral"
  - Business: **PX3 LAB SOLUCOES INTELIGENTES LTDA**
  - Moeda BRL · Timezone America/Sao_Paulo · Conta ativa e saudável (confirmado no lançamento 01/10)
  - **ATENÇÃO — não confundir contas.** O business PX3 tem 5 contas. A `act_10201029181486329` ("Flávia Paiva") é do mesmo business mas NÃO tem o pixel do lançamento — não usar. E `act_517468148842987` é do **Borrello**, outro cliente.
- **Pixel:** `1509133033542161` ("[Pixel] PX3 - Site") — confirmado ligado a essa conta, é o que já está na landing e no receiver CAPI `track-capi-px3.agentesclimb.us`.
- **CAPI:** receiver em `track-capi-px3.agentesclimb.us` (endpoints `/pageview`, `/purchase`, `/lead` — **falta `/initiateconversation`**, ver Seção 7). Token admin em `/opt/mia/config/meta_capi_px3.env`, API v22.0.
- **BM owner do pixel:** "Vinícius Amaral's Business" (`543286572818204`).

**Permissões necessárias antes de subir:**
1. Acesso de anúncios na `act_519765955435243` (já temos via token do Renato).
2. **Página do Facebook + conta do Instagram da PX3 Lab vinculadas como identidade do anúncio.** No lançamento a API retornou `promote_pages` vazio — precisa confirmar com o Renato qual página/IG usar, senão o anúncio não publica. **Pendência repetida do lançamento — confirmar de uma vez.**
3. Meio de pagamento com saldo/limite pro débito diário (no lançamento a conta estava com R$114,70 de saldo em cartão — confirmar que aguenta o budget escolhido).

---

## 2. Objetivo — recomendação

**Contexto:** a oferta é consultiva (software de ticket alto, venda por WhatsApp com o time). O destino tem 3 CTAs de WhatsApp. Duas rotas possíveis:

### Rota A (RECOMENDADA) — Conversões no site, otimizando pelo clique no WhatsApp
- Objetivo Meta: **OUTCOME_SALES** (ou LEADS) → otimização por evento **`Contact`** ou **`InitiateConversation`** disparado no clique dos botões de WhatsApp da landing.
- **Vantagem:** a pessoa passa pela landing (vê o vídeo do lançamento, as 8 funcionalidades, entende a oferta) ANTES de chamar no WhatsApp → lead muito mais quente, menos "curioso" chegando no comercial.
- **Pré-requisito duro:** o evento de clique precisa existir e ser recebido pelo pixel (browser + CAPI). **Hoje não existe.** É o bloqueante da Seção 7.
- Enquanto o evento não acumula volume (~50 conversões/semana por adset pra sair da aprendizagem), otimizar por **ViewContent / Landing Page View** como sinal intermediário.

### Rota B (fallback) — Mensagens / Click-to-WhatsApp direto no Meta
- Objetivo Meta: **OUTCOME_ENGAGEMENT → destino WhatsApp** (abre o WhatsApp direto do anúncio, sem passar pela landing).
- **Vantagem:** otimização nativa do Meta por conversas iniciadas, funciona no D0 sem depender de instalar CAPI de clique.
- **Desvantagem:** pula a landing → perde o vídeo do lançamento e o pré-aquecimento → lead mais frio, mais volume de curioso no WhatsApp do time. E perde o rastreamento UTM limpo na landing.

**Recomendação do Bruno:** Rota A. A landing é boa e o vídeo do lançamento faz o trabalho de aquecer — jogar fora esse ativo mandando direto pro WhatsApp é desperdício. Vale o esforço de instalar o evento de clique (é rápido, ver Seção 7). **Se o Renato quiser no ar HOJE sem esperar o CAPI**, subimos Rota B num adset enquanto o evento de clique é instalado, e migramos pra Rota A em 1-2 dias. Decisão do Renato.

---

## 3. Estrutura de campanha

**Campanha:** `[PX3][CONV][CloudPhotoRF2][Oferta][Out26]`
- Objetivo: Rota A (Conversões, evento de clique WhatsApp) — ou Rota B se o Renato optar.
- **CBO (Advantage Campaign Budget):** orçamento na campanha, adsets competindo. Budget baixo + múltiplos públicos → CBO concentra verba no vencedor sem micro-gestão.
- Posicionamentos: **Advantage+ Placements** (feed, stories, reels — os criativos 1:1, 4:5 e 9:16 cobrem tudo).
- Atribuição: **7 dias clique / 1 dia visualização** (padrão).
- Budget diário (não lifetime) pra escalar/cortar no dia.

**Adsets iniciais: 3** (budget enxuto; 4º fica de reserva se escalar).
**Criativos por adset: 2-3** (regra prática da conta: 1 criativo pra cada ~R$15-20/dia de budget; mais que isso dilui sinal).

---

## 4. Públicos (adsets)

| Adset | Público | utm_term | Observação |
|---|---|---|---|
| **1 — Interesses** | Fotografia profissional, Lightroom, Photoshop, fotógrafo de eventos/casamento/formatura, câmeras Canon/Sony/Nikon. Idade 28-55, BR nacional | `interesses_foto` | Carro-chefe do frio. Já provado na conta no lançamento |
| **2 — LAL** | Lookalike 1-3% já existentes na conta: "Semelhante (1%) / (1-2%) / (2-4%) - LISTA DE LEADS 12.25" + (se já populou) LAL dos leads do lançamento 07/10 | `lal_leads` | Melhor alavanca é LAL dos leads novos do lançamento, se já houver ~100+ leads |
| **3 — Retargeting** | Visitantes recentes das páginas PX3 (Page View 90D/180D) + **leads do lançamento que NÃO compraram** (base GHL/lista de espera) + quem viu o vídeo do lançamento | `retarget_quente` | **Público mais quente da campanha de oferta.** Quem entrou na lista e não comprou é alvo nº1 da oferta pós-lançamento |

**Confirmações antes de subir:**
- Quais custom audiences de Page View / Video Viewers já existem na conta (no lançamento as de Page View estavam pequenas, ~20 pessoas; agora o tráfego do lançamento deve ter populado — **confirmar tamanho ao vivo via API antes de ligar o adset 3**).
- Se existe custom audience dos **leads da lista de espera** (upload da base GHL). Se não existe, crio a partir do CRM PX3 — é o público mais valioso pra oferta.
- Priorização pra essa campanha de oferta: **adset 3 (retargeting quente) é o mais importante**, diferente do lançamento onde o frio mandava. Quem já conhece o produto e não comprou converte melhor na oferta.

---

## 5. Orçamento — 3 cenários

Base: no lançamento a conta entregou lead topo de funil a R$6-8. Clique-no-WhatsApp de oferta consultiva é evento mais caro e mais fundo de funil — projeto **custo por conversa iniciada R$25-50** (chute conservador, sem histórico desse evento específico na conta ainda; ajusto após os 3 primeiros dias).

| Cenário | Budget/dia | Total 7 dias | Conversas estimadas (faixa) |
|---|---|---|---|
| **Conservador** | R$100/dia | R$700 | 14-28 conversas |
| **Recomendado** | R$150/dia | R$1.050 | 21-42 conversas |
| **Agressivo (janela de oferta)** | R$300/dia | R$2.100 | 42-84 conversas |

**Recomendação do Bruno: R$150/dia.** Volume suficiente pra CBO distribuir entre 3 adsets e começar a ler o vencedor sem queimar verba antes de validar o evento de clique. Se a oferta tem janela curta/escassez real, o Renato pode ir ao agressivo (R$300/dia) — pergunto a ele.

> **Pergunta pro Renato:** a oferta tem janela de tempo (preço/bônus que fecha numa data)? Se sim, faz sentido ser mais agressivo (R$300-500/dia) pra capturar volume dentro da janela. Se é oferta permanente, R$150/dia e escala gradual é mais eficiente.

---

## 6. UTM (regra imutável — todo anúncio sobe com UTM)

Base fixa:
```
utm_source=meta           (ou facebook/instagram conforme placement, via {{placement}} se usar DPA — mas padrão PX3 é utm_source=meta)
utm_medium=paid
utm_campaign=cloudphotorf2_oferta_1026
utm_content=<codigo do criativo>     (ex: piloto_04_c_v2)
utm_term=<publico do adset>          (interesses_foto / lal_leads / retarget_quente)
```

URL destino (exemplo, piloto 04 C v2 no adset interesses):
```
https://oferta.px3lab.com.br/?utm_source=meta&utm_medium=paid&utm_campaign=cloudphotorf2_oferta_1026&utm_content=piloto_04_c_v2&utm_term=interesses_foto
```

> A landing JÁ lê os `utm_*` da query string e os anexa na mensagem do WhatsApp (verificado no código, linhas 298-306) — ou seja, quando o lead chega no WhatsApp a origem vem junto. O UTM Enricher do Linkia PX3 também lê esses campos. Rastreamento ponta a ponta fechado DESDE QUE o UTM esteja no link do anúncio.
>
> **Obs src Hotmart:** essa oferta é link direto pra landing + WhatsApp (sem checkout Hotmart no caminho do anúncio). Se depois houver fluxo de checkout Hotmart, o `src` fica FIXO pelo tempo da campanha (regra: não trocar src no meio).

---

## 7. CAPI — PENDÊNCIA BLOQUEANTE

Regra da casa (`feedback_conversao_capi_exata.md`): conversão tem que ser medida de verdade, server-side, não especulada.

**Estado atual (verificado):**

| Evento | Browser (pixel) | CAPI server-side | Status |
|---|---|---|---|
| `PageView` | ✅ dispara (linha 11 do index) | ✅ async via dashboard-px3 → `/pageview` | OK |
| Clique no WhatsApp (`InitiateConversation`/`Contact`) | ❌ **não dispara** | ❌ **endpoint não existe** no receiver | **BLOQUEANTE** |
| `Purchase` (venda) | — | ✅ `/purchase` existe (via N8N VRA) | OK pra reconciliação |
| Thank-you `/obrigado.html` | ❌ não existe | — | Opcional p/ essa rota (ver nota) |

**O que precisa ser feito antes de ativar Rota A:**

1. **Instalar evento de clique no WhatsApp na landing** (browser): nos 3 botões, no `onClick` antes de abrir o `wa.me`, disparar `fbq('track','Contact')` (ou `InitiateConversation` via trackCustom) com um `eventID` único.
   - *Responsável:* Leo-web (+ conversion-cro). É edição pequena no `index.html` (a função `renderVals` já centraliza a `waUrl`, dá pra plugar o disparo num handler só).
2. **Criar endpoint `/contact` (ou `/initiateconversation`) no receiver CAPI** (`capi_pageview/app.py`), espelhando a estrutura do `/lead` que já existe, com o MESMO `eventID` do browser pra dedupe.
   - *Responsável:* Paulo-dev (é copiar o padrão do handler `/lead`, trocar `event_name` pra `Contact`). Rápido.
3. **Disparar o CAPI no clique:** o browser, ao clicar, faz `fetch` pro novo endpoint com `fbclid`, `fbp`, UTMs e o `eventID`.
4. **Validar no Events Manager:** clicar num botão de teste e confirmar que o `Contact` chega (browser + server, dedupe por eventID) antes de otimizar por ele.

**Sobre a thank-you page `/obrigado.html`:** nessa rota o "sucesso" é o clique que abre o WhatsApp (sai do site pro app), então não há retorno natural a uma página de obrigado. O evento de clique (`Contact`) É o marco de conversão. A thank-you page só faria sentido se houvesse um formulário intermediário antes do WhatsApp — **não recomendo adicionar fricção**. Então: thank-you page NÃO é necessária aqui; o evento de clique substitui.

> **Se o Renato quiser no ar hoje:** sobe Rota B (Mensagens nativo do Meta) em paralelo enquanto itens 1-4 são feitos, e migra pra Rota A assim que o `Contact` validar. Não deixa a verba parada, mas também não sobe Rota A cega.

---

## 8. Criativos

**Já aprovado:**
- **Piloto 04 C v2 (1:1):** `/opt/mia/workspace/clientes/px3lab/lancamento_photorf2/criativos_oferta/piloto_04_C_v2.png`
  - Código criativo / `utm_content`: `piloto_04_c_v2`

**Em produção pela Juliana (aguardando):**
- 4:5 (feed vertical) e 9:16 (stories/reels) do mesmo ângulo C "curiosidade".
- Possíveis novos ângulos — entram escalonados sem resetar a campanha CBO (adicionar anúncio não zera aprendizagem da campanha, só a do anúncio novo).

**Direção aprovada (ângulo C — curiosidade):**
- Hero: notebook mostrando grid de fotos de formandos + mão humana.
- Headline: **"A SEPARAÇÃO DAS FOTOS DEIXOU DE SER PROBLEMA."**
- Sub: "E não é terceirizar. Nem contratar mais gente."
- CTA Meta (botão do anúncio): "Saiba mais" → leva pra `oferta.px3lab.com.br`.
- CTA da landing: "VEJA O ABSURDO" (headline oficial da campanha: "PREPARE-SE PARA O ABSURDO!").

**Plano de entrada:**
1. D0: sobe 1:1 (piloto 04 C v2) + 4:5 + 9:16 assim que a Juliana entregar — 1 ângulo cobrindo os 3 formatos nos 3 adsets.
2. Novos ângulos entram como criativos adicionais conforme aprovados (máx ~2-3 por adset no budget atual).
- **Vídeo do YouTube do lançamento:** fica EMBEBIDO na landing (não é o criativo do anúncio) — o anúncio leva pra landing, lá a pessoa assiste. Isso reforça a Rota A.

---

## 9. Gotchas conhecidos

- **Imposto embutido (BR):** o `spend` reportado no Ads Manager é só mídia líquida. ~11,7% de tributo BR (PIS/COFINS/ISS/CIDE) é debitado do saldo mas NÃO aparece no relatório. Ao planejar saldo/cartão, considerar que R$150/dia de budget consome ~R$168/dia do saldo real. (regra `meta_ads_br_imposto_embutido`)
- **Não trocar src Hotmart no meio da campanha:** não se aplica direto aqui (rota é WhatsApp, não checkout Hotmart), mas se um fluxo Hotmart entrar depois, src fica fixo. (regra `feedback_src_nao_troca_meio_campanha`)
- **Pixel conta Purchase na emissão, não no pagamento:** se formos reportar venda/ROAS depois, cruzar com o Sales History Hotmart APPROVED / opp won no GHL antes de reportar. (regra `feedback_hotmart_reconciliacao_obrigatoria`)
- **Página FB/IG vinculada:** mesmo gap do lançamento — confirmar identidade do anúncio antes de subir, senão não publica.

---

## 10. Próximos passos

- [ ] **Renato aprovar o plano** (objetivo Rota A vs B, cenário de budget)
- [ ] **Renato confirmar:** página FB + conta IG da PX3 pra identidade do anúncio
- [ ] **Renato confirmar:** saldo/meio de pagamento aguenta o budget escolhido
- [ ] **Renato responder:** a oferta tem janela de tempo? (define agressividade do budget)
- [ ] **[BLOQUEANTE] Instalar evento de clique WhatsApp** na landing (Leo-web) + endpoint `/contact` no receiver CAPI (Paulo-dev) + validar no Events Manager — OU decidir subir Rota B primeiro
- [ ] **Confirmar ao vivo:** tamanho das custom audiences (Page View, Video Viewers, base de leads do lançamento) pra montar os adsets 2 e 3
- [ ] **Receber da Juliana:** criativos 4:5 e 9:16 (e novos ângulos, se vierem)
- [ ] Bruno: criar campanha CBO em PAUSED com a estrutura acima
- [ ] Bruno: subir criativos nos adsets com UTM ponta a ponta
- [ ] Bruno: testar cada ad no preview (clicar, conferir UTM na URL e na mensagem do WhatsApp)
- [ ] **Ativar somente após OK explícito do Renato**

---

## Observação estratégica

A maior diferença entre essa campanha e a do lançamento é o **público, não o criativo**. No lançamento o frio (interesses) mandava porque ninguém conhecia o produto. Agora, pós-lançamento, o ouro está no **retargeting quente**: todo mundo que entrou na lista de espera, viu o vídeo do lançamento e NÃO comprou é o alvo número 1 da oferta — já conhece o produto, já demonstrou interesse, só faltou o empurrão da oferta. Por isso recomendo que o adset de retargeting (3) leve a maior fatia de atenção (e, se virarmos pra ABO depois, a maior fatia de budget). O frio alimenta o topo, mas a oferta se paga no quente. E o bloqueante do evento de clique no WhatsApp não é burocracia: sem ele a gente escala no escuro e descobre tarde que estava otimizando pra clique-curioso em vez de conversa real com o comercial.
