leads-optimizer/README.md

81 lines
2.8 KiB
Markdown

# Leads Optimizer — Formación
Agente de optimización automática de campañas Google Ads para generación de leads de formación.
Cruza datos de Airtable (leads reales) con métricas de Google Ads y decide ajustes de presupuesto.
---
## Campos requeridos en Airtable
### Tabla: "Google Ads Campaigns"
| Campo | Tipo | Descripción |
|-------------------|---------|--------------------------------------|
| Curso | Text | Nombre del curso |
| GoogleCampaignID | Number | ID de campaña en Google Ads |
| PPL | Number | Precio por lead (€) |
| CapTotalMes | Number | Capping mensual de leads |
| CPAMaximo | Number | CPA máximo tolerable (€) |
| Activa | Boolean | TRUE para incluir en el análisis |
### Tabla: "Leads Lake"
| Campo | Tipo | Descripción |
|-------------------|---------|--------------------------------------|
| GoogleCampaignID | Text | ID de campaña de origen |
| FechaEntrada | Date | Fecha del lead (formato YYYY-MM-DD) |
---
## Variables de entorno
```bash
export AIRTABLE_TOKEN=pat_xxxxxxxxxxxx
export AIRTABLE_BASE_ID=appXXXXXXXXXXXXXX
export GOOGLE_ADS_DEVELOPER_TOKEN=xxxx
export GOOGLE_ADS_CLIENT_ID=xxxx.apps.googleusercontent.com
export GOOGLE_ADS_CLIENT_SECRET=xxxx
export GOOGLE_ADS_REFRESH_TOKEN=xxxx
export GOOGLE_ADS_LOGIN_CUSTOMER_ID=1234567890 # sin guiones
export ANTHROPIC_API_KEY=sk-ant-xxxx
export SLACK_WEBHOOK_URL=xxx
```
---
## Instalación y ejecución
```bash
# Instalar dependencias
pip install -r requirements.txt
# Ejecutar en modo DRY RUN (recomendado para empezar)
# DRY_RUN = True en config.py → solo muestra decisiones, no aplica cambios
python run.py
# Cuando estés seguro, cambiar DRY_RUN = False en config.py
python run.py
```
---
## Lógica de urgencia
| Urgencia | Condición | Acción típica |
|-------------|--------------------------------------------------------|-----------------------|
| PAUSAR | leads >= capping | Pausa campaña |
| SPRINT | ritmo muy atrasado + quedan ≤ 5 días | +30-50% presupuesto |
| ACELERAR | ritmo atrasado > 15 puntos vs ratio del mes | +10-25% presupuesto |
| FRENAR | ritmo adelantado > 15 puntos vs ratio del mes | -10-25% presupuesto |
| EN_RITMO | dentro del margen esperado | Mantener |
---
## Automatización con cron
```bash
# Ejecutar cada día a las 8:00
0 8 * * * cd /ruta/leads-optimizer && python run.py >> logs/optimizer.log 2>&1
```