79 lines
2.7 KiB
Markdown
79 lines
2.7 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
|
|
```
|
|
|
|
---
|
|
|
|
## 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
|
|
```
|