Como Criar Campanha Meta Ads pelo Terminal com IA (Sem Abrir o Gerenciador)

Crie campanhas Meta Ads completas direto do terminal usando Claude Code. Do ad set ao criativo publicado, tudo por comando.

# Como Criar Campanha Meta Ads pelo Terminal com IA (Sem Abrir o Gerenciador)

Na Stream 8, Laschuk criou e publicou uma campanha Meta Ads inteira pelo terminal — sem abrir o Gerenciador de Anúncios uma única vez. Campanha configurada, criativo gerado com IA, publicação feita. Tudo por comando.

Este guia documenta o processo completo: do zero até o anúncio no ar, usando Claude Code + skill /meta-ads.

Por Que Criar Ads pelo Terminal?

O Gerenciador de Anúncios do Meta é lento, cheio de cliques e propenso a erro humano. Cada campanha nova exige navegar por menus, esperar carregamentos, clicar em dezenas de opções. Para quem cria campanhas frequentemente ou quer reproduzir estruturas comprovadas, isso é desperdício de tempo.

Criar pelo terminal resolve três problemas de uma vez:

Velocidade. Uma campanha que levaria 20 minutos no Gerenciador leva 3 minutos no terminal. Você descreve o que quer, a IA monta a estrutura, você revisa e confirma.

Reprodutibilidade. O comando que criou uma campanha hoje pode criar outra idêntica amanhã. Nenhuma variação por distração, nenhum campo esquecido.

Rastreabilidade. Tudo que foi criado fica registrado no histórico. Você sabe exatamente o que foi configurado, quando e por quê.

Na live, a campanha criada foi a [EHACKING] [LEADS] — para captação de leads do EmailHacker.ai. A estrutura inteira saiu direto do terminal, com o criativo gerado pela IA e publicado sem uma tela do Gerenciador ser aberta.


Estrutura Meta Ads — 4 Níveis
01
CAMPANHA
Objetivo e teto de orçamento
02
AD SET
Público, orçamento diário e posicionamento
03
CRIATIVO
Copy, imagem e call to action gerados por IA
04
AD
Une os 3 níveis — é o que o usuário vê
Cada nível deve existir antes de criar o próximo. Sempre criar com status=PAUSED.

O Que Você Precisa

Antes de começar, garanta que você tem:

  • Claude Code instalado (com acesso ao terminal)
  • Conta Meta for Developers com App criado
  • Ad Account ID (formato act_XXXXXXXXXX)
  • Page ID da sua página do Facebook/Instagram
  • Access Token com permissões de ads_management e ads_read
  • Pixel ID (se quiser rastrear conversões — coberto na Stream 5)

Todas as credenciais devem estar no arquivo .secrets na raiz do projeto. Nunca cole tokens diretamente no terminal ou no chat.

# .secrets (nunca versionar esse arquivo)
META_ACCESS_TOKEN=...
META_AD_ACCOUNT_ID=act_...
META_PAGE_ID=...
META_PIXEL_ID=...

Processo Completo — 5 Passos
1
Credenciais
Carregar .secrets e validar token antes de qualquer chamada
2
Campanha
Criar nível 1 com objetivo LEAD_GENERATION e status PAUSED
3
Ad Set
Definir público, orçamento diário em centavos e otimização por LEAD
4
Criativo IA
Claude gera headline, corpo e CTA. Você aprova e a API registra o criativo
5
Publicar
Criar Ad unindo os 3 níveis, revisar e ativar campanha por comando

Passo 1: Configurar Credenciais Meta

Com as credenciais no .secrets, carregue-as na sessão:

bashsource .secrets
echo "Credenciais carregadas: $META_AD_ACCOUNT_ID"

Em seguida, valide o access token antes de criar qualquer coisa:

bashcurl -s "https://graph.facebook.com/v21.0/me?access_token=$META_ACCESS_TOKEN" | jq .name

Se retornar o nome da conta, está tudo certo. Se retornar erro de permissão, o token precisa ter ads_management habilitado no App do Meta.

Uma boa prática é verificar também o saldo disponível na Ad Account:

bashcurl -s "https://graph.facebook.com/v21.0/$META_AD_ACCOUNT_ID?fields=name,amount_spent,balance&access_token=$META_ACCESS_TOKEN" | jq .

Passo 2: Criar a Campanha

A campanha é o nível mais alto da estrutura Meta Ads. Define o objetivo (leads, tráfego, conversões) e o limite de orçamento total.

No terminal, peça ao Claude Code:

Crie uma campanha Meta Ads no objetivo LEAD_GENERATION
nome: [EHACKING] [LEADS]
status: PAUSED
limit: R$ 500/mês

O Claude Code usa a skill /meta-ads para montar a chamada de API correta:

bashcurl -X POST \
  "https://graph.facebook.com/v21.0/$META_AD_ACCOUNT_ID/campaigns" \
  -d "name=[EHACKING] [LEADS]" \
  -d "objective=LEAD_GENERATION" \
  -d "status=PAUSED" \
  -d "special_ad_categories=[]" \
  -d "access_token=$META_ACCESS_TOKEN"

A resposta retorna um campaign_id. Guarde esse ID — ele será usado nos próximos passos.

Importante: Crie sempre com status=PAUSED. Só ative depois de revisar o criativo completo.

Passo 3: Criar o Ad Set

O Ad Set define a segmentação, o orçamento diário, o posicionamento e o período de veiculação. É aqui onde você decide quem vai ver o anúncio.

No terminal:

Crie um ad set para a campanha {campaign_id}
nome: [EHACKING] [BR] [INTERESSES]
orçamento diário: R$ 20
público: Brasil, 25-45 anos, interesse em email marketing e marketing digital
posicionamento: automático
pixel: $META_PIXEL_ID
evento de otimização: LEAD

A chamada de API gerada fica assim:

bashcurl -X POST \
  "https://graph.facebook.com/v21.0/$META_AD_ACCOUNT_ID/adsets" \
  -d "name=[EHACKING] [BR] [INTERESSES]" \
  -d "campaign_id={campaign_id}" \
  -d "daily_budget=2000" \
  -d "billing_event=IMPRESSIONS" \
  -d "optimization_goal=LEAD_GENERATION" \
  -d "bid_strategy=LOWEST_COST_WITHOUT_CAP" \
  -d "targeting={\"geo_locations\":{\"countries\":[\"BR\"]},\"age_min\":25,\"age_max\":45}" \
  -d "status=PAUSED" \
  -d "access_token=$META_ACCESS_TOKEN"

Observe que daily_budget é em centavos — R$ 20,00 = 2000.

O ad_set_id retornado vai para o passo seguinte.

Passo 4: Gerar o Criativo com IA

Esta é a parte onde o terminal se torna realmente poderoso. Em vez de escrever o copy do anúncio manualmente, você pede ao Claude Code para gerar:

Gere o copy de um anúncio para capturar leads do EmailHacker.ai
público: gestores de infoprodutos que fazem email marketing no Brasil
objetivo: click para página de cadastro
tom: direto, sem hype, foco em resultado
incluir: headline, corpo do texto e call to action

Exemplo de copy gerado na Stream 8:

Headline: Seus emails vendem no piloto automático?

Corpo: O EmailHacker.ai conecta sua Hotmart com o ActiveCampaign e cria funis de email sozinho. Você aprova — a IA escreve, publica e rastreia cada venda.

CTA: Quero testar grátis

Com o copy aprovado, crie o ad creative:

bashcurl -X POST \
  "https://graph.facebook.com/v21.0/$META_AD_ACCOUNT_ID/adcreatives" \
  -d "name=[EHACKING] Creative v1" \
  -d "object_story_spec={\"page_id\":\"$META_PAGE_ID\",\"link_data\":{\"message\":\"O EmailHacker.ai conecta sua Hotmart com o ActiveCampaign...\",\"link\":\"https://emailhacker.ai\",\"call_to_action\":{\"type\":\"SIGN_UP\"}}}" \
  -d "access_token=$META_ACCESS_TOKEN"

O creative_id retornado é usado para criar o Ad no próximo passo.

Passo 5: Publicar e Monitorar

Com campanha, ad set e criativo criados, o último passo é criar o Ad (que une os três) e ativar:

bash# Criar o Ad
curl -X POST \
  "https://graph.facebook.com/v21.0/$META_AD_ACCOUNT_ID/ads" \
  -d "name=[EHACKING] Ad v1" \
  -d "adset_id={ad_set_id}" \
  -d "creative={\"creative_id\":\"{creative_id}\"}" \
  -d "status=PAUSED" \
  -d "access_token=$META_ACCESS_TOKEN"

# Revisar tudo antes de ativar
curl -s "https://graph.facebook.com/v21.0/{ad_id}?fields=name,status,effective_status&access_token=$META_ACCESS_TOKEN" | jq .

# Ativar campanha após revisão
curl -X POST \
  "https://graph.facebook.com/v21.0/{campaign_id}" \
  -d "status=ACTIVE" \
  -d "access_token=$META_ACCESS_TOKEN"

Para monitorar o desempenho depois de ativo:

bashcurl -s "https://graph.facebook.com/v21.0/{campaign_id}/insights?fields=impressions,clicks,ctr,spend,leads&access_token=$META_ACCESS_TOKEN" | jq .

Isso retorna impressões, cliques, CTR, gasto e leads — tudo sem abrir o Gerenciador.

Vantagens vs Gerenciador de Anúncios

Terminal + IA vs Gerenciador de Anúncios
Terminal + IA
Criar campanha ~3 min
Reproduzir estrutura Um comando
Gerar copy IA instantâneo
Escalar campanhas Loop/script
Risco de erro Mínimo
Gerenciador
Criar campanha ~20 min
Reproduzir estrutura Do zero
Gerar copy Manual
Escalar campanhas Repetitivo
Risco de erro Alto
A curva de aprendizado inicial existe — mas depois que o fluxo está na memória muscular, é impossível voltar.

Próximo Passo

Se você ainda não configurou o Meta Pixel no seu site, esse é o próximo passo antes de ativar qualquer campanha de conversão. O Pixel permite que o Meta otimize para quem tem maior probabilidade de converter — sem ele, o algoritmo trabalha no escuro.

A integração do Pixel com o EmailHacker.ai foi coberta ao vivo nas streams anteriores. Acesse o histórico completo em Streams para ver cada etapa sendo construída.

Tem dúvida sobre algum passo? Entre no Discord — a comunidade está lá para ajudar.

Erros Comuns

"Invalid OAuth access token" O token expirou ou não tem permissão ads_management. Gere um novo token no Meta for Developers com as permissões corretas.

"Ad account is disabled" A conta pode ter restrições por falta de pagamento ou violação de política. Acesse o Gerenciador de Anúncios para ver o status da conta — essa verificação inicial ainda precisa ser feita no painel.

"daily_budget must be at least 100" O orçamento mínimo é R$ 1,00 por dia (100 centavos). Orçamentos abaixo disso são rejeitados pela API.

O anúncio foi criado mas não aparece no Gerenciador Aguarde 1-2 minutos — há uma latência entre a criação via API e a atualização do painel. O anúncio existe; o Gerenciador só demora para renderizar.

"Unsupported post request" no ad creative O object_story_spec precisa ter o JSON corretamente escapado. Use a IA para gerar o payload — erros de escaping são comuns quando feito manualmente.

O pixel não está registrando eventos Conferência rápida: o Pixel está instalado na página de destino? O evento correto está mapeado? Verifique no Meta Pixel Helper (extensão Chrome) — é a única ferramenta de debug de Pixel que vale a pena usar.

Perguntas Frequentes

Construido ao vivoVer Stream 8 completa

Leia tambem

TODOS OS GUIAS