SmartHub AppsMáquina de aquisição

P4.1 · Subir campanha na Meta

Depende de P2.4 (imagens prontas) e **P3.3 verde**. Sem a CAPI validada, não rode este prompt.

O prompt

Automatize a subida de campanhas na Meta a partir de arquivo versionado. Nada de clicar no Gerenciador.

1. Configuração declarativa

ads/meta/campanhas/radar-preco.yaml:

campanha:
  nome: "CAMP · Prospecção · Radar de Preço"
  objetivo: OUTCOME_SALES
  status: PAUSED                      # sempre nasce pausada
  orcamento_diario_centavos: 4500
conjuntos:
  - nome: "ADSET · Advantage+ amplo"
    otimizacao: OFFSITE_CONVERSIONS
    evento: PURCHASE
    janela_atribuicao: "7d_click_1d_view"
    publico:
      paises: [BR]
      idade: [25, 55]
      advantage_plus: true
      interesses_semente:
        - "Nuvemshop"
        - "Comércio eletrônico"
        - "Mercado Livre"
        - "Shopify"
      excluir_custom_audiences: ["Clientes pagantes"]
    posicionamentos: automaticos
    anuncios:
      - nome: "preco-mockup-perda-feed-branco"
        criativo: ./out/preco-mockup-perda-feed-branco.png
        texto_principal: >
          Seu concorrente baixou o preço às 6h da manhã. Você descobriu às 18h.
          Nesse intervalo ele vendeu o que era seu. O Radar te avisa no mesmo dia.
        titulo: "Saiba na hora que o concorrente baixa o preço"
        descricao: "30 produtos monitorados. R$ 97 por ano."
        cta: LEARN_MORE
        url: "https://radar.ecomsmart.com.br/radar-de-preco?utm_source=meta&utm_medium=cpc&utm_campaign=radar-preco&utm_content=preco-mockup-perda-feed-branco"

As demais campanhas seguem o mesmo formato. Textos e ângulos estão em docs/06-meta-ads.md; as peças e os nomes de arquivo em out/CONTATO.md.

2. A regra que sustenta a medição

utm_content = nome do anúncio = nome do arquivo do criativo.

Valide isso no código e falhe a publicação se divergir. Sem essa disciplina o painel de ROI não consegue dizer qual imagem vendeu, e todo o resto vira achismo.

3. Comandos

python manage.py meta_publicar ads/meta/campanhas/radar-preco.yaml --dry-run
python manage.py meta_publicar ads/meta/campanhas/radar-preco.yaml --aplicar
python manage.py meta_ativar "CAMP · Prospecção · Radar de Preço"

4. Guardas

5. Ordem de subida

  1. CAMP · Prospecção · Raio-X grátis — R$ 75/dia, 6 criativos
  2. CAMP · Prospecção · Radar de Preço — R$ 45/dia, 6 criativos
  3. CAMP · Retargeting 7 dias — R$ 30/dia, criativos Profundo
  4. Radar de Anúncios só depois que as três estiverem estáveis

Subir tudo pausado, revisar os previews comigo, ativar em seguida.

6. Depois de ativar

Não mexer por sete dias. É a fase de aprendizado. Depois disso:

Critérios de aceite

  1. --dry-run das campanhas, com a saída completa, revisada comigo
  2. Campanhas criadas pausadas, com os anúncios e os previews gerados
  3. Rodar o comando de novo não cria nada — prove com o diff
  4. Teste do teto de orçamento bloqueando
  5. Teste de que utm_content divergente do nome do anúncio falha a validação
  6. Teste de que publicar com diagnóstico vermelho é recusado
© 2026 EcomSmart · Uso interno · pt-BR