(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Cómo calcular la tasa de conversión por canal en Real-Time Analytics

João Barros 01 de November de 2026 4 min de lectura

Calcular la tasa de conversión por canal en Real-Time Analytics permite ver, en tiempo real, qué canales (p. ej.: email, ads, orgánico) convierten mejor y actuar rápidamente. Este tutorial explica el porqué y muestra cómo montar un pipeline sencillo de ingestión, agregación por ventana y cálculo de la tasa de conversión por canal.

Pre-requisitos

  • Cuenta en un servicio de streaming orientado a eventos (p. ej.: Apache Kafka, Event Hubs)
  • Sistema de procesamiento en tiempo real (p. ej.: Azure Stream Analytics, Apache Flink o Spark Structured Streaming)
  • Almacenamiento para resultados (p. ej.: Azure SQL, Cosmos DB, o un tópico Kafka de salida)
  • Datos de evento con campos: event_time, user_id, channel, event_type (p. ej.: page_view, purchase)

Paso 1: Entender la métrica y los eventos necesarios

Tasa de conversión por canal = (nº de usuarios con evento de conversión en un canal) / (nº de usuarios expuestos o visitantes en un canal) en una ventana temporal. Necesitamos distinguir eventos de exposición/visita (p. ej.: page_view) de eventos de conversión (p. ej.: purchase). Usar user_id para evitar duplicados por usuario.

Paso 2: Modelar la ventana temporal y la granularidad

Decida ventana tumbling o sliding (p. ej.: tumbling de 1 minuto para dashboards en tiempo real). La granularidad define la frecuencia de actualización y el coste. Para empezar, use ventana tumbling de 1 minuto por canal.

Paso 3: Ejemplo con Azure Stream Analytics (consulta SQL-like)

Ejemplo práctico usando Azure Stream Analytics para contar usuarios únicos por canal y calcular tasa de conversión en una ventana tumbling de 1 minuto. La fuente es un Event Hub con eventos JSON.

-- Contagem de visitantes únicos por canal (page_view)
SELECT
  System.Timestamp() AS window_end,
  channel,
  COUNT(DISTINCT user_id) AS visitors
INTO
  output_visitors
FROM
  input_events
WHERE
  event_type = 'page_view'
GROUP BY
  TumblingWindow(minute, 1), channel;

-- Contagem de conversões únicas por canal (purchase)
SELECT
  System.Timestamp() AS window_end,
  channel,
  COUNT(DISTINCT user_id) AS conversions
INTO
  output_conversions
FROM
  input_events
WHERE
  event_type = 'purchase'
GROUP BY
  TumblingWindow(minute, 1), channel;

-- Juntar resultados e calcular taxa de conversão (pode ser feito numa query separada ou em downstream)

Paso 4: Unir resultados y calcular tasa de conversión

Si el motor no soporta joins de outputs, guarde ambas salidas en un almacenamiento y después haga una consulta que junte por window_end y channel. Ejemplo SQL para un destino como Azure SQL o un job que combine los outputs:

SELECT
  v.window_end,
  v.channel,
  v.visitors,
  c.conversions,
  CASE WHEN v.visitors = 0 THEN 0 ELSE CAST(c.conversions AS FLOAT)/v.visitors END AS conversion_rate
FROM
  visitors_table v
LEFT JOIN
  conversions_table c
ON
  v.window_end = c.window_end AND v.channel = c.channel
ORDER BY v.window_end DESC;

Paso 5: Tratar duplicados y sesiones cortas (buenas prácticas)

Use COUNT(DISTINCT user_id) para evitar duplicados dentro de la ventana. Para evitar recuentos inflados por bots, filtre user_agents sospechosos o cree heurísticas (p. ej.: eventos con duración muy corta). Si la plataforma lo permite, aplique deduplicación por event_id antes de la agregación.

Paso 6: Visualizar en tiempo real y configurar alertas

Envíe la tabla resultante a un destino soportado por su dashboard (p. ej.: Power BI DirectQuery, o Cosmos DB + Azure Synapse). Configure alertas cuando conversion_rate caiga por debajo de un umbral o cuando visitors/conversions sufran cambios abruptos.

Verificar el resultado

Confirme que para cada ventana de 1 minuto existe una fila por channel con visitors, conversions y conversion_rate entre 0 y 1. Pruebe con eventos de ejemplo: enviar 10 page_view y 2 purchase en el mismo channel deberá mostrar visitors≥10 (dependiendo de user_id) y conversion_rate correspondiente. Revise logs del Stream Analytics para errores comunes (schema mismatch, timestamps fuera de orden).

Conclusión

Con una ventana tumbling y conteos distinct por user_id es sencillo obtener la tasa de conversión por channel en Real-Time Analytics. Próximos pasos: experimentar con ventanas deslizantes, normalizar por sesiones e integrar filtros anti-fraude. Consejo: empiece con ventanas mayores para validar la lógica antes de reducir a baja latencia.