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 tu usuario a través de etapas clave de tu experiencia. Esto incluye:

  • Inducción - ¿A dónde van los usuarios cuando comienzan con tu experiencia?
  • Progresión - ¿Dónde se detienen los usuarios de avanzar a través de tu experiencia?
  • Tienda - ¿A dónde abandonan las compras los usuarios?

Una vez que tu experiencia empiece a rastrear eventos de embudo, desbloquearás la página de embudo del tablero de análisis en el Hub de creadores.Puedes agregar pestañas al tablero de análisis para hasta diez embudos.

Rastrear eventos de embudo

Para rastrear eventos de embudo, primero identifica los embudos más importantes en tu experiencia y segmentarlos en pasos.Su flujo de incorporación es un gran lugar para iniciar, ya que es donde es probable que pierda la mayoría de sus usuarios.

Rastrear embudos únicos

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

Un ejemplo común es un embudo de capacitación que es crítico para comprender cómo mejorar la retención de usuarios nuevos y el tiempo de sesión de tu experiencia.El siguiente ejemplo es un embudo de onboarding para Planta, una experiencia tycoon en la que los nuevos usuarios ingresan a una granja, semilla de planta, agua de planta y más en orden secuencial:

Seguimiento de pasos de capacitación en la planta

local AnalyticsService = game:GetService("AnalyticsService")
-- Registre el primer paso del FTUE
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Número de paso
"In Farm" -- Nombre del paso
)
-- Registra el segundo paso
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- Número de paso
"Plant Seed" -- Nombre del paso
)

Rastrear embudos recurrentes

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

Un ejemplo común es un embudo de tienda que es crítico para comprender cómo mejorar la conversión de pagador, Promedio de ingresos por usuario de pagoy los ingresos de tu experiencia.El siguiente ejemplo es un embudo de tienda donde los usuarios abren la tienda, ven el objeto, agregan el 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 varias veces en una sola sesión.

Rastrear pasos de la tienda

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
funnelSessionId = HttpService:GenerateGUID()
-- Registrar cuando el usuario abre la tienda
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nombre del embudo utilizado para agrupar pasos juntos
funnelSessionId, -- ID de sesión de embudo para esta sesión de pago única
1, -- Número de paso
"Opened Store" -- Nombre del paso
)
-- Registrar cuando el usuario ve un objeto
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nombre del embudo utilizado para agrupar pasos juntos
funnelSessionId, -- ID de sesión de embudo para esta sesión de pago única
2, -- Número de paso
"Viewed Item" -- Nombre del paso
)
-- Registrar cuando el usuario ve añade al carrito
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nombre del embudo utilizado para agrupar pasos juntos
funnelSessionId, -- ID de sesión de embudo para esta sesión de pago única
3, -- Número de paso
"Added to Cart" -- Nombre del paso
)

Implementar sesión de embudoId

Al implementar embudos, un funnelSessionId puede ayudarlo a rastrear sus eventos, pero puede que no sea requerido en cada instancia. Use las siguientes directrices:

  • Embudos de una sola vez - No necesitas usar funnelSessionId para embudos de una sola vez porque solo ocurren una vez por usuario.
  • Almacenar embudos - Use funnelSessionId para distinguir entre diferentes sesiones del mismo usuario en un embudo recurrente, como abrir la tienda varias veces en una sola sesión en el ejemplo anterior.En casos como este, donde el jugador puede abrir la tienda varias veces en una sola sesión, se recomienda usar un GUID como el funnelSessionId.
  • Mejoras de artículos - Usa funnelSessionId para distinguir entre diferentes rutas de actualización de artículos, generalmente durante un período de tiempo 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 crear una clave única basada en el artículo que se está actualizando, por ejemplo: <playerId>-<itemId> .

Paso inicial

Los embudos comienzan cuando se registra el primer paso.Si quieres comenzar un embudo inmediatamente al unirse al jugador, tendrás que registrar el primer paso en el evento PlayerAdded.

Registrar 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
"Player Joined" -- 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.

Pasos omitidos

Si por alguna razón te saltas un paso en el embudo, los pasos anteriores se completan automáticamente.

Por ejemplo, si tienes un embudo con pasos 1, 2 y 3.Si registra el paso 3 sin registrar los pasos 1 o 2, el embudo considerará los pasos 1 y 2 como completados.

Usa filtros de embudo

Roblox proporciona filtros para ayudarle a analizar sus datos de embudo.Estos incluyen datos del jugador, datos del 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 equipo de escritorio.

Para evitar contar dos veces los embudos, los filtros siempre se aplican solo 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 cuando entren al embudo.

Del mismo modo, los embudos se muestran por cohorte, lo que significa que si un jugador ingresa al embudo el 6/19, el embudo se atribuirá a la cohorte 6/19 incluso si completa el embudo el 6/20.

Modificar embudos

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

Si selecciona un rango de fechas que incluya una actualización de paso de embudo, se muestra una advertencia en el paso relevante:

A warning displays on the funnel dashboard indicating a name change within the selected date range.

Protege tus embudos de los explotadores

Para mantener sus datos limpios, es importante agregar algún nivel de validación de datos en el código de su servidor para evitar que los explotadores envíen datos inválidos a su servicio de análisis.

Por ejemplo, si tienes un embudo de onboarding con 3 pasos, puedes usar un RemoteEvent para que el cliente notifique al servidor cuando el jugador haya completado cada paso y agregar una verificación del servidor para asegurarte de que el número de paso sea válido antes de registrar el evento:

códigode 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) -- invalid step
códigode 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(`Invalid tutorial step {step} received from client.`)
return
end
print(`{player.Name} completed step: {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 apoyar una comparación más fácil entre segmentos.Por ejemplo, puedes rastrear qué coche de inicio da a los jugadores la mejor progresión o adjuntar diferentes mapas para ver si un cierto mapa tiene un mejor ciclo de juego que otros.

A dropdown indicating the three custom fields you can compare across, along with standard breakdowns like age, gender, operating system and more.

Para obtener más información, vea campos personalizados.

Usa embudos para crecer tu experiencia

Uno de los embudos más importantes para rastrear es el de capacitación porque muchas experiencias luchan con la retención y el compromiso de los usuarios nuevos.

En el embudo de onboarding para Planta a continuación, la mayor caída es el paso 2 ("Semilla de Planta").

Funnels chart for Plant experience showing a 70% drop-off between In Farm, step 1, and Plant Seed, step 2.

Basado en estos datos, podrías:

  • Añade indicadores contextuales para dirigir mejor a los usuarios a plantar semillas cuando comiencen.
  • Diseña una nueva experiencia de usuario que requiere que los usuarios planten semillas y cultiven una planta exitosa antes de explorar el resto de la experiencia.Puedes mejorar este evento creando elementos de retroalimentación positiva o otras técnicas de diseño de juegos.
In-experience view of Plant experience showing prompts to plant seeds above the flowerpots.