Cómo mapear un funnel de conversión con datos incompletos

Aprende cómo construir un funnel de conversión útil aunque no tengas todos los datos. Guía práctica para perfiles técnicos que trabajan en Growth o Marketing.

Muchos perfiles técnicos se enfrentan al reto de analizar conversiones sin contar con todos los eventos del journey. Ya sea por fallas de tracking, datos dispersos o implementaciones incompletas, construir un funnel completo parece imposible.

Pero no lo es.

En este post aprenderás cómo mapear un funnel de conversión aún cuando los datos no estén perfectos, usando lógica de negocio, inferencia y supuestos bien documentados.

¿Qué es un funnel de conversión?

Un funnel representa las etapas por las que pasa un usuario desde que conoce tu producto hasta que realiza una acción clave:

Etapa del funnel
Ejemplos de acciones
1. Visita / Descubrimiento
El usuario entra en contacto inicial con tu producto, marca o contenido, pero aún no realiza ninguna acción concreta
– Click en un anuncio en redes sociales (ej. Meta, TikTok)
– Visita a una landing page o sitio web
– Visualización de un contenido en Google o YouTube
– Primer mensaje vía WhatsApp, mail o chatbot
2. Registro / Intento
El usuario muestra intención clara de avanzar, pero aún no se ha activado ni confirmado como usuario.
– Llenar un formulario de registro
– Descargar una app
– Iniciar el proceso de onboarding
– Dar clic en “crear cuenta”
– Iniciar el proceso de compra o cotización
3. Confirmación / Activación
El usuario completa el paso inicial clave para empezar a usar el servicio/producto.
– Verificación de correo / teléfono
– Primer login
– Completar su perfil o agregar un método de pago
– Ver el tutorial o guía inicial
– Confirmar un servicio o solicitud
4. Uso / Conversión
El usuario realiza la acción principal de valor para el negocio. Aquí se define la conversión según tu producto.
– Realizar una compra
– Reservar un servicio
– Completar una clase
– Generar su primera transacción real

Paso a paso para mapear un funnel incompleto

1. Identifica los eventos disponibles

Haz un inventario de lo que sí tienes. Ejemplo:
– page_view, signup_start, signup_complete, transaction_made
– Incluye campos clave como: timestamp, user ID, canal

2. Mapea la lógica del journey

Define los pasos ideales, aunque no todos estén registrados.
Ejemplo: si tienes signup_complete, puedes asumir que hubo signup_start.

3. Construye funnels por inferencia

Agrupa eventos por usuario y tiempo para inferir pasos intermedios.

4. Usa cohortes para estimar conversiones

Agrupa por fechas para analizar cuánto tiempo tarda un usuario en convertir y detectar puntos de fuga /caída.

5. Documenta tus supuestos

Ejemplos:
– “Asumimos que quienes completan el registro también vieron el onboarding.”
– “No se cuenta el paso de activación por falta de tracking, se estima en base a X.”

Bonus: Visualiza aunque falte info

Un gráfico simple puede comunicar mucho, incluso si es parcial.

Código ejemplo:

import pandas as pd
import matplotlib.pyplot as plt

# Crear datos dummy con paso previo: clic en anuncio
data = {
    'user_id': [1, 2, 1, 3, 2, 1, 4, 5, 5],
    'event_name': [
        'ad_click', 'ad_click', 'page_view',
        'ad_click', 'page_view', 'signup_complete',
        'transaction_made', 'ad_click', 'page_view'
    ]
}

df = pd.DataFrame(data)

# Mapear eventos a pasos ordenados del funnel
df['step'] = df['event_name'].map({
    'ad_click': '1. Ad Click',
    'page_view': '2. Page View',
    'signup_complete': '3. Signup Complete',
    'transaction_made': '4. Transaction Made'
})

# Orden de los pasos
steps = ['1. Ad Click', '2. Page View', '3. Signup Complete', '4. Transaction Made']

# Calcular usuarios únicos por paso
funnel_counts = df.groupby('step')['user_id'].nunique().reindex(steps)

# Calcular tasas de conversión entre pasos consecutivos
conversion_rates = []
for i in range(len(steps) - 1):
    current = funnel_counts[steps[i]]
    next_ = funnel_counts[steps[i + 1]]
    rate = round(next_ / current, 2) if current > 0 else 0
    conversion_rates.append(rate)

# Preparar etiquetas con conversión
labels = []
for i, step in enumerate(steps):
    count = funnel_counts[step]
    if i == 0:
        labels.append(f"{count} usuarios")
    else:
        rate = conversion_rates[i - 1]
        labels.append(f"{count} usuarios\n({int(rate * 100)}% conv.)")

# Graficar embudo horizontal
plt.figure(figsize=(10, 6))
bars = plt.barh(steps[::-1], funnel_counts.values[::-1], color='skyblue')
plt.xlabel("Usuarios únicos")
plt.title("Funnel de Conversión con Tasas de Conversión")

# Agregar etiquetas a cada barra
for i, (bar, label) in enumerate(zip(bars, labels[::-1])):
    plt.text(bar.get_width() + 0.2, bar.get_y() + bar.get_height()/2,
             label, va='center')

plt.tight_layout()
plt.show()

Glosario contextual – Funnel & Tracking

Término Definición clara Cómo se aplica
Journey Recorrido completo del usuario desde el descubrimiento hasta la conversión o fidelización. Te ayuda a detectar puntos de fuga o fricción en la experiencia del usuario.
Funnel Representación en etapas del avance de un usuario hasta convertirse en cliente. Permite medir tasas de conversión y definir acciones por fase.
Tag Código que captura acciones del usuario (clics, formularios, eventos). Se implementa con herramientas como Google Tag Manager o Mixpanel.
UTM Parámetros añadidos a una URL para rastrear fuente, canal y campaña. Ejemplo: ?utm_source=instagram&utm_campaign=lanzamiento
Tracking Seguimiento del comportamiento del usuario mediante eventos y sesiones. Ayuda a entender qué canal o acción generó la conversión.
Mixpanel / GA4 Herramientas de analítica para visualizar funnels y comportamiento de usuarios. GA4 ofrece visión general; Mixpanel es más profundo en producto y cohorts.