P5.3 · Radar de Anúncios
Depende de P3.1. App `anuncios`. É o produto de maior margem da linha.
O prompt
1. Fonte de dados
Ad Library API da Meta, endpoint /ads_archive. É pública e gratuita — o custo operacional é praticamente zero.
No Claude Code há a tool ads_library_search do conector Meta Ads. Use para explorar e validar o formato. Em produção, chame a Graph API diretamente com token próprio.
Atenção: para anúncios comerciais no Brasil, os campos disponíveis são mais restritos que para anúncios políticos. Descubra empiricamente o que vem de fato — ad_creative_bodies, ad_creative_link_titles, ad_snapshot_url, ad_delivery_start_time, page_name, publisher_platforms — e documente em anuncios/README.md exatamente quais campos a API devolve hoje, com exemplo de resposta.
Não prometa na landing nada que a API não entregue.
2. Modelos
- Anunciante:
loja(quem monitora),page_id,page_name,dominio,adicionado_em - AnuncioObservado:
anunciante,ad_archive_id,texto,titulo,link,snapshot_url,midia_url_local,plataformas,visto_primeiro_em,visto_ultimo_em,dias_no_ar,ativo - CapturaAnuncios: log de cada varredura
3. Coleta
varrer_anunciante(anunciante_id), uma vez por dia:
- Busca os anúncios ativos da página
- Anúncio novo → cria, marca
visto_primeiro_em, baixa a mídia do snapshot e guarda no object storage. O snapshot da Meta expira - Anúncio conhecido → atualiza
visto_ultimo_eme recalculadias_no_ar - Anúncio que sumiu →
ativo=False
Respeite o rate limit com backoff. Uma varredura diária por anunciante é suficiente e barata.
4. Alertas — o valor real do produto
| Evento | Mensagem |
|---|---|
| Criativo novo | "{Concorrente} subiu um criativo novo hoje." |
| 21 dias no ar | "Este anúncio de {Concorrente} roda há 21 dias. Anúncio que não é desligado está dando resultado." |
| 60 dias no ar | "{Concorrente} mantém este anúncio há 60 dias. É o criativo campeão dele." |
| Derrubado | "{Concorrente} desligou um anúncio que rodava há {n} dias." |
O alerta de 21 dias é o principal argumento de venda. É a informação que o lojista não consegue sozinho.
Digest semanal por e-mail com miniaturas: quantos criativos novos cada concorrente subiu, quais estão há mais tempo no ar.
5. Painel
- Feed — cards com miniatura, concorrente, texto, pílula verde
#16A34Acom "47 dias no ar", plataformas, link para o snapshot - Por concorrente — linha do tempo de criativos, quantos ativos agora, duração média
- Ranking de longevidade — os anúncios há mais tempo no ar entre todos os monitorados. É a tela que o lojista abre toda semana
6. Descoberta de concorrente
No onboarding, o lojista digita o domínio e o sistema encontra a página da Meta correspondente — busca por nome mais validação pelo link do anúncio apontar para o domínio. Se não achar, ele cola o link da página. Limite de 10 anunciantes no plano de R$ 49.
7. Copy
Na landing e nos anúncios, nunca espionar. A Meta reprova. Use "acompanhar", "monitorar", "a biblioteca pública de anúncios da Meta". A informação é pública e a própria Meta a disponibiliza por API — a copy deve refletir isso.
Critérios de aceite
anuncios/README.mdcom a lista real dos campos que a API devolve hoje no Brasil para anúncio comercial, com exemplo- Varredura real de 3 concorrentes, com anúncios e mídias salvas
- Teste de
dias_no_arem anúncio que sumiu e voltou - Teste do gatilho de 21 dias
- Capturas das 3 telas em claro e escuro
- Teste de palavras proibidas, com
espionarincluído