Este capítulo es para cuando ya operas bien de forma manual. Automatizar un proceso que no entiendes solo te hace equivocarte más rápido.
22.1 Niveles de automatización
| Nivel | Qué automatizas | Herramientas |
|---|---|---|
| 1. Nativo | Reglas automatizadas, Advantage+, mejoras creativas, respuestas automáticas | Ads Manager, Business Suite, WhatsApp Business |
| 2. Integraciones sin código | Leads a CRM/hojas/WhatsApp, alertas, reportes | Make, Zapier, n8n, integraciones nativas |
| 3. Datos y reportes | Extracción automática a un almacén de datos + dashboards | Conectores (Supermetrics, Windsor, Porter), BigQuery, Supabase, Looker Studio |
| 4. Tracking servidor | CAPI, Events API, conversiones offline desde el CRM | sGTM, Stape, CAPI Gateway, código propio |
| 5. Código y APIs | Creación masiva de anuncios, reglas propias, detección de anomalías | Marketing API de Meta, TikTok Marketing API, Google Ads API y scripts |
| 6. Agentes de IA | Auditorías, análisis, generación creativa y gestión supervisada | Servidor MCP de Meta Ads, Meta AI para empresas, LLMs con herramientas |
22.2 Flujos sin código que toda operación debería tener
- Lead de formulario → WhatsApp + CRM en tiempo real. Trigger: nuevo lead en Meta Lead Ads → acción: crear registro en CRM/hoja + enviar notificación al vendedor + (vía API de WhatsApp) mensaje de bienvenida con plantilla aprobada.
- Venta cerrada en CRM → evento a Meta (CAPI). Cuando el vendedor marca "vendido", se envía un evento
Purchase(o de etapa de lead) con teléfono hasheado y valor. - Alerta de gasto anómalo. Si el gasto diario supera X o el costo por resultado supera Y, aviso por correo o WhatsApp.
- Reporte semanal automático por cliente con los KPIs acordados.
- Anuncio rechazado → alerta inmediata.
22.3 Ejemplo técnico: enviar una venta offline a Meta Conversions API (Python)
import hashlib, time, requests
PIXEL_ID = "TU_DATASET_ID"
ACCESS_TOKEN = "TU_TOKEN_DE_SISTEMA" # token de usuario del sistema, nunca personal
API_VERSION = "v26.0" # usa la versión vigente
def sha256(valor: str) -> str:
return hashlib.sha256(valor.strip().lower().encode("utf-8")).hexdigest()
def normalizar_telefono_pe(tel: str) -> str:
digitos = "".join(c for c in tel if c.isdigit())
return digitos if digitos.startswith("51") else "51" + digitos
def enviar_compra(telefono, email, valor, pedido_id, nombre=None):
evento = {
"event_name": "Purchase",
"event_time": int(time.time()),
"event_id": f"pedido-{pedido_id}", # clave de deduplicación
"action_source": "business_messaging", # o "physical_store", "system_generated", "website"
"messaging_channel": "whatsapp",
"user_data": {
"ph": [sha256(normalizar_telefono_pe(telefono))],
"em": [sha256(email)] if email else [],
"fn": [sha256(nombre)] if nombre else [],
"country": [sha256("pe")],
},
"custom_data": {"currency": "PEN", "value": float(valor)},
}
url = f"https://graph.facebook.com/{API_VERSION}/{PIXEL_ID}/events"
r = requests.post(url, json={"data": [evento], "access_token": ACCESS_TOKEN}, timeout=30)
r.raise_for_status()
return r.json()
⚠️ Notas: los campos exactos de mensajería (action_source, identificadores de conversación de click-to-WhatsApp como el ctwa_clid) y la versión de la API cambian; revisa la documentación oficial de Conversions API vigente. Guarda los tokens en variables de entorno, nunca en el código ni en repositorios públicos. Prueba primero con el código de prueba de Test Events.
22.4 Ejemplo técnico: extraer rendimiento por anuncio (Ads Insights API)
import requests
def insights(ad_account_id, token, desde, hasta):
url = f"https://graph.facebook.com/v26.0/act_{ad_account_id}/insights"
params = {
"level": "ad",
"fields": "campaign_name,adset_name,ad_name,spend,impressions,reach,"
"inline_link_clicks,actions,cost_per_action_type",
"time_range": f'{{"since":"{desde}","until":"{hasta}"}}',
"time_increment": 1,
"action_attribution_windows": '["7d_click","1d_view"]',
"access_token": token,
"limit": 500,
}
filas = []
while url:
r = requests.get(url, params=params, timeout=60).json()
if "error" in r:
raise RuntimeError(r["error"])
filas.extend(r.get("data", []))
url = r.get("paging", {}).get("next"); params = None
if not filas:
# Desde 2026, algunas consultas devuelven éxito con datos vacíos (desgloses no habilitados,
# ventanas eliminadas). Trata "vacío" como alerta, no como "cero".
print("ALERTA: respuesta vacía, verifica permisos, desgloses y ventanas de atribución")
return filas
🔴 Lecciones de ingeniería 2026: (1) las ventanas 7d_view y 28d_view ya no devuelven datos; (2) desgloses por dispositivo, hora y frecuencia requieren habilitación por cuenta desde agosto de 2026 (hay un endpoint insights/feature-settings para activarlos); (3) datos únicos y por hora limitados a 13 meses: guarda tu historia en tu propia base de datos; (4) las versiones de API se retiran periódicamente y algunas llamadas vencidas se ejecutan en silencio con la versión siguiente. Diseña tus pipelines para detectar "vacíos sospechosos".
22.5 Arquitectura de datos recomendada
[Meta Ads API] [TikTok API] [Google Ads API] [GA4] [CRM / WhatsApp / POS]
\ | | | /
-------> Ingesta diaria (Make / n8n / script en cron / conector)
|
Almacén: BigQuery o Postgres (Supabase)
tablas: gasto_diario_por_anuncio, conversiones_crm,
ventas_reales, catalogo_creativos (con etiquetas)
|
Modelo: unir por fecha + UTM/ID de anuncio + código de WhatsApp
|
Dashboards (Looker Studio / Metabase) + alertas + análisis con IA
💡 La tabla más valiosa que puedes construir: un catálogo de creativos etiquetados (concepto, ángulo, persona, formato, hook, duración, protagonista) unido al rendimiento. Con 100+ anuncios etiquetados, puedes responder con datos preguntas como "¿los hooks de pregunta rinden mejor que los de resultado para dueños de negocio?". Eso es inteligencia creativa propietaria.
22.6 Generación creativa a escala
- Plantillas + datos: un diseño base en Canva/Figma con variables (producto, precio, beneficio) y un feed de datos para generar decenas de piezas estáticas.
- Catálogo dinámico: anuncios de catálogo con plantillas de marco, precio y etiquetas.
- IA generativa en la plataforma: Advantage+ creative (Meta), Symphony (TikTok), Asset Studio (Google).
- Pipelines propios: un LLM genera variantes de guion desde la matriz de investigación → un editor humano selecciona → producción → carga masiva vía API con nombres codificados → etiquetado automático.
- ⚠️ Recuerda Andromeda: generar 100 variaciones mínimas de la misma idea no aporta diversidad. Usa la automatización para ejecutar conceptos distintos, no para clonar uno.
22.7 Agentes de IA sobre las cuentas publicitarias
- En julio de 2026 Meta abrió un servidor MCP oficial de anuncios (en mcp.facebook.com/ads): un agente de IA autorizado puede leer reportes, crear y gestionar campañas y trabajar catálogos por un canal oficial, en lugar de scripts no autorizados que pueden hacer que marquen tu cuenta. Para tus propias cuentas el acceso es estándar; las agencias que operan activos de otros negocios necesitan un permiso avanzado con revisión de app.
- 🔴 Seguridad: en agosto de 2026 Meta agregó un panel de permisos (Configuración del negocio → Integraciones → Ads MCP Server) y profesionales reportaron que las cuentas venían con las 7 acciones de escritura habilitadas por defecto, incluida la edición de presupuestos. Si conectas un agente: desactiva todo lo que no necesita. Un agente de reportes no necesita ninguna acción de escritura. Nunca des a un agente permiso de presupuesto sin límites de gasto a nivel de cuenta.
- Meta AI para pequeñas empresas (agosto 2026): audita, diagnostica y genera presentaciones conectando anuncios, analíticas y Google Workspace.
- 📐 Uso sensato de agentes: auditorías periódicas, análisis de rendimiento creativo, redacción de variantes, detección de anomalías y borradores de reportes. Decisiones de presupuesto y cambios estructurales: con aprobación humana.
22.8 Chatbots de venta en WhatsApp con IA
Arquitectura típica: WhatsApp Business Platform (vía proveedor) → webhook → servidor con LLM + base de conocimiento del negocio (catálogo, precios, políticas, preguntas frecuentes; técnica RAG) → respuestas, calificación, agendamiento o link de pago → registro en CRM → evento a Meta (CAPI) cuando hay venta. Reglas: transferir a humano ante dudas complejas o quejas, no inventar precios ni stock (el bot solo responde con datos de la base), cumplir las políticas de WhatsApp sobre plantillas y consentimiento.
22.9 Google Ads Scripts
Google Ads permite scripts en JavaScript dentro de la cuenta: alertas de presupuesto, detección de enlaces rotos, reportes automáticos, pausas por reglas complejas. Es la forma más accesible de "programar" una cuenta publicitaria.
Reglas prácticas del Capítulo 22
- Automatiza primero el flujo de leads y el retorno de ventas a las plataformas.
- Guarda tus datos en tu propia base: las plataformas borran y cambian.
- Trata las respuestas vacías de las APIs como alertas.
- Etiqueta cada creativo: es tu inteligencia propietaria.
- Agentes de IA con permisos mínimos y aprobación humana para el dinero.