Eventos de Funnel

*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 funnel te permite rastrear el progreso de tu usuario a través de las etapas clave de tu experiencia. Esto incluye:

  • Onboarding - ¿Dónde se unen los usuarios cuando comienzan con tu experiencia?
  • Progresión - ¿Dónde se detienen los usuarios para avanzar a través de tu experiencia?
  • Tienda - ¿Dónde abandonan las personas las compras?

Una vez que comience a rastrear los eventos de Funnel, desbloqueará la página Funnel del panel de análisis en el Centro de Creatores. Puede agregar pestañas al panel de análisis para hasta 10 funeles.

Eventos de seguimiento de funnel

Para rastrear los eventos de funnel, primero identifica los funnel más importantes en tu experiencia y segmenta en pasos. Tu flujo de onboarding es un gran lugar para iniciar, ya que aquí es donde estás perdiendo la mayoría de tus usuarios.

Rastreo de canales de una vez

Un evento de conversión de un solo uso monitorea los eventos de conversión que solo ocurren una vez por usuario.

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

Rastreo de los Pasos de Onboarding en la Planta

local AnalyticsService = game:GetService("AnalyticsService")
-- Registra el primer paso de la 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
)

Rastreo de funeles recurrentes

Un evento de conversión de funnel recurrente que ocurre varias veces por usuario.

Un ejemplo común es un funnel de tienda que es crítico para entender cómo mejorar la experienciade pago, Promedio de ingresos por usuario de pagoy las ventas. El siguiente ejemplo es un funnel 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 funnel recurrente, como abrir la tienda varias veces en una sola sesión.

Rastreo de pasos de la tienda

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

implementando funnelSessionId

Al implementar funeles, un funnelSessionId puede ayudarlo a rastrear sus eventos, pero puede no ser requerido en cada instancia. Usa las siguientes pautas:

  • Funciones de un solo uso - No es necesario utilizar funnelSessionId para funciones de un solo uso porque solo ocurren una vez por usuario.
  • Almacenar Funnels - Usa funnelSessionId para distinguir entre diferentes sesiones del mismo usuario en un funnel recurrente, como abrir la tienda varias veces en una sola sesión en el ejemplo anterior . En casos como estos, donde el jugador puede abrir la tienda varias veces en una sola sesión, se recomienda usar un GUID como el
  • Mejoras de artículos - Usa funnelSessionId para distinguir entre diferentes rutas de mejora de artículos, generalmente sobre un período de tiempo más largo que una sola sesión de juego. En lugar de usar una GUID como en el caso del funnel de la tienda, a menudo puedes construir una clave única en función del artículo que se está actualizando, por ejemplo: <playerId>-<itemId></

Paso inicial

Las ventajas comienzan cuando se registra el primer paso. Si quieres iniciar una ventaja inmediatamente cuando se unan los jugadores, necesitarás registrar el primer paso en el evento PlayerAdded .

Registro del 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 funnel, el funnel solo considera la primera instancia del paso. Por ejemplo, si un usuario registra el paso 2 de un funnel dos veces, el funnel solo considera la primera instancia del paso.

Saltando Pasos

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

Por ejemplo, si tienes un funnel con pasos 1, 2 y 3. Si registras el paso 3 sin registros los pasos 1 y 2, el funnel considerará los pasos 1 y 2 como completados.

Usando filtros de funnel

Roblox ofrece filtros para ayudarlo a analizar sus datos de funnel. Estos incluyen datos del jugador, datos del dispositivo y puede enviar datos personalizados también. En algunos casos, el estado de un jugador puede cambiar durante el funnel, como cuando el jugador cambia de dispositivo a equipo de escritorio.

Para evitar contar dos veces las chimeneas, los filtros siempre se aplican solo al primer paso de la chimenea. Esto significa que si un jugador cambia los dispositivos durante la chimenea, la chimenea solo se atribuirá a su dispositivo en el momento en que ingrese a la chimenea.

Del mismo modo, las funiones se muestran por cohort, lo que significa que si un jugador ingresa a la función el 6/19, la función se atribuirá a la cohort 6/19 incluso si completa la función el 6/20.

Modificando Funciones

Después de hacer una actualización en sus pasos de funnel, es importante establecer el rango de fecha correcto para ver el último funnel. Si la fecha actual es 6/21 y actualizó el paso 2 de su funnel de onboarding en 6/14, debe establecer el rango de fecha en 6/14 – 6/21 para ver el último funnel.

Si selecciona un rango de fecha que incluye una actualización de paso de funnel, se muestra una advertencia en el paso relevante:

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

Protegiendo tus Funciones de los Exploiters

Dado que es importante mantener sus datos limpios, es importante agregar algo de validez de datos en su código de servidor para evitar que los explotadores envíen datos inválidos a su servicio de análisis.

Por ejemplo, si tienes un funnel de Onboarding con 3 pasos, puedes usar un RemoteEvent para notificar al cliente cuando el jugador ha completado cada paso y agregar un cheque de servidor para asegurarte de que el número de paso esté 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)

Usando Campos Personalizados

Las actualizaciones de eventos también permiten agregar datos personalizados para apoyar la comparación más fácil entre segmentos. Por ejemplo, puede rastrear qué coche inicial 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, see campos personalizados .

Usando Funnels para crecer tu experiencia

Una de las funiones más importantes para rastrear es la onboarding porque muchas experiencias luchan con la nueva retención y compromiso de los usuarios.

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

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

En base a estos datos, podrías:

  • Añade indicadores contextuales para ayudar a los usuarios a plantar semillas cuando estén empezando.
  • 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.