Eventos de embudo

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Eventos de embudo te permiten rastrear el progreso de tus usuarios a través de etapas clave de tu juego. Esto incluye:

  • Incorporación — ¿Dónde abandonan los usuarios cuando comienzan a jugar tu juego?
  • Progresión — ¿Dónde dejan de avanzar los usuarios en tu juego?
  • Tienda — ¿Dónde abandonan los usuarios las compras?

Una vez que tu juego comienza a rastrear eventos de embudo, desbloqueas la página de Embudos en el panel de análisis del Creator Hub. Puedes agregar pestañas al panel para hasta diez embudos.

Rastrear eventos de embudo

Para rastrear eventos de embudo, primero identifica los embudos más importantes en tu juego y divídelos en pasos. Dado que el objetivo es comprender el comportamiento del jugador, estos pasos generalmente corresponden a alguna acción o logro.

En un RPG, podrías tener un paso para unirte al juego, uno para elegir una clase, otro para salir de la sala inicial, y así sucesivamente. Típicamente llamarías a LogFunnelStepEvent() o LogOnboardingFunnelStepEvent() después de que un jugador complete un paso, pero lo más importante es ser consistente sobre cuándo llamas a estos métodos y usar nombres fáciles de interpretar.

Tu flujo de incorporación es un excelente lugar para comenzar a rastrear eventos de embudo, ya que es probable que aquí pierdas a la mayoría de tus usuarios.

Rastrear embudos de una sola vez

Un embudo de una sola vez monitorea eventos de conversión que ocurren solo una vez por usuario.

Un ejemplo común es un embudo de incorporación, que es crítico para entender cómo mejorar la retención de nuevos usuarios y el tiempo de sesión de tu juego. El siguiente ejemplo es un embudo de incorporación para Plant, un juego de tycoon donde los nuevos usuarios entran a una granja, plantan semillas, riegan plantas, y más en orden secuencial:

Rastreando Pasos de Incorporación en Plant

local AnalyticsService = game:GetService("AnalyticsService")
-- Registra el primer paso del FTUE
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Número de paso
"En la Granja" -- Nombre del paso
)
-- Registra el segundo paso
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- Número de paso
"Plantar Semilla" -- Nombre del paso
)

Rastrear embudos recurrentes

Un embudo recurrente monitorea eventos de conversión que ocurren múltiples veces por usuario.

Un ejemplo común es un embudo de tienda, que puede ayudarte a entender cómo mejorar la conversión de pagadores de tu juego, ARPPU y ingresos. El siguiente ejemplo es un embudo de tienda donde los usuarios abren la tienda, ven un artículo, añaden un artículo al carrito, y más.

Usa funnelSessionId para distinguir entre diferentes sesiones del mismo usuario en un embudo recurrente, como abrir la tienda múltiples veces en una sola sesión.

Rastreando Pasos de la Tienda

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
local funnelSessionId = HttpService:GenerateGUID()
-- Registra cuando el usuario abre la tienda
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nombre del embudo usado para agrupar pasos
funnelSessionId, -- ID de sesión del embudo para esta sesión única de pago
1, -- Número de paso
"Abrir Tienda" -- Nombre del paso
)
-- Registra cuando el usuario ve un artículo
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nombre del embudo usado para agrupar pasos
funnelSessionId, -- ID de sesión del embudo para esta sesión única de pago
2, -- Número de paso
"Visto Artículo" -- Nombre del paso
)
-- Registra cuando el usuario añade al carrito
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nombre del embudo usado para agrupar pasos
funnelSessionId, -- ID de sesión del embudo para esta sesión única de pago
3, -- Número de paso
"Añadido al Carrito" -- Nombre del paso
)

Implementar funnelSessionId

Al implementar embudos, un funnelSessionId puede ayudarte a rastrear tus eventos, pero puede no ser necesario en cada instancia. Usa las siguientes directrices:

  • Embudos de una sola vez - No necesitas usar funnelSessionId para embudos de una sola vez porque ocurren solo una vez por usuario.
  • Embudos de tienda - Usa funnelSessionId para distinguir entre diferentes sesiones del mismo usuario en un embudo recurrente, como abrir la tienda múltiples veces en una sola sesión en el ejemplo anterior. En casos como este, donde el jugador puede abrir la tienda múltiples veces en una sola sesión, se recomienda usar un GUID como funnelSessionId.
  • Mejoras de artículos - Usa funnelSessionId para distinguir entre diferentes caminos de mejora de artículos, generalmente durante un período más largo que una sola sesión de juego. En lugar de usar un GUID como en el caso del embudo de la tienda, a menudo puedes construir una clave única basada en el artículo que se está mejorando, por ejemplo: <playerId>-<itemId>.

Paso inicial

Los embudos comienzan cuando se registra el primer paso. Si deseas iniciar un embudo inmediatamente al unirse el jugador, registra el primer paso en el evento PlayerAdded.

Registrando el primer paso en el evento PlayerAdded

local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Número de paso
"Jugador Unido" -- Nombre del paso
)
end)

Pasos repetidos

Si un usuario repite un paso en un embudo, el embudo solo considera la primera instancia del paso. Por ejemplo, si un usuario registra el paso 2 de un embudo dos veces, el embudo solo cuenta la primera instancia del paso 2. No tienes que tomar ninguna acción especial para manejar embudos de una sola vez para jugadores que se desconectan y vuelven a conectarse, y funnelSessionId maneja los embudos recurrentes.

Los pasos repetidos son ignorados por el embudo, pero aún se registran y contribuyen hacia el límite de tasa global.

Pasos omitidos

Si por alguna razón omites un paso en un embudo, los pasos anteriores se completan automáticamente. Por ejemplo, si tienes un embudo con pasos 1, 2 y 3 y registras el paso 3 sin registrar los pasos 1 o 2, el embudo considera que los pasos 1 y 2 están completados.

Usar filtros de embudo

Roblox proporciona filtros para ayudarte a analizar tus datos de embudo. Estos incluyen datos de jugador y datos de dispositivo, y también puedes enviar datos personalizados. En algunos casos, el estado de un jugador puede cambiar durante el embudo, como cuando el jugador cambia de dispositivo de móvil a de escritorio.

Para evitar contar doble los embudos, los filtros solo se aplican al primer paso del embudo. Esto significa que si un jugador cambia de dispositivo durante el embudo, el embudo solo se atribuirá a su dispositivo en el momento en que ingresan al embudo.

De manera similar, los embudos se muestran por cohorte, lo que significa que si un jugador entra al embudo el 19/6, el embudo se atribuirá a la cohorte del 19/6 incluso si completa el embudo el 20/6.

Modificar embudos

Después de hacer una actualización a tus pasos de embudo, es importante establecer el rango de fechas correcto para ver el embudo más reciente. Si la fecha actual es 21/6 y actualizaste el paso 2 de tu embudo de incorporación el 14/6, deberías establecer el rango de fechas en 14/6 - 21/6 para ver el embudo más reciente.

Si seleccionas un rango de fechas que incluye una actualización de paso de embudo, se mostrará una advertencia en el paso pertinente:

Se muestra una advertencia en el panel de embudos indicando un cambio de nombre dentro del rango de fechas seleccionado.

Proteger tus embudos de explotadores

Para mantener tus datos limpios, es importante añadir algún nivel de validación de datos en tu código del servidor para evitar que los explotadores envíen datos inválidos a tu servicio de análisis.

Por ejemplo, si tienes un embudo de incorporación con tres pasos, puedes usar un RemoteEvent para que el cliente notifique al servidor cuando el jugador ha completado cada paso y añadir una verificación en el servidor para asegurarte de que el número de paso es válido antes de registrar el evento:

Código de evento del lado del cliente

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local onboardingEvent = ReplicatedStorage:WaitForChild("OnboardingEvent")
local function fireOnboardingEvent(step: number)
onboardingEvent:FireServer({ step = step })
end
fireOnboardingEvent(1)
fireOnboardingEvent(2)
fireOnboardingEvent(10) -- paso inválido
Código de evento del lado del servidor

local AnalyticsService = game:GetService("AnalyticsService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local onboardingEvent = ReplicatedStorage:WaitForChild("OnboardingEvent")
local maxStep = 3
local function onPlayerEventFired(player: Player, args: { step: number })
local step = args.step
if(step > maxStep) then
warn(`Paso de tutorial inválido {step} recibido del cliente.`)
return
end
print(`{player.Name} completó el paso: {step}`)
AnalyticsService:LogOnboardingFunnelStepEvent(player, step)
end
onboardingEvent.OnServerEvent:Connect(onPlayerEventFired)

Usar campos personalizados

Los eventos de embudo también permiten desglosar en campos personalizados para facilitar la comparación entre segmentos. Por ejemplo, puedes rastrear qué coche inicial ofrece el mejor progreso a los jugadores, o adjuntar diferentes mapas para ver si un cierto mapa tiene un mejor bucle de juego que otros.

Un menú desplegable que indica los tres campos personalizados que puedes comparar, junto con desglose estándar como edad, género, sistema operativo y más.

Para más información, consulta campos personalizados.

Usar embudos para hacer crecer tu juego

Uno de los embudos más importantes a rastrear es la incorporación, porque muchos juegos luchan con la retención y el compromiso de nuevos usuarios.

En el embudo de incorporación para Plant a continuación, la mayor caída es en el paso 2 ("Plantar Semilla").

Gráfico de embudos del juego Plant que muestra una caída del 70% entre En la Granja, paso 1, y Plantar Semilla, paso 2.

Basado en estos datos, podrías:

  • Agregar indicadores contextuales para dirigir mejor a los usuarios a plantar semillas cuando estén comenzando.
  • Diseñar una nueva experiencia para el usuario que requiera que los usuarios planten semillas y hagan crecer una planta exitosa antes de explorar el resto del juego. Puedes mejorar este evento creando elementos de retroalimentación positiva o utilizando otras técnicas de diseño de juegos.
Vista en juego del juego Plant mostrando mensajes para plantar semillas sobre las macetas.
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.