Sistema completo de automação para geração de imagens com IA (DALL-E 3) e publicação de anúncios na plataforma Meta (Facebook, Instagram, WhatsApp).
- Características
- Confirmação sobre API Meta
- Requisitos
- Instalação
- Configuração
- Uso
- Estrutura do Projeto
- Exemplos Práticos
- Troubleshooting
- ✅ Geração de imagens com DALL-E 3 (OpenAI)
- ✅ Upload automático para biblioteca de anúncios Meta
- ✅ Criação completa de campanhas na Meta
- ✅ Suporte para Facebook, Instagram e WhatsApp
- ✅ Segmentação avançada de público
- ✅ Processamento em lote (múltiplos anúncios)
- ✅ Logs em JSON para auditoria
- ✅ API oficial da Meta (100% legal e suportado)
IMPORTANTE: A afirmação de que "não tem como automatizar via API Meta" está INCORRETA.
A Meta possui uma API oficial e completa chamada Meta Marketing API (anteriormente Facebook Marketing API) que permite:
- ✅ Criar campanhas programaticamente
- ✅ Gerenciar conjuntos de anúncios
- ✅ Upload de imagens e vídeos
- ✅ Definir segmentação e orçamento
- ✅ Monitorar performance em tempo real
- ✅ Publicar em Facebook, Instagram, Messenger e WhatsApp
Fontes oficiais:
- GitHub: github.com/facebook/facebook-python-business-sdk
- Documentação: developers.facebook.com/docs/marketing-apis
- Última atualização da API: v22.0 (2025)
- Python 3.8 ou superior
- pip (gerenciador de pacotes Python)
- Conta Meta for Developers
- Conta Meta Ads Manager
- Acesse: https://platform.openai.com/api-keys
- Crie uma nova API key
- Copie e guarde com segurança
- Acesse: https://developers.facebook.com/apps
- Crie um novo aplicativo (tipo "Business")
- Vá em Configurações > Básico
- Copie App ID e App Secret
- Acesse: https://developers.facebook.com/tools/explorer/
- Selecione seu aplicativo
- Adicione permissões:
ads_management,business_management,pages_read_engagement - Gere o token
- IMPORTANTE: Use a ferramenta de Debug de Token para estender a validade
- Acesse: https://business.facebook.com/settings/ad-accounts
- Copie o ID da conta (formato:
act_123456789)
- Acesse sua página do Facebook
- Vá em Configurações > Informações da Página
- Copie o ID da Página
cd C:\Users\Vaio\Documents\TRABALHO\CHATBOT_IMOVEIS\PROJETO_CHATBOT_16092025\PROJETO_RESTART\MKTpip install -r requirements.txtCopie o arquivo .env.example para .env:
copy .env.example .envEdite o arquivo .env com suas credenciais:
# OpenAI Configuration
OPENAI_API_KEY=sk-proj-xxxxxxxxxxxxxxxxxx
# Meta/Facebook Configuration
META_APP_ID=1234567890
META_APP_SECRET=abcdef1234567890abcdef1234567890
META_ACCESS_TOKEN=EAAxxxxxxxxxxxxxxxxxxxxxxxxxxxx
META_AD_ACCOUNT_ID=act_1234567890
# Optional: Page ID
META_PAGE_ID=1234567890from automation_main import AdAutomation
# Inicializar automação
automation = AdAutomation()
# Criar um anúncio completo
result = automation.create_ad_with_ai_image(
# Imagem
image_prompt="Modern luxury apartment with ocean view",
image_quality="hd",
# Anúncio
campaign_name="Campanha Imóveis de Luxo",
ad_title="Apartamento de Luxo",
ad_body="Descubra o imóvel dos seus sonhos!",
link_url="https://www.seusite.com",
daily_budget=10000, # R$ 100,00
# Segmentação
targeting={
'geo_locations': {'countries': ['BR']},
'age_min': 25,
'age_max': 55
}
)
print(result)python automation_main.pyMKT/
│
├── automation_main.py # Script principal da automação
├── image_generator.py # Módulo de geração de imagens (OpenAI)
├── meta_ads_manager.py # Módulo de gerenciamento Meta Ads
│
├── requirements.txt # Dependências Python
├── .env.example # Template de variáveis de ambiente
├── .env # Suas credenciais (NÃO COMMITAR)
├── README.md # Esta documentação
│
├── generated_images/ # Imagens geradas pela IA
├── logs/ # Logs JSON das automações
└── .gitignore # Arquivos a ignorar no Git
automation = AdAutomation()
result = automation.create_ad_with_ai_image(
image_prompt="Cozy apartment living room, modern furniture, natural light",
campaign_name="Apartamentos Aconchegantes",
ad_title="Seu Novo Lar Espera por Você",
ad_body="Apartamento moderno e aconchegante. Agende sua visita!",
link_url="https://exemplo.com/apartamentos",
daily_budget=5000 # R$ 50,00
)targeting_avancado = {
'geo_locations': {
'countries': ['BR'],
'regions': [
{'key': '3450'}, # São Paulo
{'key': '3462'} # Rio de Janeiro
],
'cities': [
{'key': '2490299', 'radius': 25, 'distance_unit': 'kilometer'}
]
},
'age_min': 30,
'age_max': 55,
'genders': [1], # 1=homens, 2=mulheres
'interests': [
{'id': 6003139266461, 'name': 'Real estate'},
{'id': 6003107902433, 'name': 'Luxury goods'}
],
'life_events': [
{'id': 6002714398172, 'name': 'Recently moved'}
]
}
result = automation.create_ad_with_ai_image(
image_prompt="Luxury penthouse with city view",
campaign_name="Coberturas Premium SP/RJ",
ad_title="Cobertura de Alto Padrão",
ad_body="Exclusividade e sofisticação. Viva no topo!",
link_url="https://exemplo.com/coberturas",
daily_budget=20000, # R$ 200,00
targeting=targeting_avancado
)automation = AdAutomation()
anuncios = [
{
'image_prompt': 'Studio apartment, minimalist design',
'campaign_name': 'Studios Modernos',
'ad_title': 'Studio no Centro',
'ad_body': 'Ideal para jovens profissionais',
'link_url': 'https://exemplo.com/studios',
'daily_budget': 5000
},
{
'image_prompt': 'Family house with garden',
'campaign_name': 'Casas Familiares',
'ad_title': 'Casa para sua Família',
'ad_body': 'Ampla, segura e confortável',
'link_url': 'https://exemplo.com/casas',
'daily_budget': 8000
}
]
results = automation.create_multiple_ads(anuncios)from image_generator import ImageGenerator
generator = ImageGenerator()
# Gerar imagem
result = generator.generate_image(
prompt="Modern kitchen, marble countertop, stainless steel appliances",
size="1792x1024",
quality="hd",
style="natural",
save_path="./my_images/kitchen.png"
)
print(f"URL: {result['url']}")
print(f"Prompt revisado: {result['revised_prompt']}")from meta_ads_manager import MetaAdsManager
manager = MetaAdsManager()
# Criar anúncio com imagem existente
result = manager.create_complete_ad(
campaign_name="Minha Campanha",
ad_name="Meu Anúncio",
image_path="./my_images/existing_image.jpg",
title="Título do Anúncio",
body="Texto principal do anúncio",
link_url="https://exemplo.com",
daily_budget=5000,
targeting={'geo_locations': {'countries': ['BR']}}
)Solução: Verifique se o arquivo .env existe e contém a chave correta.
# Verificar se o arquivo existe
dir .env
# Editar o arquivo
notepad .envProblema: Access Token inválido ou expirado.
Solução:
- Gere um novo token em: https://developers.facebook.com/tools/explorer/
- Use a ferramenta de Debug de Token para estender a validade
- Atualize o
.envcom o novo token
Problema: Faltam permissões no token.
Solução:
- No Graph API Explorer, adicione as permissões:
ads_managementbusiness_managementpages_read_engagement
- Gere um novo token
- Submeta o app para revisão do Facebook (se necessário)
Problema: ID da conta de anúncios incorreto.
Solução: Verifique se o ID está no formato correto: act_1234567890
Problema: Imagem não encontrada ou formato inválido.
Solução:
- Verifique se o caminho da imagem está correto
- Formatos aceitos: JPG, PNG
- Tamanho máximo: 30 MB
- Resolução mínima: 600x600px
Problema: Muitas requisições em pouco tempo.
Solução: Adicione delays entre as chamadas:
import time
for ad in ads_batch:
result = automation.create_ad_with_ai_image(**ad)
time.sleep(5) # Aguardar 5 segundos entre anúnciosOUTCOME_TRAFFIC- TráfegoOUTCOME_ENGAGEMENT- EngajamentoOUTCOME_LEADS- LeadsOUTCOME_SALES- VendasOUTCOME_AWARENESS- Reconhecimento de marcaOUTCOME_APP_PROMOTION- Promoção de app
LEARN_MORE- Saiba maisSHOP_NOW- Compre agoraSIGN_UP- Cadastre-seDOWNLOAD- BaixarBOOK_TRAVEL- Reserve viagemCONTACT_US- Entre em contatoAPPLY_NOW- Candidate-se agoraGET_QUOTE- Solicite orçamento
- Meta Marketing API: https://developers.facebook.com/docs/marketing-apis
- Python Business SDK: https://github.com/facebook/facebook-python-business-sdk
- OpenAI DALL-E API: https://platform.openai.com/docs/guides/images
- Meta Targeting: https://developers.facebook.com/docs/marketing-api/audiences/reference/targeting
- Custos: Cada geração de imagem e anúncio gera custos nas respectivas plataformas
- Segurança: NUNCA commite o arquivo
.envpara repositórios públicos - Políticas: Respeite as políticas de publicidade da Meta e diretrizes da OpenAI
- Testes: Sempre teste com orçamentos baixos antes de escalar
- Compliance: Anúncios de categorias especiais (imóveis, crédito, emprego) têm regras específicas
Para dúvidas ou problemas:
- Consulte esta documentação
- Verifique os logs em
./logs/ - Revise a documentação oficial das APIs
- Teste com os exemplos fornecidos
Este projeto é fornecido como está para fins educacionais e comerciais.
Desenvolvido com Python | OpenAI DALL-E 3 | Meta Marketing API
Última atualização: Novembro 2025