Ir para o conteúdo

Módulo 6 — Dashboard de Anúncios (Meta Ads)

Mede a mídia paga da Veggi: um robô busca os números todo dia e a dashboard os apresenta. É o módulo que responde "o anúncio deu dinheiro?".

Vive no repositório veggi-ads-dashboard, que também abriga — em pastas separadas e com Workers próprios — o Consultor de Tráfego e o Enriquecedor do CRM.

Documentação profunda no próprio repositório

O DOCUMENTACAO.md do repositório tem 317 linhas escritas durante a construção, com o porquê de cada decisão — inclusive erros cometidos e corrigidos. Estas páginas são o mapa; para manutenção fina, leia também aquele arquivo.

Partes deste módulo

Página O que cobre
Dashboard e Pages Functions As telas, o login, as rotas de API
Robô updater O Worker cron que busca Meta, CRM e VTEX
Rastreamento Pixel, UTM, GTM e o script do Google Ads

Como as peças se encaixam

   Meta Graph API v21.0    RD CRM    VTEX (pedidos)    Google Ads
            │                │            │                │
            └────────────┬───┴────────────┘                │ (script diário
                         │                                  │  faz POST)
              ┌──────────▼───────────┐                      │
              │ Worker                │◄─────────────────────┘
              │ veggi-meta-updater    │
              │ crons 5h30 e 6h       │
              └──────────┬────────────┘
                         │ grava
              ┌──────────▼──────────────┐
              │ KV: VEGGI_DATA           │
              │  latest · crm_history    │
              └──────────┬───────────────┘
                    lê   │
              ┌──────────▼──────────┐
              │ Pages: veggi-meta   │
              │ + Pages Functions   │
              │ + Cloudflare Access │
              └─────────────────────┘
               dashmeta.grupoveggi.com.br

O mesmo KV é lido pelo Consultor de Tráfego — é o ponto de encontro entre os dois módulos.

Os dois mundos: B2B × B2C

Não é um filtro de tela — são réguas de sucesso diferentes. Confundi-las é o erro mais caro deste módulo, e vale tanto aqui quanto no Consultor.

Veggi B2B (padrão) Veggi B2C
Conta Meta 488240501947012 324110141957198
O que é sucesso negociação no RD CRM pedido real na VTEX
Onde está o número fechado Campo "Campanha Meta" na negociação marketingData do pedido (UTM gravada no pedido)
Papel do pixel Conta "Lead" — sinal de otimização, inflado até 23/06/2026 Conta Compra — a inflação não se aplica
Funil intermediário — Visitas etiquetadas do próprio site
Concorrente pela mesma receita — Google Ads (PMax) na mesma loja — nunca somar

PISO, não total

No B2C, pedido sem etiqueta não é "pedido sem anúncio", é pedido sem rastro. Portanto o CPA real por campanha é um TETO e o ROAS real é um PISO — o oposto do que a intuição sugere.

O topo do latest é B2B puro

O robô remove de propósito as campanhas da conta B2C de campaigns, adsets, ads e months. Quem quer B2C lê latest.b2c. Não existe "somar os dois".

Componentes na Cloudflare

Componente Nome Domínio / id
Pages veggi-meta dashmeta.grupoveggi.com.br (oficial) · veggi-meta.pages.dev (bloqueado)
Worker veggi-meta-updater veggi-meta-updater.veggiageral.workers.dev
KV VEGGI_DATA 02f925d798f44173b1f0f2b9ea45c4db
Login Cloudflare Access team veggidocs.cloudflareaccess.com

Conceitos que não se pode esquecer

  • O "Lead" do pixel não é métrica de sucesso. O lead real é a negociação no RD CRM. Até 23/06/2026 o pixel vinha inflado ~15-19x. Ver Rastreamento.
  • Carência de 20 dias. O ciclo B2B leva 15 a 20 dias. Negociação mais nova que isso ainda não teve tempo de virar venda — cobrar venda dela puniria o anúncio pelo calendário. O robô marca quais negociações são maduras.
  • Medir por objetivo. Campanha de engajamento não se julga por CTR (não tem clique) — usa custo por engajamento.
  • Atração ≠ qualificação. CTR e frequência medem quanta gente clica, não se quem clicou presta. Caso real: dois anúncios com CTR praticamente igual (1,50% × 1,52%) e clique mais barato num deles — que custava R$ 83 por negociação contra R$ 22.
  • CBO × ABO muda a leitura, não só o bolso. Em CBO a Meta reparte a verba entre conjuntos sozinha, otimizando pelo evento que ela enxerga (clique barato, lead do pixel) — que não é a negociação no CRM. Caso real: o CBO levou 96% da verba para o anúncio que custava R$ 83 por negociação.

Pipeline local (alternativa offline)

Antes do robô existir, o mesmo dado era montado na máquina. Os scripts continuam funcionando e servem de plano B:

cd "C:\Projetos\veggi-ads-dashboard"
node fetch-data.mjs     # Meta  -> data/*.json
node fetch-crm.mjs      # RD CRM -> data/crm_deals.json
node build-data.mjs     # consolida -> public/data.json + RELATORIO.md

Atalhos: atualizar-dados.bat (os três em sequência) e abrir-dashboard.bat (sobe o Vite em localhost:5173).

Warning

A pasta data/ contém PII de CRM (nome, e-mail e telefone de negociações reais) e por isso está no .gitignore. Não copie para lugar compartilhado.