14 — Meta Optimizaciones

Índice de la página
  1. 01Cliente: Martín Rieznik / LevantArte
  2. Área: Performance Marketing / Meta Ads / Optimization
  3. 020. Definición de "done" para esta checklist
  4. 031. Pre-requisitos
  5. 042. Tareas
  6. 2.1 Setup de cuenta + verificación
  7. 2.2 Naming convention de campañas
  8. 2.3 Estructura de campañas — 3 campañas iniciales
  9. 2.4 Audiencias custom y lookalike
  10. 2.5 Presupuestos por etapa
  11. 2.6 CBO vs ABO — decisión y reglas
  12. 2.7 Optimization event por etapa del funnel
  13. 2.8 Frequency caps + refresh creativo
  14. 2.9 Reglas auto-pause / auto-scale (optimizer Cortex)
  15. 2.10 Piloto suave (5-7 jun)
  16. 2.11 QA y go-live 8 jun
  17. 053. Variables y posibilidades a anticipar
  18. 064. Multi-tenant: cómo se replica al cliente #2
  19. 075. Recursos y archivos relacionados
  20. 086. Notas y aprendizajes (post-mortem)
  21. 09CHANGELOG

Cliente: Martín Rieznik / LevantArte

Área: Performance Marketing / Meta Ads / Optimization

Setup completo de campañas Meta Ads para el lanzamiento del 8 jun: estructura de 3 campañas (Captación / Retargeting Hammer Them / Conversiones), audiencias custom + lookalike, presupuestos por etapa (piloto $100/día → escala $5K/sem), CBO vs ABO decisión por etapa, optimization event correcto por etapa del funnel, frequency caps, refresh creativo, naming convention de campañas, y reglas de auto-pause/auto-scale del optimizer Cortex (agents/meta-ads/).

Última actualización: 2026-05-05
Responsable principal (R): Cortex + Jesús
Aprobador (A): Jesús
Deadline: 2026-06-05
Depende de: 04 (50+ ads listos), 05 (clips Hammer Them), 13 (pixel + CAPI funcionando), 02 (landings vivas)
Bloquea a: 19 (go-live)


0. Definición de "done" para esta checklist

  • 3 campañas Meta creadas (Captación 1 / Retargeting Hammer Them / Conversiones) con estructura, naming convention, presupuestos, audiencias y optimization events correctos.
  • Audiencias custom de los 13 eventos del schema más LAL 1%-3% creadas y poblándose desde Pixel + CAPI.
  • Reglas de auto-pause / auto-scale activas en el optimizer Cortex (agents/meta-ads/) con benchmarks específicos para Martín.
  • Piloto suave del 5/6 con $100/día corriendo y datos limpios entrando a Supabase + Pixel.
  • Plan de escalado documentado (semana 1-3 piloto → semana 4-8 crecimiento → mes 3+ escala $5K/sem).
  • Naming convention documentada en docs/META_NAMING.md y aplicada a todas las campañas/adsets/ads.

1. Pre-requisitos

# Pre-requisito Provisto por Estado
1 Acceso Meta Business Manager + Ad Account de Martín como admin Martín ⚠️
2 Cuenta de pago configurada en Meta (tarjeta + límite suficiente) Martín ⚠️
3 Pixel + CAPI funcionando (checklist 13) con match rate > 70% Eric ⚠️
4 50+ ads producidos (winners + orgánicos viralizados) — checklist 04 Cortex + Martín ⚠️
5 16+ clips de retargeting Hammer Them (4 cuadrantes × 4 clips) — checklist 05 Cortex ⚠️
6 Landings vivas en deacademia.com/martin/... — checklist 02 Eric ⚠️
7 Optimizer Cortex agents/meta-ads/ con scripts funcionando + token Meta vigente Cortex (Jesús) ✅ (existe)
8 Decisión: usar cuenta nueva de Martín o cuenta sandbox de TooAudience para piloto Jesús ⚠️
9 Posicionamiento aprobado para evitar rechazos: "habilidades sociales / desarrollo personal / liderazgo" (NO "seducción" en copy de ads) Jesús + Cortex ⚠️

2. Tareas

2.1 Setup de cuenta + verificación

  • Verificar dominio deacademia.com en Meta Business Manager (DNS TXT record). R: Eric. Done cuando: Business Settings > Brand Safety > Domains muestra deacademia.com como verified.
  • Configurar Aggregated Event Measurement (priorización de los 8 eventos máx por dominio iOS 14+). R: Cortex + Eric. Done cuando: 8 eventos priorizados (Purchase, Lead, InitiateCheckout, ViewContent, CompleteRegistration, AddToCart si aplica, Subscribe, Schedule), Purchase #1.
  • Configurar Business Verification (si la cuenta de Martín no está verificada). R: Martín + Jesús. Done cuando: Business shows "Verified" badge.
  • Solicitar aumento de spending limit a $200/día inicial (luego escalar). R: Jesús. Done cuando: límite confirmado o ticket abierto.
  • Vincular Pixel + CAPI a la Ad Account. R: Eric. Done cuando: Ad Account > Settings > Pixel muestra Pixel de Martín activo.
  • Configurar 2FA en cuenta de Martín + admin recovery email. R: Martín. Done cuando: 2FA activo.

2.2 Naming convention de campañas

  • Documentar convención en docs/META_NAMING.md: R: Cortex. Done cuando: doc commiteada con ejemplos. Formato propuesto:
  • Campaña: [CLIENT]_[FUNNEL_STAGE]_[OBJECTIVE]_[DATE]MARTIN_CAPTACION_LEAD_2026-06
  • Adset: [CLIENT]_[STAGE]_[AUDIENCIA]_[PLACEMENT]MARTIN_CAPT_LAL1_FB-IG_AUTO
  • Ad: [CLIENT]_[STAGE]_[FORMATO]_[HOOK_CATEGORIA]_[VARIANTE]MARTIN_CAPT_VID_DATO_v1
  • Categorías de hook (hook-engineer): DATO / PREGUNTA / CONTRARIANO / HISTORIA / PROMESA / CURIOSITY / PATTERN_INT / FOMO. R: Cortex. Done cuando: enum aplicado a todos los ads en la columna hook_categoria.
  • Categorías de formato: VID (talking head) / VID-BROLL / IMG / CAROUSEL / IMG-MEME. R: Cortex. Done cuando: enum aplicado.

2.3 Estructura de campañas — 3 campañas iniciales

Campaña 1: CAPTACIÓN (cold traffic → registro al webinar)

  • Crear campaña MARTIN_CAPTACION_LEAD_2026-06 con objetivo Leads (no Engagement). R: Cortex. Done cuando: campaña en draft + nombre correcto.
  • Optimization event a nivel adset: Lead (server-side via CAPI). R: Cortex. Done cuando: cada adset tiene Lead como conversion event.
  • CBO inicial OFF (ABO — budget por adset). Justificación: en piloto con < 50 conversiones/semana, CBO no aprende bien. Cambiar a CBO en semana 4 cuando tengamos > 50 conv/sem. R: Jesús + Cortex. Done cuando: decisión documentada en docs/META_BUDGET_LOGIC.md.
  • Crear 4 adsets iniciales:
  • Adset A: MARTIN_CAPT_BROAD_HOMBRES_25-55_ARG-LATAM — broad targeting, edad 25-55, hombres, países Argentina + México + Colombia + Chile + Perú + España. Budget $30/día.
  • Adset B: MARTIN_CAPT_INT_RELACIONES_HOMBRES_25-55 — intereses: relaciones, autoayuda, desarrollo personal, libros (autores conocidos del nicho). Budget $25/día.
  • Adset C: MARTIN_CAPT_LAL1_PURCHASE_HOMBRES — Lookalike 1% basado en compras pasadas de Martín (si tiene seed). Budget $25/día.
  • Adset D: MARTIN_CAPT_LAL1_LEADS_HOMBRES — LAL 1% basado en leads del quiz (se construye después del piloto, comienza vacío y se activa semana 2). Budget $20/día (semana 2+).
  • R: Cortex. Done cuando: 4 adsets en draft con segmentación + budget correctos.
  • Placements: Manual — solo Facebook Feed + Instagram Feed + Instagram Reels + Facebook Reels (excluir Audience Network y Messenger en piloto). R: Cortex. Done cuando: placement settings explícitos.
  • Frequency cap: 2 impresiones / 7 días por usuario en captación (evitar saturar audience cold). R: Cortex. Done cuando: configurado a nivel adset.
  • Cargar 5-8 ads por adset (rotación inicial). Cada ad con UTMs auto-generadas: ?utm_source=meta&utm_medium=cpc&utm_campaign=MARTIN_CAPT_LEAD&utm_content={{ad.name}}. R: Cortex. Done cuando: 5-8 ads × 4 adsets = 20-32 ads en draft + UTMs verificadas en preview.
  • Validar copy de cada ad: scorecard ≥ 4.0/5.0 (agents/redaccion-publicitaria audit). R: Cortex. Done cuando: rúbrica archivada por ad.
  • Validar que ningún ad use palabras prohibidas Meta ("seducir", "manipular", "conseguir mujeres") — usar reframe en "habilidades sociales", "conexión", "liderazgo personal", "confianza". R: Cortex. Done cuando: grep de copies + manual review verde.

Campaña 2: RETARGETING HAMMER THEM

  • Crear campaña MARTIN_RETARGETING_HAMMER_2026-06 con objetivo Leads (mismo evento). R: Cortex. Done cuando: campaña en draft.
  • Optimization event: Lead o InitiateCheckout (depende de etapa del funnel del usuario — ver § 2.4 audiencias). R: Cortex. Done cuando: cada adset apunta al evento correcto.
  • Crear 4 adsets (uno por cuadrante de objeción):
  • Adset Q1: MARTIN_RT_Q1_PREGUNTAS — audience: visitó /martin/ pero NO completó quiz. Mostrar clips Q1 (preguntas frecuentes / qué resuelve el método).
  • Adset Q2: MARTIN_RT_Q2_2DO_ORDEN — audience: completó quiz pero NO calificado (o calificado sin handoff WA). Mostrar clips Q2 (objeciones de "esto no es para mí").
  • Adset Q3: MARTIN_RT_Q3_EXPECTATIVAS — audience: vio sales page taller pero NO compró. Mostrar clips Q3 (qué esperar del taller, casos de éxito).
  • Adset Q4: MARTIN_RT_Q4_OBJECIONES — audience: clickeó pasarela pero NO completó compra. Mostrar clips Q4 (objeciones de precio / urgencia honesta).
  • R: Cortex. Done cuando: 4 adsets con audiencias custom configuradas.
  • Cargar 4 clips por cuadrante (16 clips total) como ads, rotación. R: Cortex. Done cuando: 16 ads en draft.
  • Frequency cap: 5 impresiones / 7 días (retargeting puede ser más agresivo). R: Cortex. Done cuando: configurado.
  • Budget piloto: $10/día por adset = $40/día total retargeting. R: Cortex. Done cuando: budgets correctos.
  • Window de retargeting: 7 días (audiencias custom expiran en 7 días para mantener relevancia). R: Cortex. Done cuando: window setting verificado.

Campaña 3: CONVERSIONES (post-webinar / venta directa al taller)

  • Crear campaña MARTIN_CONVERSIONES_PURCHASE_2026-06 con objetivo Sales. R: Cortex. Done cuando: campaña en draft.
  • Optimization event: Purchase (server-side via CAPI). R: Cortex. Done cuando: configurado.
  • Audiencia: registrados al webinar de la semana actual (custom audience definida en § 2.4) que no compraron taller en primeras 24h post-webinar. R: Cortex. Done cuando: audience configurada.
  • Activar SOLO desde lunes 21:30 (post-webinar) hasta viernes 23:59 (cierre membresía). Cron semanal automatiza on/off. R: Cortex + Eric. Done cuando: schedule configurado a nivel campaña.
  • Budget: $50/día durante ventana activa (lun 21:30 → vie 23:59 ≈ 4.5 días → ~$225/sem). R: Cortex. Done cuando: budget correcto.
  • Cargar 3-5 ads tipo "última oportunidad" + testimonios (creatives específicos para esta campaña). R: Cortex. Done cuando: ads listos.

2.4 Audiencias custom y lookalike

  • Crear audiencias custom basadas en EVENTOS del Pixel (los 13 del enum): R: Cortex. Done cuando: 13 audiencias visibles en Audiences manager:
  • MARTIN_AUD_CUSTOM_PageView_30d (todos los visitantes 30 días)
  • MARTIN_AUD_CUSTOM_QuizStarted_30d
  • MARTIN_AUD_CUSTOM_QuizCompleted_30d
  • MARTIN_AUD_CUSTOM_RegisteredCalificado_30d
  • MARTIN_AUD_CUSTOM_RegisteredNoCalificado_30d
  • MARTIN_AUD_CUSTOM_WhatsAppReplied_30d
  • MARTIN_AUD_CUSTOM_JoinedGroup_30d
  • MARTIN_AUD_CUSTOM_AttendedWebinar_30d
  • MARTIN_AUD_CUSTOM_DroppedWebinar_30d
  • MARTIN_AUD_CUSTOM_CheckoutClicked_30d
  • MARTIN_AUD_CUSTOM_PurchaseCompleted_180d (compradores — para LAL)
  • MARTIN_AUD_CUSTOM_Refunded_180d (excluir de captación)
  • MARTIN_AUD_CUSTOM_AnyEvent_90d (master pool)
  • Crear audiencias custom basadas en VIDEO views (3s, 50%, 75%, 95%) por cada video orgánico viralizado top. R: Cortex. Done cuando: 4 audiencias × 5 videos top = 20 audiencias adicionales para retargeting fino.
  • Crear audiencias custom basadas en INSTAGRAM engagement (engaged 60d). R: Cortex. Done cuando: audience creada y poblándose.
  • Crear audiencias custom basadas en FACEBOOK PAGE engagement (engaged 60d). R: Cortex. Done cuando: audience creada.
  • Crear audiencias LOOKALIKE 1%, 2%, 3% basadas en Purchase 180d seed (cuando haya >100 compradores). R: Cortex. Done cuando: 3 LAL listas (pueden tardar 24-48h en poblarse).
  • Crear LAL 1%, 2%, 3% basadas en RegisteredCalificado 30d seed (después de primer webinar). R: Cortex. Done cuando: 3 LAL listas semana 2.
  • Crear LAL 1%, 2%, 3% basadas en AttendedWebinar 30d seed. R: Cortex. Done cuando: 3 LAL listas semana 2.
  • Audiencia de exclusión global: MARTIN_AUD_EXCLUDE_PurchaseAndRefund (compradores + refunders) → excluir de captación + retargeting. R: Cortex. Done cuando: audience aplicada como exclusion en TODOS los adsets de captación + retargeting.
  • Naming convention de audiencias documentada: [CLIENT]_AUD_[TYPE]_[SEED]_[WINDOW]. TYPE ∈ {CUSTOM, LAL_1, LAL_2, LAL_3}. R: Cortex. Done cuando: doc + ejemplos.

2.5 Presupuestos por etapa

  • Documentar plan de escalado en docs/META_BUDGET_PLAN.md: R: Jesús + Cortex. Done cuando: doc commiteada con tabla siguiente:
    | Etapa | Semanas | Captación/día | Retargeting/día | Conversiones/sem | Total/sem |
    |-------|---------|---------------|-----------------|------------------|-----------|
    | Piloto suave | sem 0 (5-7 jun) | $100 | — | — | ~$300 |
    | Piloto activo | sem 1-3 (8-28 jun) | $100-150 | $40 | $225 | $1500-$2000 |
    | Crecimiento | sem 4-8 (jul-ago) | $200-300 | $80 | $400 | $2000-$3000 |
    | Escala | mes 3+ | hasta $500 | $150 | $700 | hasta $5000 |
  • Configurar spending limit a nivel cuenta en cada etapa para evitar overspend (Meta puede gastar > daily budget puntualmente). R: Cortex. Done cuando: account-level spending limit configurado para cada etapa.
  • Activar Campaign Spending Limit en cada campaña como cap de seguridad (ej: $10K/mes para Captación). R: Cortex. Done cuando: caps configurados.

2.6 CBO vs ABO — decisión y reglas

  • Documentar en docs/META_CBO_VS_ABO.md la lógica: R: Cortex + Jesús. Done cuando: doc explica:
  • ABO (Adset Budget Optimization) durante piloto (sem 0-3): control fino, podemos pausar adsets que no rinden sin afectar a otros. Necesario cuando aún no hay 50 conv/sem.
  • CBO (Campaign Budget Optimization) desde sem 4: Meta optimiza distribución entre adsets. Solo cuando hay > 50 conv/semana y 4+ adsets activos.
  • Hybrid CBO: en escala (mes 3+), considerar Advantage+ Campaigns como tercera opción para captación.
  • Plan de migración ABO → CBO sin perder learning: pausar adsets perdedores 1 semana antes, dejar solo top 3-4, switch CBO mantiene esos. R: Cortex. Done cuando: playbook documentado.

2.7 Optimization event por etapa del funnel

  • Documentar mapping evento → etapa en docs/META_OPT_EVENT.md: R: Cortex. Done cuando: doc commiteada con:
  • Captación cold → optimizar Lead (post-quiz)
  • Retargeting Q1 (no completaron quiz) → Lead
  • Retargeting Q2 (calificados sin WA) → WhatsAppReplied o custom event
  • Retargeting Q3 (vieron sales page) → InitiateCheckout
  • Retargeting Q4 (clickearon pasarela) → Purchase
  • Conversiones (post-webinar) → Purchase
  • Si un evento tiene < 50 conv/semana, "subir" optimization event al evento más arriba en el funnel (ej: si Purchase < 50/sem en piloto, optimizar por InitiateCheckout). R: Cortex. Done cuando: regla documentada + automatizada en optimizer.

2.8 Frequency caps + refresh creativo

  • Frequency cap por campaña documentado: R: Cortex. Done cuando: settings aplicados:
  • Captación: 2 impr / 7 días por usuario (cold traffic se quema rápido)
  • Retargeting: 5 impr / 7 días (más agresivo, mensaje específico)
  • Conversiones: 7 impr / 4 días (urgencia ventana corta)
  • Política de refresh creativo: cada ad se evalúa después de 14 días o $200 spent (lo que llegue primero). R: Cortex. Done cuando: regla en optimizer Cortex.
  • Si frequency > 4 sin nuevas conversiones en últimos 7 días → ad fatigue → pausar y reemplazar con variante. R: Cortex (optimizer). Done cuando: regla automatizada.
  • Pipeline de refresh: Cortex hook-engineer genera 5 hooks nuevos por ad ganador cada 14 días → re-edición → re-ingesta. R: Cortex. Done cuando: cron de refresh creativo en agents/meta-ads/ activo.

2.9 Reglas auto-pause / auto-scale (optimizer Cortex)

  • Configurar agents/meta-ads/projects/martin/config.json con benchmarks específicos: R: Cortex + Jesús. Done cuando: archivo creado:
  • costo_objetivo_lead: $1.50 USD (target piloto)
  • costo_objetivo_purchase: $30 USD (target taller a $5-15 → CAC objetivo en piloto, mejora con membresía)
  • frequency_max: 4
  • ctr_min: 1.0%
  • cpm_max: $25 USD
  • roas_min_winners: 1.5x (piloto), 2.0x (crecimiento), 3.0x (escala)
  • ventana_evaluacion_horas: 48 (no decidir antes de 48h de un ad nuevo)
  • Activar auto_optimize_funnel() v2 (script ya existe en agents/meta-ads/) — corre cada 6h vía cron Railway. R: Cortex. Done cuando: cron registrado + primera ejecución verde + log a Supabase.
  • Reglas de auto-PAUSE:
  • Ad spent > $50 + 0 conv en 48h → PAUSE
  • Frequency > 6 + sin nueva conv en 7d → PAUSE
  • CTR < 0.5% tras $30 spent → PAUSE
  • CAC actual > 3x del benchmark del proyecto → PAUSE (regla "no tolerar 3x" del feedback patterns)
  • R: Cortex. Done cuando: reglas en auto_optimizer.py + tests pasando.
  • Reglas de auto-SCALE:
  • Adset con CAC < benchmark + ROAS > target + > 14 días maduro → SUBIR budget +25% (winners maduros no se apagan, se escalan con cuidado)
  • Si tras subir budget el CAC sube > 50% en 48h → revertir budget
  • Max +50% de budget por semana por adset (evitar romper learning phase)
  • R: Cortex. Done cuando: reglas activas + log de cada acción a Supabase.
  • Reglas para WINNERS MADUROS (feedback patterns): NO matar ads que vienen funcionando bien si suben costos al escalar; bajar budget primero, esperar 48h, evaluar. R: Cortex. Done cuando: lógica diferenciada para ads > 30 días con > $1000 spent histórico.
  • Solo comparar mismo objetivo (feedback patterns): nunca mezclar campañas de Lead con campañas de Purchase en benchmarks. R: Cortex. Done cuando: optimizer scope-aware por objetivo.
  • Reportes diarios automáticos (10am ART) a grupo WhatsApp interno: spent, leads, CAC, ROAS, ads pausados/scaleados, alertas. R: Cortex. Done cuando: primer reporte enviado y formato validado.

2.10 Piloto suave (5-7 jun)

  • Activar campaña Captación a $100/día desde 5/6 viernes 12hs ART. R: Cortex. Done cuando: campaña live + primer impressions visibles en 30 min.
  • Monitoreo diario primeras 72h: CAC, CTR, frequency, comments, rechazos. R: Cortex + Jesús. Done cuando: 3 reportes diarios en grupo interno.
  • Si rechazos por política de Meta > 2 ads → ajustar copy + resubmit + escalation a Jesús. R: Cortex. Done cuando: protocolo activo.
  • Validar que pixel + CAPI están registrando correctamente (verificar match rate + dedup). R: Eric. Done cuando: Diagnostics verde durante piloto.
  • Activar retargeting el 7/6 (ya con 48h de tráfico cold acumulado en pixel). R: Cortex. Done cuando: campaña Retargeting live.

2.11 QA y go-live 8 jun

  • Pre-flight checklist sábado 6/6: todas las campañas en estado "Active" o "Scheduled", presupuestos correctos, ads aprobados (no en review), audiencias pobladas, pixel verde. R: Cortex + Jesús. Done cuando: 7 checks verdes documentados.
  • Backup de cuenta: si la cuenta principal se banea, tener cuenta secundaria de TooAudience pre-aprobada lista. R: Jesús. Done cuando: 2da cuenta lista o decisión de no tenerla.
  • Plan de comunicación para lunes 8/6: Cortex monitorea cada 1h, Jesús alerta si CAC > 2x benchmark en primeras 4h. R: Jesús + Cortex. Done cuando: plan en docs/GO_LIVE_8JUN_PROTOCOL.md.

3. Variables y posibilidades a anticipar

Escenario Plan B
Meta rechaza ads por nicho seducción Re-framear como "habilidades sociales / desarrollo personal / liderazgo / confianza". Tener 5 versiones de cada copy en draft. Cuenta de respaldo TooAudience lista.
Pixel no llega a 50 conv/semana en piloto → Meta no aprende Optimizar por evento más arriba (Lead en lugar de Purchase) hasta que volumen lo justifique. Combinar audiences (LAL múltiples seeds) para ampliar reach.
CAC en piloto > 3x benchmark Pausar adset perdedor inmediato (regla optimizer). Probar nuevos hooks antes de matar la audiencia. Si todos fallan → revisar landing/oferta, no ads.
Ad fatigue en winners después de 30 días NO matar (winners maduros). Bajar budget 30%. Refresh creativo: 5 hooks nuevos en mismo cuerpo + nuevos cuts. Re-test.
Cuenta de Martín baneada Switch a cuenta secundaria TooAudience inmediato. Crear ticket apelación con Meta. Migrar audiencias custom (export a CSV).
Spending limit cuenta < $100/día Pedir aumento a Meta. Mientras: distribuir budget entre 2 cuentas (cuenta Martín + cuenta sandbox).
Audiencias LAL no se pueblan (pocos seeds) Esperar a tener > 100 conversiones de la seed antes de crear LAL. Mientras: usar interest targeting + broad.
Optimizer Cortex pausa ads que no debería Revisar regla específica que disparó pausa. Whitelist temporal de adset. Iterar reglas con feedback.
Ads aprobados al inicio se rechazan después (review post-impression) Tener 3-4 backups de cada copy listos para reemplazo rápido.
Frequency disparada porque audience es pequeña Ampliar audience (sumar países, edades, intereses). Bajar budget si no se puede ampliar.
Pixel + CAPI desincronizados (eventos solo browser, sin server) Verificar checklist 13 done. Sin CAPI iOS 14+ pierde 70% atribución. Bloquea ads.
Conversiones campaña falla porque no hay audiencia "registrados webinar X" Crear audience programáticamente cada semana via Meta API + cron. Backup: usar audiencia genérica RegisteredCalificado_7d.
Rechazos por keywords automáticos ("seducir", "manipular", "atrapar") Diccionario de palabras prohibidas en agents/redaccion-publicitaria que filtra ANTES de submit.
Costo de Purchase sube en escala (esperado, no romper) Tolerar 50% de subida vs piloto. Bajar budget gradualmente si pasa. Re-evaluar mes 4.
Aggregated Event Measurement: 8 eventos no alcanzan Priorizar Purchase, Lead, IC. Otros eventos solo trackear via CAPI sin attribution windows largos.
Auto-optimizer apaga winner por bug Audit log obligatorio en Supabase. Manual override de Jesús siempre posible. Modo "safe" que solo recomienda en lugar de ejecutar.

4. Multi-tenant: cómo se replica al cliente #2

Esta sección alimenta sop/lanzar-cliente/14_META_NEW_CLIENT.md.

  • Variables a externalizar (en agents/meta-ads/projects/[client_slug]/config.json):
  • ad_account_id — Meta Ad Account del cliente
  • business_id — Business Manager del cliente
  • pixel_id — Pixel del cliente
  • dominio_verificado — dominio del cliente
  • client_slug — para naming convention
  • costo_objetivo_lead, costo_objetivo_purchase — benchmarks específicos por cliente
  • frequency_max, ctr_min, cpm_max, roas_min_winners — guardrails
  • ventana_evaluacion_horas
  • paises_targeting[] — markets del cliente
  • edades_targeting{min, max}
  • intereses_seed[] — para audiencias de interés
  • palabras_prohibidas[] — específicas por nicho (Martín: "seducir, manipular"; cliente fitness: "garantizado, sin esfuerzo"; etc.)
  • framing_alternativo[] — re-framings aceptados por Meta
  • webinar_horario + webinar_dia — para schedule de campaña conversiones
  • precios_taller, precios_membresia — para cálculo ROAS

  • Templates a guardar en sop/lanzar-cliente/templates/meta/:

  • campaigns-3-stage.template.json — esqueleto Captación + Retargeting + Conversiones
  • audiencias-13-eventos.template.json — definiciones de las 13 audiencias custom
  • naming-convention.template.md
  • budget-plan.template.md
  • cbo-vs-abo.template.md
  • opt-event-mapping.template.md
  • optimizer-rules.template.json — reglas auto-pause/auto-scale parametrizables

  • Sustituciones automáticas (clone_client.py extiende):

  • Crear estructura agents/meta-ads/projects/[nuevo_slug]/ con scripts + config
  • Crear las 13 audiencias custom programáticamente via Meta API
  • Crear las 3 campañas (Captación/Retargeting/Conversiones) en draft con el naming convention
  • Generar UTMs de cada ad con prefijo [CLIENT_SLUG]
  • Cargar reglas optimizer en cron Railway específico del cliente

  • Ítems que requieren input humano del cliente nuevo:

  • Decisión de costos objetivo (depende del precio del producto + LTV proyectado)
  • Países a targetear
  • Intereses seed (depende del nicho)
  • Palabras prohibidas según vertical de Meta para ese nicho

5. Recursos y archivos relacionados

  • 04_ANUNCIOS_CAPTACION.md — los 50+ ads que se cargan acá
  • 05_ANUNCIOS_RETARGETING.md — los 16 clips Hammer Them
  • 13_PIXEL_TRACKING.md — pixel + CAPI requeridos
  • 02_LANDINGS_Y_PAGES.md — landings que reciben tráfico
  • 19_GO_LIVE_8_JUNIO.md — protocolo del día D
  • ../02_PLAN_INTERNO_EQUIPO.md — § 5 ads pipeline
  • Optimizer Cortex: agents/meta-ads/ — scripts ya existentes (auto_optimizer.py, metrics.py, actions.py, report.py)
  • Frameworks Cortex:
  • shared/frameworks/funnel_optimization_framework.md
  • feedback_optimizer_intelligence.md
  • feedback_mature_winners.md
  • feedback_intelligence_patterns.md
  • feedback_same_objective_only.md
  • feedback_think_not_rules.md
  • feedback_project_rules_first.md
  • Meta Ads Manager: https://business.facebook.com/adsmanager
  • Meta Marketing API v22.0 docs

6. Notas y aprendizajes (post-mortem)

Llenar después del primer ciclo. Estos aprendizajes son los que se llevan al SOP.

  • (vacío hasta primera ejecución)

CHANGELOG

  • 2026-05-05 — Cortex (agente A) — Creación inicial con base en plan interno § 5 + frameworks Cortex de optimization.