Przepustka wydarzeń pozwala śledzić postępy użytkownika poprzez kluczowe etapy swojego doświadczenia. To obejmuje:
- Onboarding - Gdzie użytkownicy składają się, gdy zaczynają z Twoim doświadczeniem?
- Postęp - Gdzie użytkownicy kończą swoją podażę poprzez twoje doświadczenie?
- Sklep - Gdzie użytkownicy porzucają zakupy?
Gdy doświadczenie zacznie śledzić wydarzenia Funnel, odblokujesz stronę Funnel na pasku narzędzi na środku twórcy. Możesz dodać zakładki do dashboardu dla do 10 funeli.
Śledzenie wydarzeń w kanale
Aby śledzić wydarzenia w funelu, najpierw zidentyfikuj najważniejsze funele w swoim doświadczeniu i podziel je na kroki. Twoja integracja z użytkownikami jest wielkim miejscem do rozpoczynać, ponieważ to jest miejsce, w którym możesz tracić większość swoich użytkowników.
Śledzenie jednorazowych kanałów
Jednorazowe wączki monitorują wydarzenia konwersji, które następują tylko raz na użytkownika.
Zwykłym przykładem jest funnel onboardingowy, który jest krytyczny, aby zrozumieć, jak poprawić nową retencję użytkowników i czas sesji. Poniższy przykład to funnel onboardingowy dla Plant, gdzie nowi użytkownicy wchodzą do farmy, sadzą nasiona roślin, wodę roślinną i wiele więcej w kolejności:
Śledzenie kroków onboardingu w roślinie
local AnalyticsService = game:GetService("AnalyticsService")-- Zapisz pierwszy krok FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Krok numer"In Farm" -- Nazwa kroku)-- Zapisz drugi krokAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- Krok numer"Plant Seed" -- Nazwa kroku)
Śledzenie powtarzających się kanałów
Przywracające się wydarzenia kanałów monitorują przekształcenia, które następują wiele razy na użytkownika.
Zwykłym przykładem jest sklep funnel , który jest krytyczny, aby zrozumieć, jak poprawić twoją eksperyencję's payer konwersji, ARPPU i przychodów. Poniższy przykład to sklep funnel, w którym użytkownicy otwierają sklep, widzą przedmiot, dodają przedmiot do koszyka i wiele więcej.
Użyj funnelSessionId , aby odróżnić różne sesje tego samego użytkownika w tym samym funelu, takie jak otwarcie sklepu wiele razy w jednej sesja.
Śledzenie kroków sklepu
local AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")funnelSessionId = HttpService:GenerateGUID()-- Zapisz, gdy użytkownik otwiera sklepAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nazwa kanału używana do grupowania krokówfunnelSessionId, -- Przekaż ID sesji dla tego unikalnego sesjapłatności1, -- Krok numer"Opened Store" -- Nazwa kroku)-- Zapisz, gdy użytkownik ogląda przedmiotAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nazwa kanału używana do grupowania krokówfunnelSessionId, -- Przekaż ID sesji dla tego unikalnego sesjapłatności2, -- Krok numer"Viewed Item" -- Nazwa kroku)-- Zapisz, gdy użytkownik dodaje produkt do koszykaAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Nazwa kanału używana do grupowania krokówfunnelSessionId, -- Przekaż ID sesji dla tego unikalnego sesjapłatności3, -- Krok numer"Added to Cart" -- Nazwa kroku)
Realizacja funkcji sessionId
Podczas wdrożenia funeli, funnelSessionId może pomóc Ci śledzić swoje wydarzenia, ale może nie być wymagane w każdym instancja. Użyj następujących zasadnic:
- Jednorazowe kanały - Nie musisz używać funnelSessionId dla jednorazowych kanałów, ponieważ pojawiają się tylko raz na użytkownika.
- Sklepowe kanały przepływu - Użyj funnelSessionId , aby odróżnić różne sesje tego samego użytkownika w tym samym funelu, takich jak otwarcie sklepu wielokrotnie w jednej sesjaw wcześniejszym przykładzie . W przypadkach takich, gdy gracz może ot
- Ulepszenia przedmiotów - Użyj funnelSessionId , aby odróżnić różne drogi ulepszeń przedmiotów, zwykle przez dłuższy czas niż pojedyncza sesja gry. Zamiast używać GUID, tak jak w przypadku funnelu w sklepie, możesz często budować unikalny klucz na podstawie przedmiotu ulepszanego, na przykład
Pierwszy krok
Kanały zaczynają się, gdy pierwszy krok zostanie zapisany. Jeśli chcesz uruchomić kanał natychmiastowo po dołączeniu gracza, będziesz musiał zapisać pierwszy krok na wydarzeniu PlayerAdded.
Zapisywanie pierwszego kroku w wydarzeniu PlayerAdded
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Krok numer
"Player Joined" -- Nazwa kroku
)
end)
Powtarzające się kroki
Jeśli użytkownik powtarza krok w funnalu, funnel bierze pod uwagę tylko pierwszy przypadek kroku. Na przykład, jeśli użytkownik zapisuje krok 2 funnaru dwa razy, funnel bierze pod uwagę tylko pierwszy przypadek kroku 2.
Pomiń kroki
Jeśli z jakiegoś powodu zignorujesz krok w funnelu, wcześniejsze kroki zostaną automatycznie ukończone.
Na przykład, jeśli masz kanał z krokami 1, 2 i 3. Jeśli zapiszesz krok 3 bez zapisu kroków 1 lub 2, kanał będzie rozważać kroki 1 i 2 jako zakończone.
Używanie filtrów funelowych
Roblox oferuje filtry, aby pomóc Ci z分析 Twoich danych kanału. W tym są dane gracza, dane urządzenia i możesz również wysyłać dane niestandardowe. W niektórych przypadkach status gracza może się zmienić podczas funnel, tak jak gdy gracz przełącza urządzenia z mobilnych na komputer stacjonarny.
Aby uniknąć podwójnego liczenia kanałów, filtry zawsze są stosowane tylko do pierwszego kroku kanału. Oznacza to, że jeśli gracz zmienia urządzenie podczas kanału, kanał będzie przypisany tylko do ich urządzenia w momencie wejścia do kanału.
Podobnie, funele wyświetlają się według kohortu, co oznacza, że jeśli gracz wejdzie do funelu 6/19, funel będzie przypisany do kohortu 6/19, nawet jeśli zakończy funel 6/20.
Modyfikowanie kanałów
Po dokonaniu aktualizacji kroków swojego funela, ważne jest ustawienie poprawnej rangi czasowej, aby zobaczyć najnowszy funel. Jeśli obecna data to 6/21 i aktualizowałeś krok 2 swojego funela onboardingowego 6/14, powinieneś ustawić rangę czasową na 6/14 – 6/21, aby zobaczyć najnowszy funel.
Jeśli wybierzesz zasięg daty, w którym znajduje się aktualizacja kroku funelowego, na odpowiednim kroku pojawi się ostrzeżenie:
Chronienie twoich kanałów przed oszustami
Aby utrzymać twoje dane czyste, ważne jest, aby dodać pewny poziom poprawności danych w kodzie serwera, aby zapobiec oszukującym wysyłaniu nieprawidłowych danych do twojego usługi analitycznego.
Na przykład, jeśli masz funel onboardingu z 3 krokami, możesz użyć RemoteEvent dla klienta, aby poinformować serwer, gdy gracz ukończy każdy krok i dodać serwer check, aby upewnić się, że numer kroku jest poprawny przed zapisem wydarzenia:
kodwydarzenia strony 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) -- invalid step
kodwydarzenia strony 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(`Invalid tutorial step {step} received from client.`)
return
end
print(`{player.Name} completed step: {step}`)
AnalyticsService:LogOnboardingFunnelStepEvent(player, step)
end
onboardingEvent.OnServerEvent:Connect(onPlayerEventFired)
Używanie niestandardowych pola
Kanałowe wydarzenia umożliwiają również łatwiejszy porównywanie elementów pomiędzy segmentami. Na przykład możesz śledzić, który pojazd startowy daje graczom najlepszy postęp, lub załączyć różne mapy, aby zobaczyć, czy pewna mapa ma lepszy cykl gry niż inne.
Dla więcej informacji, see pola niestandardowe .
Używanie kanałów, aby zwiększyć swoje doświadczenie
Jednym z najważniejszych funeli do śledzenia jest onboarding, ponieważ wiele doświadczeń walczy z nową retencją użytkowników i zaangażowanie.
W funelu onboardingowym dla Plant poniżej największym drop-offem jest krok 2 ("Plant Seed").
Na podstawie tych danych możesz:
- Dodaj wskaźniki kontekstowe, aby lepiej kierować użytkowników, którzy dopiero zaczynają.
- Projektuj nową doświadczenie użytkownika, w której użytkownicy muszą zasadzić nasiona i uprawić udaną roślinę, zanim zbędą poznawać resztę doświadczenia. Możesz poprawić ten wydarzenie, tworząc pozytywne elementy opisu lub inne techniki projektowania gry.