Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
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
# 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
# Ejecutar cada día a las 8:00
0 8 * * * cd /ruta/leads-optimizer && python run.py >> logs/optimizer.log 2>&1
Description
Languages
Python
99.5%
Shell
0.5%