Eu nunca tinha feito um anúncio pago na vida.
Não é força de expressão. Nunca abri o Meta Ads Manager pra criar uma campanha. Nunca configurei um público-alvo. Nunca subi um criativo. Nunca defini um budget. Tudo que eu sabia sobre ads vinha de ler artigos e ouvir founders reclamando do painel do Meta.
Em fevereiro de 2026, eu precisava rodar anúncios pra dois projetos — um SaaS de gestão para igrejas e uma plataforma de notícias de IA. Então fiz o que qualquer dev faria: abri o terminal e pedi pro Claude Code me ajudar.
Minha primeira campanha de Meta Ads foi criada inteiramente por conversa. E funcionou.
A única coisa que fiz no browser
Criei um Meta App no developer portal. Chamei de llmAds. Isso foi literalmente a única coisa que fiz numa interface gráfica. O resto — absolutamente tudo — aconteceu no terminal.
O Claude me guiou pelo fluxo OAuth pra gerar um long-lived token com as permissões certas (ads_management, ads_read, business_management, pages_manage_ads). Copiei, colei no .bashrc, e nunca mais precisei de um browser pra gerenciar ads.
As ferramentas: Pipeboard MCP + Graph API + Nano Banana
Conectei três coisas ao Claude Code:
Pipeboard MCP — um MCP server pra Meta Ads. Com ele, o Claude consegue listar campanhas, criar adsets, pausar ads, puxar métricas. Tudo via MCP, o protocolo aberto que permite conectar ferramentas externas ao Claude Code.
Graph API direta — pra coisas que o Pipeboard não cobre, o Claude usa curl direto na API do Meta. Custom audiences hashadas, CAPI server-side, configurações de pixel. A API do Meta é gigante e nem todo MCP server cobre tudo.
Nano Banana — uma integração do Gemini CLI que gera imagens por IA. Os criativos dos meus anúncios foram gerados assim. O Claude descrevia o que precisava, o Gemini gerava a imagem, o Claude fazia upload via API e associava ao ad. Sem Canva, sem Photoshop, sem designer.
Três ferramentas, zero interfaces gráficas. Tudo por conversa no terminal.
"Cria uma campanha de leads pro HubNews"
Foi assim que começou. Uma frase no terminal.
O Claude criou a campanha com objetivo OUTCOME_LEADS, budget de R$15/dia, dois adsets (Advantage+ e Interesses), formulário nativo do Meta, criativos com copy e CTA, UTMs configurados. Tudo em uma conversa.
Eu não precisei saber onde fica o botão de criar campanha. Não precisei navegar entre abas. Não precisei entender a hierarquia campanha→adset→ad do Ads Manager. O Claude já sabia a estrutura da API e criou tudo na ordem certa.
Pro Sistema Reino, pedi a mesma coisa — mas com estratégia diferente. Em vez de formulário nativo, queria mandar pra uma landing page externa. O Claude criou a campanha com tracking de CompleteRegistration via pixel, 5 ads com ângulos diferentes, e dois adsets (Broad e Interesses por cargo de pastor).
Os números: R$500, dois funis, 140 conversões
Depois de 4 semanas rodando as duas campanhas, aqui estão os resultados:
| Métrica | HubNews | Sistema Reino |
|---|---|---|
| Investido | R$262,63 | R$238,41 |
| Impressões | 17.164 | 13.950 |
| Cliques | 771 | 378 |
| CTR | 4,49% | 2,71% |
| CPC | R$0,34 | R$0,63 |
| Alcance | 12.123 | 7.254 |
| Conversões | 98 leads | 42 registros |
| Custo/conversão | R$2,68 | R$5,68 |
| Checkouts | — | 3 (R$1.028) |
R$500 investidos no total. 140 conversões. Zero minutos no Ads Manager.
Dois funis opostos — e por que os dois estão certos
A parte mais interessante não são os números. É que os dois projetos usam estratégias de conversão completamente opostas, e o Claude me ajudou a escolher a certa pra cada um.
HubNews: Ad → Formulário nativo Meta → Lead
(sem sair do Instagram, auto-fill)
98 leads × R$2,68 = R$262
Sistema Reino: Ad → Landing Page → Form → Trial 14d → Emails → Paywall
(alta fricção, leads qualificados)
42 registros × R$5,68 = R$238 → 3 checkouts (R$1.028)
No HubNews, a pessoa nem sai do Instagram. A campanha usa o Instant Form — formulário nativo do Meta. A pessoa vê o ad, toca, o Meta preenche nome e email automaticamente do perfil. Um toque pra assinar a newsletter. Fricção zero.
Pra newsletter, isso é perfeito. Leads "frios" não importam — você aquece com conteúdo ao longo do tempo.
No Sistema Reino, a pessoa precisa querer de verdade. O ad leva pra sistemareino.com.br/cadastrar. Lá ela precisa ler a proposta, preencher nome, email, nome da igreja, criar conta, iniciar trial de 14 dias. Muita fricção.
Mas esses 42 são leads quentes. Deram dados reais, estão usando o produto. Três já iniciaram checkout — R$1.028 em receita potencial de R$238 investidos.
Eu não teria sabido escolher entre essas duas abordagens sozinho. O Claude sugeriu formulário nativo pro HubNews e landing page pro Sistema Reino. São estratégias opostas — e as duas estão certas pro seu contexto.
Otimizações por conversa
Nada ficou no "configurei e esqueci". O Claude ia me mostrando o que funcionava e o que não, e eu decidia o próximo passo.
Audiências mortas. No Sistema Reino, o adset Broad rodou 3 dias, gastou R$8, zero conversões. O Claude pausou e concentrou 100% no Interesses — que já tinha 15 registros com CPR de R$5,40. Sem drama, sem abrir painel.
Posicionamentos ruins. No HubNews, o Audience Network consumia 57% do budget com zero leads. O Claude identificou, removeu via API, e o custo por lead caiu imediatamente.
Testes de criativo. Testei 11 variações pro HubNews — Reddit fake thread, meme Wojak/Chad, screenshot de terminal, quote card. Os criativos foram gerados com Nano Banana (Gemini), o Claude subia via API e depois analisava performance. O V10-Reddit ganhou com CPL de R$0,80.
Custom Audiences. Exportei 433 emails de subscribers do HubNews, o Claude criou uma Custom Audience hashada + Lookalike 1% Brasil. Tudo via API.
Cada otimização foi uma conversa. "Analisa os últimos 7 dias." "Qual adset tá melhor?" "Pausa o Broad." Resposta, confirmação, execução.
CAPI: tracking server-side que o Claude construiu
O Claude não só gerencia os ads — ele me ajudou a construir o Conversions API do Meta no backend.
Quem usa iOS 14+ ou ad blocker não dispara o pixel do browser. Você perde 20-40% das conversões no report. O Claude criou o MetaConversionsService.php no Laravel — um service que dispara o evento Lead server-side quando alguém se inscreve.
// MetaConversionsService.php — Lead via CAPI
$payload = [
'event_name' => 'Lead',
'user_data' => [
'em' => hash('sha256', strtolower($email)),
'fbc' => $fbClickId,
'fbp' => $fbBrowserId,
'client_ip_address' => $request->ip(),
],
'custom_data' => [
'value' => 5.00,
'currency' => 'BRL',
],
];
Isso fechou o loop de atribuição. O Meta passou a saber exatamente quantos leads vieram dos ads, o algoritmo ficou mais preciso, e o custo por lead caiu.
O dashboard que não existia
Como eu nunca abro o Ads Manager, precisava de um jeito de ver os números. O Claude construiu um dashboard de Meta Ads dentro do admin do Sistema Reino — rota /admin/meta-ads-9f3ad7. Puxa dados via Graph API, cache de 1 hora, botão pra forçar atualização.
Não é o Ads Manager. É melhor — porque mostra só o que eu preciso ver.
O que eu não sabia que não sabia
Vou ser honesto: quando comecei, eu não sabia a diferença entre uma campanha de tráfego e uma de leads. Não sabia o que era Advantage+ Audience. Não sabia que o Audience Network era um posicionamento separado que consumia budget sem converter.
O Claude sabia. E mais importante: ele não me deu uma aula teórica sobre ads. Ele criou a campanha, rodou, e quando os dados chegaram, me mostrou o que estava funcionando e o que não. Eu aprendi ads fazendo, não lendo.
Isso é fundamentalmente diferente de assistir um curso de Meta Ads. Em um curso, você aprende a teoria e depois tenta aplicar. Com o Claude, eu apliquei primeiro e entendi a teoria pelos resultados. O feedback loop é imediato — e com dinheiro real na mesa, você presta atenção.
Minha rotina com ads agora
- Abro o terminal
- Pergunto: "como estão as campanhas do HubNews e do Reino?"
- O Claude puxa insights das duas contas e me dá um resumo
- Se preciso ajustar — budget, targeting, pausar um ad — peço na mesma conversa
- Ele aplica via API e confirma
Sem Ads Manager. Sem trocar entre contas. Sem reconstruir contexto mental. Sem medo de clicar no botão errado — porque não tem botão.
O melhor: o Claude acumula contexto. Sabe que o Audience Network não funciona pras minhas campanhas. Sabe que o Interesses performa melhor que o Broad no Reino. Sabe que o V10-Reddit é o winner do HubNews. Esse contexto acumulado é algo que nenhum painel vai ter.
O takeaway
Eu não larguei o Ads Manager. Eu nunca usei o Ads Manager.
Minha primeira campanha de ads na vida foi criada pelo terminal, gerenciada por conversa, otimizada por dados, com criativos gerados por IA. R$500 investidos, 140 conversões, CAPI implementado, dashboard construído, dois funis rodando.
Se você já usa o Claude Code e roda Meta Ads, o Pipeboard MCP leva 5 minutos pra configurar. Se você nunca usou MCP, talvez seja a hora.
E se você nunca fez um anúncio na vida — talvez o terminal seja um lugar melhor pra começar do que o Ads Manager.