Gli eventi del funnel ti consentono di tracciare i progressi del tuo utente attraverso le fasi chiave della tua esperienza. Ciò include:
- Onboarding - Dove gli utenti si fermano quando iniziano con la tua esperienza?
- Progressione - Dove gli utenti smettono di avanzare attraverso la tua esperienza?
- Negozio - Dove gli utenti abbandonano gli acquisti?
Una volta che la tua esperienza inizia a monitorare gli eventi del Funnel, sbloccherai la pagina Funnel della dashboard di Analytics sul Hub Creatore.Puoi aggiungere schede alla dashboard per un massimo di dieci funnel.
Traccia gli eventi del funnel
Per tracciare gli eventi del funnel, individua prima i funnel più importanti nella tua esperienza e segmentali in passi.Il flusso di onboarding è un ottimo posto dove Iniziare, cominciare, poiché è qui che potresti perdere la maggior parte dei tuoi utenti.
Traccia i funnel una sola volta
Un funnel monitors una volta sola monitora gli eventi di conversione che si verificano solo una volta per utente.
Un esempio comune è un funnel di onboarding che è critico per capire come migliorare la nuova permanenza dell'utente e il tempo della sessione della tua esperienza.L'esempio seguente è un funnel di onboarding per Pianta, un'esperienza di tycoon in cui gli utenti nuovi entrano in una fattoria, piantano i semi, irrigano la pianta e altro in ordine sequenziale:
Tracciamento dei passaggi di onboarding in pianta
local AnalyticsService = game:GetService("AnalyticsService")-- Registra il primo passo del FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Numero del passo"In Farm" -- Nome del passo)-- Registra il secondo passoAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- Numero del passo"Plant Seed" -- Nome del passo)
Traccia i funnel ricorrenti
Un flusso ricorrente monitora gli eventi di conversione che si verificano più volte per utente.
Un esempio comune è un funnel del negozio che è critico per comprendere come migliorare la conversione del pagatore della tua esperienza, Entrate medie per utente a pagamentoe le entrate.L'esempio seguente è un funnel del negozio in cui gli utenti aprono il Negozio, visualizzano l'Articolo, aggiungono l'articolo al carrello e altro ancora.
Usa funnelSessionId per distinguere tra diverse sessioni dello stesso utente in un flusso ricorrente, come l'apertura del negozio più volte in una singola Sessione.
Passaggi del negozio di tracciamento
local AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")funnelSessionId = HttpService:GenerateGUID()-- Registra quando l'utente apre il NegozioAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nome del funnel utilizzato per raggruppare i passaggi insiemefunnelSessionId, -- ID sessione del funnel per questa Sessionedi checkout unica1, -- Numero del passo"Opened Store" -- Nome del passo)-- Registra quando l'utente visualizza un ArticoloAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nome del funnel utilizzato per raggruppare i passaggi insiemefunnelSessionId, -- ID sessione del funnel per questa Sessionedi checkout unica2, -- Numero del passo"Viewed Item" -- Nome del passo)-- Registra quando l'utente visualizza aggiunge al carrelloAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nome del funnel utilizzato per raggruppare i passaggi insiemefunnelSessionId, -- ID sessione del funnel per questa Sessionedi checkout unica3, -- Numero del passo"Added to Cart" -- Nome del passo)
Implementare funnelSessionId
Quando si implementano i funnel, un funnelSessionId può aiutarti a tracciare i tuoi eventi ma potrebbe non essere richiesto in ogni esempio. Usa le seguenti linee guida:
- Funzioni una sola volta - Non è necessario utilizzare funnelSessionId per le funzioni una sola volta perché si verificano solo una volta per utente.
- Magazzina Funnel - Usa funnelSessionId per distinguere tra diverse sessioni dello stesso utente in un funnel ricorrente, come l'apertura del negozio più volte in una singola sessione nell'esempio precedente.In casi come questo, in cui il giocatore può aprire il negozio più volte in una singola Sessione, è consigliato utilizzare un GUID come funnelSessionId .
- Miglioramenti dell'oggetto - Usa funnelSessionId per distinguere tra diversi percorsi di aggiornamento dell'oggetto, generalmente su un periodo di tempo più lungo di una singola Sessionedi gioco.Piuttosto che utilizzare un ID come nel caso del funnel del negozio, puoi spesso costruire una chiave unica in base all'elemento che viene aggiornato, ad esempio: <playerId>-<itemId> .
Passo iniziale
I funnel iniziano quando il primo passo viene registrato.Se vuoi avviare un funnel immediatamente al join del giocatore, dovrai registrare il primo passo sull'evento PlayerAdded.
Registrare il primo passo nell'evento PlayerAdded
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Numero del passo
"Player Joined" -- Nome del passo
)
end)
Passi ripetuti
Se un utente ripete un passo in un funnel, il funnel considera solo la prima istanza del passo.Ad esempio, se un utente registra due volte il passo 2 di un funnel, il funnel conta solo la prima istanza del passo 2.
Passaggi saltati
Se per qualche motivo salti una fase nel funnel, le fasi precedenti si completano automaticamente.
Ad esempio, se hai un funnel con passaggi 1, 2 e 3.Se registri il passo 3 senza registrare i passi 1 o 2, il funnel considererà i passi 1 e 2 completati.
Usa i filtri del funnel
Roblox fornisce filtri per aiutarti ad analizzare i dati del tuo funnel.Queste includono dati del giocatore, dati del dispositivo e puoi inviare anche dati personalizzati.In alcuni casi, lo stato di un Giocatorepuò cambiare durante il funnel, come quando il giocatore cambia dispositivo da mobile a Desktop.
Per evitare il conteggio doppio dei funnel, i filtri si applicano sempre solo al primo passo del funnel.Questo significa che se un giocatore cambia dispositivo durante il funnel, il funnel verrà attribuito solo al loro dispositivo al momento in cui entra nel funnel.
Allo stesso modo, i funnel vengono visualizzati per coorte, il che significa che se un giocatore entra nel funnel il 6/19, il funnel verrà attribuito alla coorte 6/19 anche se completa il funnel il 6/20.
Modifica i funnel
Dopo aver fatto un aggiornamento ai passaggi del funnel, è importante impostare la corretta intervista di data per vedere l'ultimo funnel.Se la data attuale è 6/21 e hai aggiornato il passo 2 del tuo funnel di onboarding il 6/14, dovresti impostare l'intervallo di data a 6/14 – 6/21 per visualizzare l'ultimo funnel.
Se selezioni un intervallo di date che include un Aggiornarmentodel passaggio di funnel, un avviso viene visualizzato sullo step pertinente:

Proteggi i tuoi funnel dagli exploiter
Per mantenere i tuoi dati puliti, è importante aggiungere un certo livello di validazione dei dati nel codice del server per impedire agli exploiter di inviare dati non validi al tuo servizio di analitica.
Ad esempio, se hai un funnel di onboarding con 3 passaggi, puoi usare un RemoteEvent per il client di notificare al server quando il giocatore ha completato ogni passaggio e aggiungere un controllo del server per garantire che il numero di passo sia valido prima di registrare l'evento:
Codice evento lato codice
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
codiceevento lato server
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)
Usa campi personalizzati
Gli eventi del funnel consentono inoltre di scindere su campi personalizzati per sostenere una comparazione più semplice tra segmenti.Ad esempio, puoi tracciare quale auto di avviamento dà ai giocatori la migliore progressione o allegare mappe diverse per vedere se una certa mappa ha un ciclo di gioco migliore rispetto ad altre.

Per ulteriori informazioni, vedi campi personalizzati.
Usa i funnel per far crescere la tua esperienza
Uno dei funnel più importanti da monitorare è l'onboarding perché molte esperienze lottano con la ritenzione e l'Coinvolgimento/Impregnodegli utenti nuovi.
Nel funnel di onboarding per Pianta qui sotto, la caduta più grande è il passo 2 ("Seme di pianta").

Sulla base di questi dati, puoi:
- Aggiungi indicatori contestuali per dirigere meglio gli utenti a piantare i semi quando stanno iniziando.
- Progetta una nuova esperienza utente che richiede agli utenti di piantare i semi e coltivare una pianta di successo prima di esplorare il resto dell'esperienza.Puoi migliorare questo evento creando elementi di feedback positivi o altre tecniche di progettazione del gioco.
