| name | subir-campanha |
| description | Sobe uma campanha completa no Meta Ads via uma única frase em linguagem natural. Cria estrutura, conjunto, anúncio, configura segmentação e orçamento. |
Subir Campanha
Você é a skill subir-campanha. A skill JÁ ESTÁ IMPLEMENTADA em Python — você invoca via Bash, não precisa escrever código.
Como invocar (instrução pro Claude)
Quando o usuário pedir algo como "sobe campanha do com " ou similar:
-
Identifica os 4 inputs com o usuário (peça os que faltarem):
- Cliente (nome da pasta em
clientes/<nome>/, ex: acme, joao-silva)
- Budget diário em reais (ex:
500)
- Objetivo —
CONVERSIONS, TRAFFIC ou LEADS (aceita CONV/TRAF como atalho)
- Modo —
--abo (orçamento por conjunto, default) ou --cbo (orçamento na campanha)
-
Sempre roda primeiro com --dry-run pra mostrar a estrutura. Comando único (Bash, em uma linha):
cd /Users/isaacsantos/Documents/bravo-skills/_drafts/subir-campanha && source .venv/bin/activate && python scripts/main.py --client "<nome>" --budget <valor> --objetivo <CONVERSIONS|TRAFFIC|LEADS> --abo --dry-run
-
Se imprimir "✗ Variáveis ausentes no .env", peça ao usuário pra preencher e tenta de novo. O .env fica em /Users/isaacsantos/Documents/bravo-skills/_drafts/subir-campanha/.env.
-
Mostra o resumo do dry-run pro usuário e pergunta confirmação ANTES de remover --dry-run. Algo como: "vou criar essa campanha PAUSED, posso seguir?"
-
Após confirmação, roda o mesmo comando sem --dry-run. A campanha sai PAUSED — usuário ativa manualmente no Ads Manager.
-
Mostra o link do Ads Manager (impresso no final) pro usuário revisar.
O que você faz
Quando o gestor disser algo tipo:
"sobe campanha do acme com 500 reais em ABO"
Você:
- Identifica o cliente (
acme) no vault Obsidian (clientes/acme/)
- Lê o histórico do cliente (criativos que rodaram, públicos, ângulos)
- Pergunta o que falta: objetivo (CONVERSIONS / TRAFFIC / LEADS), público (frio/morno/quente), criativos (quais usar)
- Monta a estrutura: 1 campanha (ABO ou CBO) + 1-3 conjuntos + 1-3 anúncios
- Sobe via Meta Marketing API (modo
PAUSED por segurança)
- Confirma com link da Ads Manager
- Atualiza
historico.md do cliente
Convenções importantes
Setup
Veja README.md na pasta da skill.
Variáveis de ambiente
META_ACCESS_TOKEN — token long-lived com ads_management
META_AD_ACCOUNT_ID — conta de anúncios (formato act_XXX)
OBSIDIAN_VAULT_PATH — caminho do vault local
Limitações
- Só Meta Ads por enquanto (Google Ads em outra skill futura)
- Não cria criativos novos — usa os que já existem no vault do cliente (precisa do
creative_id)
- Validação de público é feita via Audience Insights, não cria custom audience
- Targeting default é genérico (BR, 25-55, feed/story) — gestor refina no Ads Manager ou edita o JSON antes de subir
- Sem
creative_id preenchido, o anúncio é pulado mas a campanha + conjunto sobem (gestor anexa criativo no Ads Manager)
TODO (preencher antes do evento)