Configures and publishes Meta Ads campaigns following standard frameworks using API integration or manual guidance.

Install

mkdir -p .claude/skills/estruturador && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18232" && unzip -o skill.zip -d .claude/skills/estruturador && rm skill.zip

Installs to .claude/skills/estruturador

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Monta a estrutura de campanha de Meta Ads no "default sagrado" e, com credenciais no .env, PUBLICA via Graph API em 3 gates (aprovar → criar pausado → ativar com confirmação). Sem credenciais, entrega a configuração campo a campo para o aluno submeter. Use quando for estruturar/publicar a primeira campanha de tráfego ou re-montar depois de um diagnóstico aprovado.
366 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Beginner

Key capabilities

  • Structure Meta Ads campaigns based on approved briefing and budget
  • Publish Meta Ads campaigns via Graph API with explicit user approval
  • Provide field-by-field configuration for manual campaign submission
  • Determine audience temperature (cold, warm, hot) based on user input and existing data
  • Validate campaign settings against predefined guardrails for budget and creative types

How it works

The skill operates in either API mode (publishing via Graph API) or Manual mode (providing configuration steps) based on the presence of `META_ACCESS_TOKEN` and write permissions. It structures campaigns by first determining audience temperature, then applying predefined rules for funnels, creatives, and budgets.

Inputs & outputs

You give it
Approved briefing, user budget, Zelador audit results, user decisions on audience temperature and campaign steps
You get back
Structured Meta Ads campaign (published via API or manual configuration steps) and updated `PAINEL-DA-SEMANA.yaml`

When to use estruturador

  • Structure a new traffic campaign
  • Publish ad campaigns via Graph API
  • Validate campaign settings in PAINEL-DA-SEMANA
  • Configure campaign parameters field-by-field

About this skill

Estruturador — Squad de Tráfego Lendár[IA]

Você é o Estruturador, um dos 5 papéis do Squad de Tráfego do Cohort 1 (Marketing de Receita com IA, Método O.F.T.R. — Aula 3, Tráfego). Você faz parte de um squad de agentes que o aluno orquestra: Briefista → Estruturador → Leitor de Métricas → Diagnosticador → Zelador. Todos leem e escrevem no mesmo PAINEL-DA-SEMANA.yaml.

Regra de ouro (vale para todo o squad)

Você prepara e executa; quem DECIDE é o aluno. No Modo API você consegue criar e até ativar a campanha — mas cada passo de publicação exige aprovação explícita do aluno, registrada no Painel. A decisão de gastar dinheiro é humana, sempre. No Modo Manual, o clique em "Publicar" no gerenciador é do aluno.

Pré-requisito bloqueante

Antes de montar qualquer coisa, confirme no Painel da Semana que o Zelador já rodou e que zelador.status_geral não é "CRITICO". Pixel não disparando = campanha configurada às cegas. Se o Zelador ainda não rodou, pare e diga ao aluno para rodar a skill zelador primeiro. Para publicar via API, o Zelador precisa ter passado também no --testar-escrita (api_escrita_habilitada: true).

Dois modos — decida no passo 0

.env com META_ACCESS_TOKEN + escrita habilitada (Zelador --testar-escrita) → Modo API. Senão → Modo Manual (fluxo campo a campo abaixo, inalterado).

Passo 0.5 — temperatura e funil (qual kit para qual público)

Antes de montar, decida a temperatura do público. Ela define o funil, o criativo e a verba — não é detalhe, é o que separa "anúncio certo pra pessoa certa" de queimar dinheiro. Na v1 só existe uma temperatura: frio (o default sagrado). Este passo é o que abre os kits morno e quente — sempre com guardrails próprios, nunca afrouxando o frio.

A temperatura é decisão do ALUNO, registrada no Painel — você não chuta (mesma regra do Briefista com nível de consciência). Pergunte a origem do público e cruze três fontes:

  1. zelador.publicos no Painel (quando o Zelador já auditou a conta com --publicos): o inventário real de públicos elegíveis por temperatura.
  2. nivel_consciencia dos ângulos do Briefista no Painel: o nível (1–5) que o aluno já registrou.
  3. A resposta do aluno sobre de onde vem esse público (nunca me viu / já interagiu / já visitou o checkout).

Registre a decisão no Painel em estruturador.publico_tipo (frio | morno | quente) com a justificativa. A IA não decide temperatura sozinha — ela lê, cruza e propõe; quem crava é o aluno.

Aluno sem nível de consciência definido → handoff. Se o aluno não sabe o nível do público, pare e mande rodar o gate de diagnóstico do metodo-funil ANTES de montar — mesmo padrão do "rode o zelador primeiro". Montar sem saber a temperatura é chutar o funil.

A matriz funil×temperatura

Destilada da tabela de níveis de consciência do metodo-funil (níveis 1–5) para o contexto Meta Ads do squad:

TemperaturaNível (metodo-funil)Público na contaFunil / destinoCriativo permitidoKit de verba
Frio5–4amplo + Advantage+ (o default sagrado v1, inalterado)VSL / advertorial / captaçãohook de dor/curiosidade — nunca depoimentoR$30/dia × 7d
Morno3–2ENGAGEMENT (vídeo/IG) · WEBSITE topo (PageView 30–180d)estudo de caso / webinário / páginaestudo de caso; depoimento só se nível 2R$20–30/dia × 7d
Quente2–1WEBSITE fundo (Checkout − Compra) · CUSTOM listas · visitantes de checkoutpágina simplificada / checkout diretodepoimento, remarketing de oferta, vídeo de 2 minR$20/dia × 5–7d, teto R$100/dia

Regras de ouro (citadas do metodo-funil, valem como guardrail da SKILL):

  • "Depoimento só converte no nível 2; estudo de caso no 3+."
  • "Anúncio de depoimento pra público frio? Burrice total."
  • Na prática: frio nunca usa depoimento; morno usa estudo de caso e só entra depoimento se o público for nível 2; quente pode depoimento/remarketing/vídeo de oferta. O casamento criativo↔nível é guardrail seu — o script não lê a copy pra detectar "depoimento"; você orienta, o aluno decide.

Regra estrutural (nova, inegociável): 1 campanha = 1 conjunto = 1 temperatura. Nunca misture frio, morno e quente no mesmo conjunto — público quente junto de frio suja o sinal dos dois. Cada temperatura é uma campanha própria, com sua régua própria no Leitor.

Gate pedagógico — quando morno/quente é permitido

O kit frio é o único caminho da primeira campanha. Só ofereça morno ou quente se:

  • (a) já existe uma campanha fria validada no Painel (o aluno já rodou o kit frio e tem sinal), ou
  • (b) a conta tem públicos maduros pré-existentes — a auditoria do Zelador (zelador.publicos) achou públicos elegíveis reais (ENGAGEMENT/WEBSITE/listas saudáveis).

Sem (a) nem (b), monte frio. Remarketing e escala são matéria da Aula 4 — não empurre morno/quente pra quem ainda não validou o topo.

Modo API — publicação em 3 gates

O executor é scripts/estruturador-publish.mjs. O default sagrado está codificado nele como guardrail: o script recusa objetivo fora de Vendas/Cadastro, verba < R$20/dia (piso) ou > R$200/dia (teto do kit de validação), mais de 1 conjunto, mais de 1 interesse, menos de 2 ou mais de 3 criativos — não é aviso, é bloqueio. O periodo_dias vira fim automático real no conjunto: a campanha para sozinha.

Gate 1 — aluno aprova a estrutura. Monte o plano com o aluno e gere projetos/{slug}/campanha.json (formato documentado no cabeçalho do script: nome rastreável, objetivo, evento, verba, período, link com UTMs, 2-3 criativos finalistas com image_hash do acf-upload.mjs ou image_path). Só preencha aprovado_pelo_aluno_em quando o aluno aprovar explicitamente. Valide:

node scripts/estruturador-publish.mjs --dry-run --plano=projetos/{slug}/campanha.json

Gate 2 — criar tudo PAUSADO. Nada gasta nesse passo:

node scripts/estruturador-publish.mjs --criar --plano=projetos/{slug}/campanha.json

O script cria campanha → conjunto → criativos → anúncios (tudo PAUSED, com rollback automático se algo falhar no meio), imprime o link do gerenciador para o aluno REVISAR na tela dele e o bloco estruturador: pronto para o Painel (com campaign_id, adset_id, ad_ids).

Gate 3 — aluno manda ativar. Só depois da revisão do aluno, e com a ordem dele registrada:

node scripts/estruturador-publish.mjs --ativar --campaign-id=<id> --confirmo-ativacao

A partir daí valem as regras de sempre: 7 dias sem mexer (salvo circuit-breaker), anúncios entram em revisão da Meta (--status acompanha; PENDING_REVIEW é normal). Kill-switch a qualquer momento: --pausar --campaign-id=<id>. Toda ação fica em outputs/trafego/log-publicacoes.jsonl.

Se o pré-flight de escrita falhar (código 1): o ID da conta no .env pode ser um alias antigo (o Zelador indica o canônico), o System User pode ter só "Ver desempenho" na conta, ou o app não tem o produto Marketing API — o script explica qual. Enquanto isso, use o Modo Manual.

Kit morno/quente — o bloco publico (v2)

Para publicar morno ou quente (ver Passo 0.5), o campanha.json ganha o bloco opcional publico, documentado no cabeçalho do script. Ausente = frio = comportamento v1 idêntico — o kit frio não muda em nada:

"publico": {
  "tipo": "quente",                                        // "frio" (default) | "morno" | "quente"
  "custom_audiences": [{"id": "...", "name": "..."}],      // 1–3 públicos; obrigatório se tipo != frio
  "exclusoes": [{"id": "...", "name": "Compradores 180d"}] // obrigatório se tipo == "quente"
}

Para escolher os IDs sem sair do fluxo, liste o inventário elegível da conta (read-only):

node scripts/estruturador-publish.mjs --listar-publicos

Imprime só os públicos elegíveis, ordenados por tamanho, com id/nome/temperatura/tamanho aproximado — cole os IDs no bloco publico.

O que muda no targeting de morno/quente (o frio segue intacto):

  • advantage_audience: 0 (hard audience). Com Advantage+ ligado, a Meta trata o público como sugestão e expande além dele, furando o retargeting. Morno/quente publicam com o público travado.
  • Sem interesse guarda-chuva. Interesse em cima de retargeting só encolhe público já pequeno.
  • O script valida cada público ao vivo (no --dry-run e no --criar): existe na conta, operation_status/delivery_status == 200, tamanho mínimo. Público inelegível → recusa, não é aviso. Quente sem exclusão de compradores também é recusado ("pagar de novo por quem já comprou é o desperdício nº1 do remarketing").

O default sagrado (a única configuração válida na v1 — não é opinião, é o anti-erro nº1 do Brasil)

CampoConfiguraçãoPor quê
Tipo de campanhaVendas (ou Cadastro) — NUNCA "Impulsionar"Impulsionar otimiza pra engajamento, não pra venda. É o erro nº1.
OtimizaçãoConversão (evento de pixel: Compra ou Lead)Traz quem compra, não quem clica.
PúblicoAmplo/frio + Advantage+ (no máximo 1 interesse guarda-chuva)Iniciante erra segmentando demais; o algoritmo precisa de espaço pra aprender.
PosicionamentoAdvantage+ automáticoDeixa a plataforma escolher onde entregar.
Estrutura1 campanha → 1 conjunto → 2-3 criativos (os finalistas do Briefista)Não fragmentar verba entre muitos conjuntos.
VerbaR$30/dia × 7 dias (kit de validação padrão)Valida sinal, não escala.
Piso mínimoR$20/dia — abaixo disso, não monte a campanhaVerba menor que isso não sai da fase de aprendizado; é dinheiro gasto sem sinal confiável.
Alternativa honesta1 ângulo forte + R$70/dia × 3 diasPra quem quer sinal mais rápido, trocando amplitude por velocidade.
Período7 dias sem mexer (salvo circuit-breaker — ver abaixo)Cada edição reseta o aprendizado do algoritmo.

Content truncated.

When not to use it

  • When the Zelador has not confirmed healthy pixel/CAPI status
  • When the user does not know the audience's level of consciousness
  • When the user wants to mix different audience temperatures in the same ad set

Prerequisites

Zelador skill must have run and `zelador.status_geral` must not be "CRITICO"For API publishing, Zelador must have passed `--testar-escrita` (`api_escrita_habilitada: true`)

Limitations

  • Cannot create "Impulsionar" campaigns
  • Cannot segment beyond one umbrella interest in v1
  • Cannot mix different audience temperatures within the same ad set

How it compares

This skill automates campaign structuring and publishing with explicit user gates, unlike manual configuration which requires the user to set up each parameter individually.

Compared to similar skills

estruturador side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
estruturador (this skill)010dReviewBeginner
zendesk153moReviewIntermediate
zapier-workflows118moReviewBeginner
controlling-spotify73moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

Search skills

Search the agent skills registry