Saltar al contenido
Telemetry
Análisis de producto receta SQL

Compare la conversión de experimentos y el aumento de ingresos

Mida la conversión, los ingresos por participante y el incremento relativo por variante del experimento sin contar dos veces los eventos repetidos.

Avanzadoexperiment_eventsRevisado 2026-07-28Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Revisamos la sintaxis SQL, los campos necesarios, los resultados de ejemplo y las limitaciones de la consulta. Quién revisa esta página

Pregunta respondida

¿El experimento mejoró la conversión y los ingresos por participante asignado?

El resultado de un experimento necesita una tarea por participante, una ventana de resultado fija y tanto conversión como valor. Este patrón colapsa eventos repetidos en un registro a nivel de participante antes de comparar cada variante con el control.

Esquema del evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampHora del evento de asignación o resultado en UTC.
experiment_nameUtf8Identificador de experimento estable.
variantUtf8control o un tratamiento designado.
user_idUtf8Identificador de participante estable.
event_nameUtf8experiment_assigned o purchase_completed.
revenue_usdFloat64Ingresos normalizados en una compra completada.
DataFusionSQL

Copiar la consulta

sql
WITH participant_outcomes AS (
  SELECT
    experiment_name,
    variant,
    user_id,
    MAX(CASE WHEN event_name = 'experiment_assigned' THEN 1 ELSE 0 END)
      AS was_assigned,
    MAX(CASE WHEN event_name = 'purchase_completed' THEN 1 ELSE 0 END)
      AS converted,
    SUM(CASE
      WHEN event_name = 'purchase_completed' THEN revenue_usd
      ELSE 0.0
    END) AS revenue_usd
  FROM experiment_events
  WHERE timestamp_utc >= now() - INTERVAL '60 days'
  GROUP BY experiment_name, variant, user_id
),
variant_summary AS (
  SELECT
    experiment_name,
    variant,
    COUNT(*) AS participants,
    SUM(converted) AS converted_participants,
    100.0 * SUM(converted) / NULLIF(COUNT(*), 0) AS conversion_rate_pct,
    SUM(revenue_usd) / NULLIF(COUNT(*), 0) AS revenue_per_participant_usd
  FROM participant_outcomes
  WHERE was_assigned = 1
  GROUP BY experiment_name, variant
),
control AS (
  SELECT
    experiment_name,
    conversion_rate_pct AS control_conversion_rate_pct
  FROM variant_summary
  WHERE variant = 'control'
)
SELECT
  summary.experiment_name,
  summary.variant,
  summary.participants,
  summary.converted_participants,
  summary.conversion_rate_pct,
  summary.revenue_per_participant_usd,
  100.0 * (
    summary.conversion_rate_pct - control.control_conversion_rate_pct
  ) / NULLIF(control.control_conversion_rate_pct, 0) AS relative_lift_pct
FROM variant_summary AS summary
JOIN control
  ON control.experiment_name = summary.experiment_name
ORDER BY summary.experiment_name, summary.variant;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

Aumento de la conversión por variante del experimento

El tratamiento tiene una mayor conversión observada e ingresos por participante; La incertidumbre estadística aún necesita revisión antes de su implementación.

experiment_namevariantparticipantsconverted_participantsconversion_rate_pctrevenue_per_participant_usdrelative_lift_pct
annual_plan_checkoutcontrol214027812,9918,420
annual_plan_checkoutproof_near_cta218732614,9121,7614,78

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Conversion lift by experiment variant: gráfico estático de valores sintéticos de conversion_rate_pct del resultado del ejemplo Compare experiment conversion and revenue lift
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descarga los datos de ejemplo

El paquete JSON incluye el contrato de evento escrito, illustrative filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1El primer CTE crea un registro de resultados por participante asignado, evitando que compras repetidas o eventos de seguimiento inflen el denominador.
  2. 2Los resúmenes de variantes preservan el volumen de participantes, la conversión y los ingresos, por lo que una tasa de conversión más alta no se evalúa sin valor comercial.
  3. 3La combinación final compara cada variante con la tasa de control e informa un aumento relativo en lugar de un punto porcentual.

Casos límite que debes comprobar

  • Excluya a los participantes expuestos a múltiples variantes o asígnelos de acuerdo con una regla de intención de tratar documentada.
  • Espere a que cada participante complete el periodo de observación antes de contarlo como no convertido.
  • Calcule intervalos de confianza o una prueba estadística previamente acordada antes de declarar un ganador.

Panel recomendado

  • Barras: conversion_rate_pct por variante
  • Tabla: participantes, ingresos por participante y aumento relativo
  • Tendencia: conversión de cohortes por semana de asignación, una vez cerrado cada periodo de observación

Guía de alerta

No mencione la variación normal del experimento; alerta solo cuando se rompe el equilibrio de la asignación, la entrega de eventos o una métrica de barrera.

Leer configuración de alerta

Configura los eventos que necesita esta consulta

Instrumentación y guías relacionadas.

Continuar el análisis

Ejecútalo con tus eventos

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API