Wydarzenia lejkowe pozwalają śledzić postęp użytkowników przez kluczowe etapy w Twojej grze. Obejmuje to:
- Onboarding — Gdzie użytkownicy rezygnują, gdy zaczynają korzystać z Twojej gry?
- Postęp — Gdzie użytkownicy przestają awansować w grze?
- Sklep — Gdzie użytkownicy porzucają zakupy?
Gdy Twoja gra zacznie śledzić wydarzenia lejkowe, odblokujesz stronę lejkową w panelu analitycznym na Creator Hub. Możesz dodać zakładki do panelu dla maksymalnie dziesięciu lejków.
Śledzenie wydarzeń lejkowych
Aby śledzić wydarzenia lejkowe, najpierw zidentyfikuj najważniejsze lejki w swojej grze i podziel je na kroki. Ponieważ celem jest zrozumienie zachowań graczy, te kroki zazwyczaj odpowiadają pewnej akcji lub osiągnięciu.
W grze RPG możesz mieć krok dotyczący dołączenia do gry, krok dotyczący wyboru klasy, kolejny dotyczący opuszczenia początkowego pokoju itd. Zazwyczaj wywołujesz LogFunnelStepEvent() lub LogOnboardingFunnelStepEvent() po tym, jak gracz ukończy krok, ale najważniejsze jest, aby być konsekwentnym w wywoływaniu tych metod oraz używać łatwych do zrozumienia nazw.
Twój proces onboardingu to świetne miejsce na rozpoczęcie śledzenia wydarzeń lejkowych, ponieważ najprawdopodobniej tam tracisz większość użytkowników.
Śledzenie jednorazowych lejków
Jednorazowy lejek monitoruje wydarzenia konwersji, które występują tylko raz na użytkownika.
Typowym przykładem jest lejek onboardingu, który jest kluczowy do zrozumienia, jak poprawić retencję nowych użytkowników i czas sesji w Twojej grze. Następujący przykład to lejek onboardingu dla Plant, gry tycoon, w której nowi użytkownicy wchodzą na farmę, sadzą nasiona, podlewają rośliny itd. w określonej kolejności:
Śledzenie kroków onboardingu w Plantlocal AnalyticsService = game:GetService("AnalyticsService")-- Zaloguj pierwszy krok FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Numer kroku"W Farmie" -- Nazwa kroku)-- Zaloguj drugi krokAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- Numer kroku"Sadzę Nasiono" -- Nazwa kroku)
Śledzenie powtarzających się lejków
Powtarzający się lejek monitoruje wydarzenia konwersji, które występują wielokrotnie na użytkownika.
Typowym przykładem jest lejek sklepu, który może pomóc zrozumieć, jak poprawić konwersję płatników, ARPPU i przychody w Twojej grze. Następujący przykład to lejek sklepu, w którym użytkownicy otwierają sklep, przeglądają przedmiot, dodają przedmiot do koszyka itd.
Użyj funnelSessionId, aby rozróżnić różne sesje tego samego użytkownika w powtarzającym się leju, na przykład otwierając sklep kilka razy w jednej sesji.
Śledzenie kroków sklepulocal AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")local funnelSessionId = HttpService:GenerateGUID()-- Zaloguj, gdy użytkownik otwiera sklepAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nazwa lejka używana do grupowania krokówfunnelSessionId, -- ID sesji lejka dla tej unikalnej sesji zakupu1, -- Numer kroku"Otworzone Sklep" -- Nazwa kroku)-- Zaloguj, gdy użytkownik przegląda przedmiotAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nazwa lejka używana do grupowania krokówfunnelSessionId, -- ID sesji lejka dla tej unikalnej sesji zakupu2, -- Numer kroku"Wyświetlony Przedmiot" -- Nazwa kroku)-- Zaloguj, gdy użytkownik dodaje do koszykaAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nazwa lejka używana do grupowania krokówfunnelSessionId, -- ID sesji lejka dla tej unikalnej sesji zakupu3, -- Numer kroku"Dodane do Koszyka" -- Nazwa kroku)
Realizacja funnelSessionId
Podczas implementacji lejków, funnelSessionId może pomóc w śledzeniu Twoich wydarzeń, ale nie zawsze jest wymagany. Użyj poniższych wytycznych:
- Jednorazowe lejki - Nie musisz używać funnelSessionId dla jednorazowych lejków, ponieważ występują one tylko raz na użytkownika.
- Lejki sklepu - Użyj funnelSessionId, aby odróżnić różne sesje tego samego użytkownika w powtarzającym się leju, na przykład otwierając sklep kilka razy w jednej sesji w wcześniejszym przykładzie. W takich przypadkach, w których gracz może otworzyć sklep wielokrotnie w jednej sesji, zaleca się użycie GUID jako funnelSessionId.
- Ulepszenia przedmiotów - Użyj funnelSessionId, aby odróżnić różne ścieżki ulepszeń przedmiotów, zazwyczaj przez dłuższy czas niż pojedyncza sesja gry. Zamiast używać GUID, jak w przypadku sklepu, możesz często zbudować unikalny klucz oparty na ulepszanym przedmiocie, na przykład: <playerId>-<itemId>.
Pierwszy krok
Lejki zaczynają się, gdy pierwszy krok jest logowany. Jeśli chcesz rozpocząć lejek natychmiast po dołączeniu gracza, zaloguj pierwszy krok przy zdarzeniu PlayerAdded.
Logowanie pierwszego kroku w zdarzeniu PlayerAdded
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Numer kroku
"Gracz Dołączył" -- Nazwa kroku
)
end)
Powtarzane kroki
Jeśli użytkownik powtarza krok w leju, lejek bierze pod uwagę tylko pierwszą instancję kroku. Na przykład, jeśli użytkownik zaloguje krok 2 lejka dwa razy, lejek liczy tylko pierwszą instancję kroku 2. Nie musisz podejmować żadnych szczególnych działań, aby obsługiwać jednorazowe lejki dla graczy, którzy rozłączają się i łączą ponownie, a funnelSessionId obsługuje powtarzające się lejki.
Powtarzane kroki są ignorowane przez lejek, ale nadal są rejestrowane i przyczyniają się do globalnego limitu.
Pominięte kroki
Jeśli z jakiegoś powodu pomijasz krok w leju, wcześniejsze kroki są automatycznie uznawane za ukończone. Na przykład, jeśli masz lejek z krokami 1, 2 i 3 i zalogujesz krok 3, nie logując kroków 1 lub 2, lejek uzna kroki 1 i 2 za ukończone.
Użyj filtrów lejków
Roblox oferuje filtry, które pomagają analizować dane z lejków. Obejmują one dane gracza oraz dane urządzenia, a także możesz wysyłać niestandardowe dane. W niektórych przypadkach status gracza może się zmieniać podczas lejka, na przykład gdy gracz przełącza się z urządzenia mobilnego na stacjonarne.
Aby uniknąć podwójnego liczenia lejków, filtry stosują się tylko do pierwszego kroku lejka. Oznacza to, że jeśli gracz zmienia urządzenia podczas lejka, lejek będzie przypisany tylko do jego urządzenia w momencie wejścia do lejka.
Podobnie, lejki są wyświetlane według kohorty, co oznacza, że jeśli gracz wchodzi do lejka 19/06, lejek będzie przypisany do kohorty 19/06, nawet jeśli ukończy lejek 20/06.
Modyfikuj lejki
Po dokonaniu aktualizacji kroków lejka ważne jest, aby ustawić odpowiedni zakres dat, aby zobaczyć najnowszy lejek. Jeśli aktualna data to 21/06 i zaktualizowałeś krok 2 swojego lejka onboardingu 14/06, powinieneś ustawić zakres dat na 14/06 – 21/06, aby wyświetlić najnowszy lejek.
Jeśli wybierzesz zakres dat, który zawiera aktualizację kroku lejka, wyświetli się ostrzeżenie przy odpowiednim kroku:

Chroń swoje lejki przed oszustami
Aby zachować czystość danych, ważne jest, aby dodać pewien poziom walidacji danych w kodzie serwera, aby zapobiec wysyłaniu nieprawidłowych danych do Twojej usługi analitycznej przez oszustów.
Na przykład, jeśli masz lejek onboardingu składający się z trzech kroków, możesz użyć RemoteEvent, aby klient mógł powiadomić serwer, kiedy gracz ukończył każdy krok, a następnie dodać sprawdzenie serwera, aby upewnić się, że numer kroku jest ważny przed zalogowaniem zdarzenia:
Kod zdarzenia po stronie klienta
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) -- nieprawidłowy krok
Kod zdarzenia po stronie serwera
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(`Otrzymano nieprawidłowy krok tutorialu {step} od klienta.`)
return
end
print(`{player.Name} ukończył krok: {step}`)
AnalyticsService:LogOnboardingFunnelStepEvent(player, step)
end
onboardingEvent.OnServerEvent:Connect(onPlayerEventFired)
Użyj pól niestandardowych
Wydarzenia lejkowe pozwalają także na rozbicie danych na pola niestandardowe, aby wspierać łatwiejsze porównanie między segmentami. Na przykład, możesz śledzić, który starterowy samochód daje graczom najlepszy postęp, lub dołączyć różne mapy, aby zobaczyć, czy określona mapa ma lepszy przepływ gry niż inne.

Aby uzyskać więcej informacji, zobacz pola niestandardowe.
Użyj lejków, aby rozwijać swoją grę
Jednym z najważniejszych lejków do śledzenia jest onboarding, ponieważ wiele gier ma problem z retencją i zaangażowaniem nowych użytkowników.
W leju onboardingu dla Plant poniżej, największy spadek występuje na kroku 2 ("Sadzę Nasiono").

Na podstawie tych danych możesz:
- Dodać kontekstowe wskaźniki, aby lepiej kierować użytkowników do sadzenia nasion, gdy zaczynają grę.
- Zaprojektować nowe doświadczenie dla użytkowników, które wymaga sadzenia nasion i uprawy udanej rośliny przed eksplorowaniem reszty gry. Możesz poprawić to zdarzenie, tworząc elementy pozytywnej informacji zwrotnej lub używając innych technik projektowania gier.
