# Creative Meta Ads

> Pipeline pra gerar criativos Meta Ads 9:16 com copy específica, diagrama técnico do produto e animação preservando texto. Use quando o usuário pedir "criar criativo Meta Ads", "gerar variação A/B de criativo", "novo criativo pra Instagram/Facebook", "animar imagem de criativo", ou pedir variações iterativas (V2, V3) do mesmo tema antes de partir pra outro. Define estrutura visual validada (eyebro…

- **Type:** Skill
- **Install:** `agentstack add skill-tiago1002bravy-skills-marketing-creative-meta-ads`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [tiago1002bravy](https://agentstack.voostack.com/s/tiago1002bravy)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [tiago1002bravy](https://github.com/tiago1002bravy)
- **Source:** https://github.com/tiago1002bravy/skills-marketing/tree/main/skills/creative-meta-ads

## Install

```sh
agentstack add skill-tiago1002bravy-skills-marketing-creative-meta-ads
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Creative Meta Ads — pipeline de criativos 9:16

Pipeline pra gerar variações de criativos Meta Ads (Instagram/Facebook) seguindo um padrão visual com diagrama técnico do produto. Boa pra produtos B2B SaaS / IA / automações que dependem de credibilidade técnica pra converter.

## Princípios

1. **A/B testing dentro do mesmo tema antes de trocar.** Esgote variações de um tema (`01-`, `02-`, `03-`...) antes de partir pra outro. Trocar de tema cedo demais não dá tempo do Meta aprender.
2. **Termos técnicos reais ou nada.** Quem é da área percebe na hora se um termo está errado (ex: alíquota antiga, sigla extinta, lei revogada) e a credibilidade do criativo cai a zero. Veja `references/building-your-niche.md` antes de inventar qualquer termo.
3. **Texto frozen na animação.** Modelos de vídeo redesenham cada frame, então o prompt PRECISA dizer "text stays 100% identical, only animate icons/lines". Mesmo assim pode ter ruído. Kling 3.0 pro é o que melhor preserva texto até hoje.
4. **Estrutura de pastas fixa.** `[output_dir]/[Persona]/NN-tema/vNN_tema.png` + `.mp4`. Persona = público (Contadores, Advogados, Empresários, Arquitetos, Agências de Marketing...). Tema = dor específica.

## Pipeline (6 etapas)

### Etapa 1 — Briefing

Pergunte ou infira do contexto:

- **Persona** — quem é o público (Contadores, Advogados, Empresários, Arquitetos, Agências, Médicos...).
- **Tema** — dor específica que o criativo ataca (ex: `folha-fiscal`, `due-diligence`, `compatibilizacao-projetos`, `reporting-cliente`).
- **Variação N** — próximo número disponível na pasta da persona+tema (consulte o diretório de saída).
- **Ângulo** — o que distingue da V anterior (headline em pergunta vs afirmação, número diferente, dor específica diferente).

Se for primeira vez do tema na persona → `01-{tema}`. Se já tem `01-`, vai pra `02-` etc.

### Etapa 2 — Gerar copy

Estrutura **fixa** validada (não negocie a ordem):

```
EYEBROW (caps, espaçado, accent color)         ← persona
HEADLINE (preto, peso 900, número grifado em amarelo)
[bloco accent com diagrama técnico do produto]
SUBHEAD (case normal, com bold seletivo em termos técnicos)
CTA (pílula preta com seta ↓ em círculo accent)
```

**Headline** = `[Operação concreta] de [N grande] [unidade] [verbo passivo] em [tempo curto e específico] grifado.`

Exemplos validados:
- "Folha de 200 funcionários fechada em **12 minutos**."
- "Due diligence de 200 páginas em **15 minutos**."
- "Conciliação manual de 30 clientes feita em **5 minutos**."

Headlines ruins: "Automatize sua contabilidade com IA" (genérico, sem número, sem tempo).

**Eyebrow** = `FEITO PARA [PERSONA]` (ex: `FEITO PARA CONTADORES`).

**Subhead** = `[Promessa de execução] + [domínio técnico provado por 3 termos do nicho].`

Exemplos validados:
- "IA que executa na hora, com **domínio em eSocial, folha e DCTFWeb**." (contábil)
- "Agentes que dominam **CPC, CLT e LGPD**, executando como sênior." (jurídico)
- "IA com **domínio em NBR 6492, AutoCAD e Revit**, sem retrabalho." (arquitetura)

Princípios da copy (Ogilvy):
- **Específico vence genérico.** Trocar "rápido" por "12 minutos". Trocar "grande volume" por "200 funcionários".
- **Termos técnicos são prova social pra quem é da área.** Quem vê um termo real e bem aplicado sabe que quem fez o anúncio entende do negócio.
- **Bold seletivo no subhead** ancora os 2-3 pontos que mais convertem (geralmente os termos técnicos).

Veja `references/copy-frameworks.md` pra mais opções por persona.

### Etapa 3 — Validar termos técnicos

**Checagem obrigatória antes de renderizar.** Quem é do nicho VAI perceber qualquer erro e o criativo perde toda credibilidade.

Para cada nicho, mantenha um arquivo de termos validados (vide `references/building-your-niche.md` pro guia de como construir o seu). O exemplo `examples/contabil-br/termos-tecnicos.md` mostra o nível de profundidade esperado.

Após gerar a copy + lista de termos do diagrama, **liste cada um e diga "validado contra: [fonte oficial]"**. Se não tiver certeza, REMOVA o termo. Não invente.

Erros típicos a evitar (exemplos do nicho contábil):

| ❌ Errado | ✅ Correto | Motivo |
|---|---|---|
| INSS 11% (folha CLT) | INSS 7,5–14% | 11% é alíquota antiga/individual; CLT é progressiva |
| GFIP / SEFIP | DCTFWeb + FGTS Digital | Sistemas extintos em 2024 |
| GPS (folha empresa) | DARF 1138 | GPS só sobrevive pra MEI/doméstico |

Cada nicho tem suas próprias armadilhas. Mapeie as suas.

### Etapa 4 — Renderizar imagem

1. Copie `assets/template_v1.html` pra `[work_dir]/v{N}_{tema}.html`.
2. Edite os campos: eyebrow, headline (com ``), categoria do bloco, inputs/outputs do diagrama, pílulas técnicas, subhead, CTA. Mantenha layout exato — não mexa nas medidas, padding, cores.
3. Renderize via headless Chrome:

```bash
./scripts/render.sh [work_dir]/v{N}_{tema}.html [work_dir]/v{N}_{tema}.png
```

(Em macOS, o script usa o Chrome em `/Applications/Google Chrome.app`. Em Linux/Windows, ajuste o binário no `render.sh`.)

4. **Valide a imagem visualmente** lendo o PNG:
   - Tudo dentro do bloco accent (sem elementos vazando).
   - Texto legível, sem overlap entre labels e linhas pontilhadas.
   - Logo do produto presente ao lado do título do bloco.
   - CTA como pílula preta com seta ↓ em círculo accent.
   - Total ~1080×1920.

Se algo estiver fora, **ajuste e re-renderize antes de seguir.**

Veja `references/visual-spec.md` pra detalhes de cada elemento.

### Etapa 5 — Animar

Apenas após aprovação da imagem.

1. Upload da PNG no provedor de animação (Higgsfield, Runway, Kling direto, etc).
2. Geração com **Kling 3.0 mode pro**, 10s, 9:16, prompt frozen-text:

```
Animation rules: ALL TEXT, NUMBERS, WORDS AND LABELS MUST STAY 100% FROZEN AND IDENTICAL. DO NOT animate, morph, change, blur, distort, redraw, regenerate or move any text. The text content stays absolutely static like it was a frozen overlay. ONLY animate non-text elements: the gear icon rotates slowly, the product logo rotates slowly, the lightning bolt icon has a gentle glow, the dashed connection lines have a slow flowing dash motion, small dots travel along the connection lines from inputs to outputs. Every single letter, number and word remains exactly as in the source image, pixel perfect. No text reflow, no text fade, no text morph. Calm, professional motion graphics. No camera movement.
```

3. **Não use Seedance 2.0** — o filtro NSFW dele bloqueia falso-positivo em criativos com lightning/flow/burst.
4. Aguarde 3-5 min pra renderização concluir; baixe `[work_dir]/v{N}_{tema}.mp4`.

Veja `references/animacao-spec.md` pra prompts alternativos e armadilhas.

### Etapa 6 — Arquivar

Estrutura sugerida:

```
[output_dir]/
└── [Persona]/                  ← Contadores, Advogados, Empresários...
    └── NN-{tema}/               ← 01-folha-fiscal, 02-folha-fiscal, ..., 06-escrita-fiscal
        ├── vNN_{tema}.png       ← número sequencial GLOBAL dentro da persona
        └── vNN_{tema}_kling.mp4
```

**Regras de numeração:**
- `NN` é sequencial global dentro da pasta da persona (01, 02, ..., 10, 11...).
- O nome do arquivo bate com o número da pasta. `06-escrita-fiscal/v06_fiscal.png`.
- Quando criar variação nova, descubra o maior `NN` existente e use `NN+1` na pasta E no arquivo.

**Onde armazenar:** qualquer storage funciona — Google Drive Desktop montado (mais prático pra times), S3, NAS, ou só local. Configure via env var `OUTPUT_DIR` ou passe como argumento.

### Etapa 7 (opcional) — Subir mídia no Meta Ads

**Por padrão, NÃO suba no gerenciador Meta**. Decisão é do usuário. Se ele explicitamente pedir, use a Graph API só pra **upload de mídia** (nunca crie criativo, ad set ou campanha automaticamente — isso é decisão de growth):

```bash
# Variáveis de ambiente esperadas:
# META_ADS_TOKEN          → access token com permissão ads_management
# META_ADS_ACCOUNT_ID     → act_ da conta de anúncios

curl -s -X POST "https://graph.facebook.com/v21.0/$META_ADS_ACCOUNT_ID/adimages" \
  -F "access_token=$META_ADS_TOKEN" \
  -F "filename=@[work_dir]/v{N}_{tema}.png"

curl -s -X POST "https://graph.facebook.com/v21.0/$META_ADS_ACCOUNT_ID/advideos" \
  -F "access_token=$META_ADS_TOKEN" \
  -F "name=[VIDEO] {Tema} {N} - {data}" \
  -F "source=@[work_dir]/v{N}_{tema}.mp4"
```

## Estado entre rodadas

Mantenha `[work_dir]` (sugestão: `/tmp/creative-meta-ads/`) com todos os arquivos gerados (HTMLs, PNGs, MP4s). Se o usuário pedir "V3 folha-fiscal", você consegue olhar V1 e V2 antes de propor um ângulo novo.

## Checklist final antes de entregar

- [ ] Headline tem número e tempo específicos (não genérico)
- [ ] Eyebrow específico da persona
- [ ] Todos os termos técnicos validados em fonte oficial
- [ ] Imagem renderizada e aprovada visualmente
- [ ] Vídeo gerado com Kling pro 10s, prompt frozen-text
- [ ] Pasta `[Persona]/NN-tema/` com PNG + MP4
- [ ] Caminhos locais reportados ao usuário

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [tiago1002bravy](https://github.com/tiago1002bravy)
- **Source:** [tiago1002bravy/skills-marketing](https://github.com/tiago1002bravy/skills-marketing)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** yes
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-tiago1002bravy-skills-marketing-creative-meta-ads
- Seller: https://agentstack.voostack.com/s/tiago1002bravy
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
