Funnel events ti consente di tracciare il progresso del tuo utente attraverso le fasi chiave della tua esperienza. Ciò include:
- Onboarding - Dove gli utenti si siedono quando iniziano con la tua esperienza?
- Progressione - Dove gli utenti si fermano per avanzare nella tua esperienza?
- Negozio - Dove gli utenti abbandonano gli acquisti?
Una volta che la tua esperienza inizia a tracciare gli eventi Funnel, sbloccherai la pagina Funnel sulla dashboard delle analisi sul Hub Creatore. Puoi aggiungere schede alla dashboard per fino a dieci funnel.
Eventi di avvio della campagna di tracciamento
Per tracciare gli eventi di funnel, identifichi prima gli funnel più importanti nella tua esperienza e segmentali in passi. Il tuo flusso di onboarding è un grande luogo per Iniziare, cominciare, poiché è qui che potresti perdere la maggior parte dei tuoi utenti.
Tracciamento delle funzioni one-time
Un evento di conversione di unico funile monitora gli eventi di conversione che si verificano una sola volta per utente.
Un esempio comune è un funnel di integrazione che è critico per capire come migliorare la nuova retention dell'utente e il tempo di sessione della tua esperienza. Il seguente esempio è un funnel di integrazione per Plant, un'esperienza tycoon in cui nuovi utenti entrano in una fattoria, piantano il seme, coltivano l'acqua e molto altro in sequenza:
Passaggi di onboarding in pianta
local AnalyticsService = game:GetService("AnalyticsService")-- Log the first step of the FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Numero di passo"In Farm" -- Nome passo)-- Log the second stepAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- Numero di passo"Plant Seed" -- Nome passo)
Tracciamento delle funzioni ripetute
Un funnel ricorsivo monitora gli eventi di conversione che si verificano più volte per l'utente.
Un esempio comune è un funnel del negozio che è critico per capire come migliorare la conversione dei pagatori, l'Entrate medie per utente a pagamentoe le entrate. Il seguente esempio è un funnel del negozio in cui gli utenti apribono 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 funnel ricorsivo, come aprire il negozio più volte in una Sessione.
Tracciare i passi del negozio
local AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")funnelSessionId = HttpService:GenerateGUID()-- Log quando l'utente apre il NegozioAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Il nome del funnel viene utilizzato per raggruppare gli step insiemefunnelSessionId, -- Rileva l'ID della Sessioneper questo checkout unico1, -- Numero di passo"Opened Store" -- Nome passo)-- Log quando l'utente visualizza un ArticoloAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Il nome del funnel viene utilizzato per raggruppare gli step insiemefunnelSessionId, -- Rileva l'ID della Sessioneper questo checkout unico2, -- Numero di passo"Viewed Item" -- Nome passo)-- Log quando l'utente vede aggiungi al carrelloAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Il nome del funnel viene utilizzato per raggruppare gli step insiemefunnelSessionId, -- Rileva l'ID della Sessioneper questo checkout unico3, -- Numero di passo"Added to Cart" -- Nome passo)
Realizzazione di funnelSessionId
Quando si implementa funnel, un funnelSessionId può aiutarti a monitorare i tuoi eventi, ma potrebbe non essere richiesto in ogni esempio. Usa le seguenti linee guida:
- Funnel di un'unica volta - Non è necessario utilizzare funnelSessionId per i funnel di un'unica volta poiché si verificano solo una volta per utente.
- Funnel di negozio Store - Usa funnelSessionId per distinguere tra diverse sessioni dello stesso utente in un funnel ripetuto, come l'apertura del negozio più volte in una sessione single nel esempio precedente. In casi come questi, in cui il giocatore può aprire il negozio più volte in una Sessionesingle, è raccomandato utilizzare un
- Aggiornamento degli oggetti - Usa funnelSessionId per distinguere tra differenti sentieri di aggiornamento degli oggetti, generalmente su un periodo di tempo più lungo di una singola Sessionedi gioco. Invece di utilizzare un GUID come in caso di funnel store, puoi spesso costruire un chiave unica in base all'oggetto che viene aggiornato, ad esempio: <playerId>-<itemId></
Passo iniziale
I funnel iniziano quando il primo passo viene registrato. Se vuoi iniziare un funnel immediatamente al giocatore che si unisce, dovrai registrare il primo passo sull'evento PlayerAdded .
Loggare 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 di passo
"Player Joined" -- Nome passo
)
end)
Passaggi ripetuti
Se un utente ripetisce un passo in un funnel, il funnel considera solo la prima istanza del passo. Ad esempio, se un utente registra il passo 2 di un funnel due volte, il funnel conta solo la prima istanza del passo 2.
Salto di Passi
Se per qualche motivo salvi un passo nel funnel, i passi precedenti vengono completati automaticamente.
Ad esempio, se hai un funnello con passaggi 1, 2 e 3. Se registri il passaggio 3 senza registriare i passaggi 1 o 2, il funnello considererà i passaggi 1 e 2 come completati.
Uso dei filtri Funnel
Roblox fornisce filtri per aiutarti ad analizzare i tuoi dati di funnel. Ciò include i dati del giocatore, i dati del dispositivo e puoi inviare dati personalizzati come well. In alcuni casi, lo stato di un Giocatorepuò cambiare durante il funnel, come quando il giocatore passa da dispositivo mobile a Desktop.
Per evitare il doppio conteggio delle funzioni, i filtri sono sempre applicabili solo al primo passo della funzione. Ciò significa che se un giocatore cambia dispositivo durante la funzione, la funzione sarà attribuita solo al loro dispositivo al momento in cui entreranno nella funzione.
Allo stesso modo, i funnel vengono visualizzati per cohort, il che significa che se un giocatore entra nel funnel il 6/19, il funnel sarà attribuito al cohort 6/19 anche se completa il funnel il 6/20.
Modificare i funni
Dopo aver aggiornato i passaggi del tuo funnel, è importante impostare la corretta gamma di data per visualizzare il funnel più recente. Se il calendario attuale è 6/21 e hai aggiornato la parte 2 del tuo funnel di integrazione il 6/14, dovresti impostare la gamma di data a 6/14 – 6/21 per visualizzare il funnel più recente.
Se selezioni una gamma di date che include un aggiornamento del passo di Aggiornarmento, un avviso viene visualizzato sul passo di riferimento:
Protezione dei tuoi funnali dagli esploratori
Per mantenere i tuoi dati puliti, è importante aggiungere un po 'di convalida dei dati nel tuo codice server per impedire agli esploratori di inviare dati non validi al tuo servizio analitico.
Ad esempio, se hai un funnel di onboarding con 3 passaggi, puoi utilizzare un RemoteEvent per il client per notificare il server quando il giocatore ha completato ciascun passaggio e aggiungere un controllo del server per assicurarti 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)
Uso dei campi personalizzati
I flussi degli eventi consentono anche di breakdown sui campi personalizzati per supportare la comparazione più facile tra segmenti. Ad esempio, puoi tracciare quale auto di partenza dà ai giocatori il miglior progressione, o attaccare diverse mappe per vedere se una certa mappa ha un migliore ciclo di gioco rispetto ad altri.
For more information, see campi personalizzati .
Usa i funnel per far crescere la tua esperienza
Una delle funzioni più importanti da tracciare è l'onboarding poiché molte esperienze lottano con la nuova retention e l'Coinvolgimento/Impregnodei nuovi utenti.
Nella fase di integrazione per Pianta sotto, la maggior parte delle richieste di drop-off è passo 2 ("Seme di Pianta").
In base a questi dati, potresti:
- Aggiungi indicatori contestuali per guidare meglio gli utenti a piantare le種 quando iniziano.
- Progetta una nuova esperienza utente che richiede agli utenti di piantare la semina 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.