Skip to content
EricOFreitasPublic

About

Automação de marketing de afiliados: artigos do WordPress viram campanhas no Google Ads e Meta Ads geradas por IA, com aprovação humana. FastAPI + Celery + Next.js. Projeto de estudo.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

AfiliBot

Plataforma de automação de marketing de afiliados: pega artigos publicados no WordPress e gera, com IA, campanhas de tráfego pago no Google Ads e no Meta Ads — com aprovação humana obrigatória antes de qualquer campanha ir ao ar.

Warning

Projeto de estudo, nunca executado em produção. O código está completo e as integrações são reais (SDKs oficiais do Google Ads, Meta Business, OpenAI e Telegram), mas o sistema nunca foi rodado ponta a ponta contra contas de anúncio reais. As dependências estão nas versões de 2024 — Google e Meta descontinuam versões de API anualmente, então espere precisar atualizar as libs antes que as chamadas de Ads funcionem. Não há testes automatizados. Use como referência de arquitetura, não como produto pronto.


Como funciona

WordPress publica um artigo
        │
        │  POST /webhook/{secret}  ·  assinado com HMAC-SHA256
        ▼
  Backend FastAPI ──✗ assinatura inválida──▶ 401
        │ ✓  salva o artigo, enfileira a geração
        ▼
  Celery (fila: ai) ──▶ GPT-4o
        │  headlines, descriptions, keywords, público-alvo
        ▼
  2 campanhas (Google + Meta) com status "pending"
        │  notifica no Telegram
        ▼
  Operador revisa no dashboard, edita copy e orçamento, aprova
        │
        ▼
  Celery (fila: ads)
        ├── Google Ads: Budget → Campaign → AdGroup → RSA + Keywords
        └── Meta Ads:   Campaign → AdSet → Creative → Ad
        │  ambas criadas como PAUSED
        ▼
  Celery Beat (de hora em hora) sincroniza métricas
        ▼
  Dashboard: CTR, cliques, gasto, conversões

As campanhas são sempre criadas com status PAUSED nas duas plataformas. Nada começa a gastar orçamento sem alguém ativar manualmente.


Componentes

Pasta Stack O que faz
backend/ FastAPI · SQLAlchemy 2 (async) · Celery · PostgreSQL · Redis API REST, workers, integrações
dashboard/ Next.js 14 · TypeScript · Tailwind · Recharts · SWR Revisão e aprovação de campanhas, gráficos
wp-plugin/afilibot/ PHP (plugin WordPress) Dispara o webhook, injeta links de afiliado, rastreia cliques
docker-compose.yml Docker Compose Sobe os 6 serviços

Serviços

db (Postgres 16) · redis (7) · backend (:8000) · worker (Celery, filas default,ai,ads,metrics) · beat (agendador) · dashboard (:3000)


Subindo local

cp .env.example .env
# preencha as credenciais — veja a tabela abaixo
docker compose up -d --build

O schema do banco é criado no boot via create_all(). Não há migrations — o alembic está no requirements.txt mas nunca foi configurado, então qualquer alteração de modelo depois do primeiro boot exige recriar o volume ou escrever o ALTER na mão.

Variáveis obrigatórias

Grupo Chaves Necessário para
Banco / fila DATABASE_URL, CELERY_BROKER_URL subir
Auth DASHBOARD_SECRET, SECRET_KEY subir
OpenAI OPENAI_API_KEY gerar campanhas
Google Ads GOOGLE_ADS_DEVELOPER_TOKEN, CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN lançar no Google
Meta Ads META_APP_ID, META_APP_SECRET, META_ACCESS_TOKEN, META_PAGE_ID lançar no Meta
Telegram TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID notificações

Sem as credenciais de Ads o sistema sobe e gera campanhas normalmente — só falha no momento do lançamento, com erro explícito.


API

Tudo abaixo de /webhook exige Authorization: Bearer <DASHBOARD_SECRET>.

Método Rota Descrição
POST /webhook/{webhook_secret} Recebe o artigo do WordPress (auth por HMAC, não Bearer)
GET POST /sites/ Lista e cadastra sites
GET PATCH /sites/{id} Detalhe e edição
GET /campaigns/ Lista campanhas
GET /campaigns/{id} Detalhe
POST /campaigns/{id}/approve Aprova e enfileira o lançamento
POST /campaigns/{id}/reject Rejeita
POST /campaigns/{id}/pause Pausa
GET /metrics/overview KPIs agregados
GET /metrics/campaign/{id} Série temporal da campanha
GET /metrics/articles Desempenho por artigo

Segurança

  • Webhook: HMAC-SHA256 por site, header X-AfiliBot-Signature: sha256=<hash>.
  • Dashboard/API: um único Bearer token compartilhado (DASHBOARD_SECRET). Não há usuários, sessões nem tela de login — adequado só para uso pessoal atrás de rede confiável. Exposto na internet, isso precisaria de autenticação real.
  • O docker-compose.yml publica Postgres (5432) e Redis (6379) no host. Conveniente para desenvolver, remova essas portas antes de qualquer deploy.

Limitações conhecidas

  • Nunca rodado ponta a ponta contra contas reais.
  • Sem testes automatizados.
  • Sem migrations (create_all no boot).
  • Dependências de 2024; as APIs de Google Ads e Meta provavelmente já mudaram de versão.
  • Auth de token único, sem multiusuário.
  • Textos da interface e da documentação em português.

Documentação

  • USAGE.md — guia de uso, fluxo detalhado, páginas do dashboard
  • DEPLOY.md — arquitetura, deploy, reverse proxy

Licença

MIT.

O plugin WordPress em wp-plugin/afilibot/ declara GPL-2.0-or-later no cabeçalho, como exige o diretório oficial de plugins do WordPress.

About

Automação de marketing de afiliados: artigos do WordPress viram campanhas no Google Ads e Meta Ads geradas por IA, com aprovação humana. FastAPI + Celery + Next.js. Projeto de estudo.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages