# 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 ```