14 — Meta Optimizaciones
Índice de la página
- 01Cliente: Martín Rieznik / LevantArte
- Área: Performance Marketing / Meta Ads / Optimization
- 020. Definición de "done" para esta checklist
- 031. Pre-requisitos
- 042. Tareas
- 2.1 Setup de cuenta + verificación
- 2.2 Naming convention de campañas
- 2.3 Estructura de campañas — 3 campañas iniciales
- 2.4 Audiencias custom y lookalike
- 2.5 Presupuestos por etapa
- 2.6 CBO vs ABO — decisión y reglas
- 2.7 Optimization event por etapa del funnel
- 2.8 Frequency caps + refresh creativo
- 2.9 Reglas auto-pause / auto-scale (optimizer Cortex)
- 2.10 Piloto suave (5-7 jun)
- 2.11 QA y go-live 8 jun
- 053. Variables y posibilidades a anticipar
- 064. Multi-tenant: cómo se replica al cliente #2
- 075. Recursos y archivos relacionados
- 086. Notas y aprendizajes (post-mortem)
- 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.mdy 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.comen Meta Business Manager (DNS TXT record). R: Eric. Done cuando: Business Settings > Brand Safety > Domains muestradeacademia.comcomo 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-06con objetivoLeads(noEngagement). 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-publicitariaaudit). 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-06con objetivoLeads(mismo evento). R: Cortex. Done cuando: campaña en draft. - Optimization event:
LeadoInitiateCheckout(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-06con objetivoSales. 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_30dMARTIN_AUD_CUSTOM_QuizCompleted_30dMARTIN_AUD_CUSTOM_RegisteredCalificado_30dMARTIN_AUD_CUSTOM_RegisteredNoCalificado_30dMARTIN_AUD_CUSTOM_WhatsAppReplied_30dMARTIN_AUD_CUSTOM_JoinedGroup_30dMARTIN_AUD_CUSTOM_AttendedWebinar_30dMARTIN_AUD_CUSTOM_DroppedWebinar_30dMARTIN_AUD_CUSTOM_CheckoutClicked_30dMARTIN_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 180dseed (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 30dseed (después de primer webinar). R: Cortex. Done cuando: 3 LAL listas semana 2. - Crear LAL 1%, 2%, 3% basadas en
AttendedWebinar 30dseed. 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.mdla 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) →
WhatsAppRepliedo 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-engineergenera 5 hooks nuevos por ad ganador cada 14 días → re-edición → re-ingesta. R: Cortex. Done cuando: cron de refresh creativo enagents/meta-ads/activo.
2.9 Reglas auto-pause / auto-scale (optimizer Cortex)
- Configurar
agents/meta-ads/projects/martin/config.jsoncon 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: 4ctr_min: 1.0%cpm_max: $25 USDroas_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 enagents/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 clientebusiness_id— Business Manager del clientepixel_id— Pixel del clientedominio_verificado— dominio del clienteclient_slug— para naming conventioncosto_objetivo_lead,costo_objetivo_purchase— benchmarks específicos por clientefrequency_max,ctr_min,cpm_max,roas_min_winners— guardrailsventana_evaluacion_horaspaises_targeting[]— markets del clienteedades_targeting—{min, max}intereses_seed[]— para audiencias de interéspalabras_prohibidas[]— específicas por nicho (Martín: "seducir, manipular"; cliente fitness: "garantizado, sin esfuerzo"; etc.)framing_alternativo[]— re-framings aceptados por Metawebinar_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 + Conversionesaudiencias-13-eventos.template.json— definiciones de las 13 audiencias customnaming-convention.template.mdbudget-plan.template.mdcbo-vs-abo.template.mdopt-event-mapping.template.md-
optimizer-rules.template.json— reglas auto-pause/auto-scale parametrizables -
Sustituciones automáticas (
clone_client.pyextiende): - 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 Them13_PIXEL_TRACKING.md— pixel + CAPI requeridos02_LANDINGS_Y_PAGES.md— landings que reciben tráfico19_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.mdfeedback_optimizer_intelligence.mdfeedback_mature_winners.mdfeedback_intelligence_patterns.mdfeedback_same_objective_only.mdfeedback_think_not_rules.mdfeedback_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.