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 FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Número de paso"In Farm" -- Nombre del paso)-- Registra el segundo pasoAnalyticsService: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 tiendaAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nombre de funnel usado para agrupar pasos juntosfunnelSessionId, -- Canaliza el ID de sesión para esta sesión de pago única1, -- Número de paso"Opened Store" -- Nombre del paso)-- Registra cuando el usuario ve un objetoAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nombre de funnel usado para agrupar pasos juntosfunnelSessionId, -- Canaliza el ID de sesión para esta sesión de pago única2, -- Número de paso"Viewed Item" -- Nombre del paso)-- Registra cuando el usuario vea se añada al carritoAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nombre de funnel usado para agrupar pasos juntosfunnelSessionId, -- Canaliza el ID de sesión para esta sesión de pago única3, -- 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:
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.
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").
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.