query("SELECT COUNT(*) c FROM landing_pages")->fetch_assoc()['c']; $tot_variants = (int)$conn->query("SELECT COUNT(*) c FROM landing_variants")->fetch_assoc()['c']; $tot_blocks = (int)$conn->query("SELECT COUNT(*) c FROM landing_blocks")->fetch_assoc()['c']; $tot_leads_30d = (int)$conn->query("SELECT COUNT(*) c FROM landing_forms WHERE created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)")->fetch_assoc()['c']; // ---- Top landings por CR últimos 30 días (impresiones/conversiones) ---- $top = []; $st = $conn->prepare(" SELECT lp.id AS landing_id, lp.titulo, SUM(lvs.event_type='impression') AS impresiones, SUM(lvs.event_type='conversion') AS conversiones, ROUND(SUM(lvs.event_type='conversion')/NULLIF(SUM(lvs.event_type='impression'),0)*100,2) AS cr FROM landing_pages lp LEFT JOIN landing_variant_stats lvs ON lvs.landing_id = lp.id AND lvs.created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY lp.id, lp.titulo ORDER BY cr DESC IS NULL, cr DESC, impresiones DESC LIMIT 10 "); $st->execute(); $top_rs = $st->get_result(); while($r = $top_rs->fetch_assoc()){ $top[] = $r; } // ---- Listado rápido de landings con accesos (últimos 8) ---- $list = $conn->query(" SELECT id, titulo, slug, activo, DATE_FORMAT(fecha_creacion,'%Y-%m-%d %H:%i') AS fc FROM landing_pages ORDER BY id DESC LIMIT 8 "); ?>
Landings

🧭
Variantes A/B

🧪
Bloques

🧱
Leads (30d)

📈
Top CR por Landing (30 días)
Ver todas
Landing Impresiones Conversiones CR % Acciones
Stats Variantes Builder CRM Leads
Sin datos
Accesos rápidos
Nueva landing
num_rows): while($r=$list->fetch_assoc()): ?>
Landing Slug Creada Estado Acciones
Activo' : 'Inactivo' ?> Variantes Schedule Bloques Builder Stats CRM Leads Ver
Aún no hay landings