Funnel-Ereignisse lassen Sie Ihren Benutzer-Fortschritt durch Schlüssel-Stufen Ihres Erlebnisses verfolgen. Dies beinhaltet:
- Onboarding - Wo landen Benutzer, wenn sie mit Ihrem Erlebnis beginnen?
- Fortschritt - Wo stoppen Benutzer durch deine Erlebnisfortzuschreiten?
- Shop - Wo verlassen Benutzer Käufe?
Sobald deine Erfahrung beginnt, Funnel-Ereignisse zu verfolgen, wirst du die Funnel-Seite des Analytics-Dashboards im Creator Hub freischalten. Du kannst Registerkarten zum Dashboard hinzufügen, bis zu zehn Funnel.
Verfolgungsfunnel-Ereignisse
Um Funnel-Ereignisse zu verfolgen, identifizieren Sie zuerst die wichtigsten Funnel in Ihrem Erlebnis und teilen Sie sie in Schritte ein. Ihr Onboarding-Fluss ist ein großartiger Ort, um zu starten, da dies der Ort ist, an dem Sie die meisten Ihrer Benutzer verlieren.
Verfolgung einmaliger Kanäle
Ein einmaliger Funnel-Monitor überwacht Umwandlungsereignisse, die nur einmal pro Benutzer auftreten.
Ein häufiges Beispiel ist ein Onboarding-Funnel, der für die Verständigung der Funktionsweise des neuen Benutzerbehaltes und der Sitzzeit deines Erlebnisses kritisch ist. Das folgende Beispiel ist ein Onboarding-Funnel für Pflanze, eine Tycoon-Erfahrung, in der neue Benutzer eine Farm betreten, Pflanzsaat, Wasserpflanze und mehr in sequenzieller Reihenfolge eingeben:
Verfolgung der Onboarding-Schritte in der Pflanze
local AnalyticsService = game:GetService("AnalyticsService")-- Loggen Sie den ersten Schritt der FTUEAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- Schrittnumber"In Farm" -- Name des Schritts)-- Loggen Sie den zweiten SchrittAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- Schrittnumber"Plant Seed" -- Name des Schritts)
Verfolgende wiederholende Kanäle
Ein wiederkehrendes Funnel-Monitorengescheint Conversion-Events, die mehrere Male pro Benutzer auftreten.
Ein häufiges Beispiel ist ein Shop-Funnel , der für die Verständigung der Art und Weise, wie Sie Ihre Erlebnis's Payer Conversion, durchschnittlicher Erlös pro zahlendem Nutzer (ARPPU)und Umsatz zu verbessern, kritisch ist. Das folgende Beispiel ist ein Shop-Funnel, in dem Benutzer den Storeöffnen, die Artikelanzeigen, ein Item zum Warenkorb hinzufügen und mehr.
Verwenden Sie funnelSessionId, um zwischen verschiedenen Sitzungen desselben Benutzers in einem wiederholenden Funnel zu unterscheiden, z. B. das Öffnen des Shops mehrere Male in einer einzigen Sitzung.
Schritte des Verfolgungs-Shops
local AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")funnelSessionId = HttpService:GenerateGUID()-- Protokollieren, wenn der Benutzer den StoreöffnetAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Der Name des Kanals wird verwendet, um Schritte zusammenzuführenfunnelSessionId, -- Funnel-Session-ID für diese einzigartige Sitzung1, -- Schrittnumber"Opened Store" -- Name des Schritts)-- Protokollieren, wenn der Benutzer ein ArtikelanzeigtAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Der Name des Kanals wird verwendet, um Schritte zusammenzuführenfunnelSessionId, -- Funnel-Session-ID für diese einzigartige Sitzung2, -- Schrittnumber"Viewed Item" -- Name des Schritts)-- Log when the user views adds to cartAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- Der Name des Kanals wird verwendet, um Schritte zusammenzuführenfunnelSessionId, -- Funnel-Session-ID für diese einzigartige Sitzung3, -- Schrittnumber"Added to Cart" -- Name des Schritts)
funnelSessionId implementieren
Wenn Sie Funnel implementieren, kann ein funnelSessionId Ihnen helfen, Ihre Ereignisse zu verfolgen, aber in jedem Fall kann es nicht in jedem Fall erforderlich sein. Verwenden Sie die folgenden Richtlinien:
- Einmal-Funktionen - Sie müssen nicht funnelSessionId für Einmal-Funktionen verwenden, da sie nur einmal pro Benutzer auftreten.
- Laden-Funnel speichern - Verwenden Sie funnelSessionId , um zwischen verschiedenen Sitzungen desselben Benutzers in einem wiederholenden Funnel zu unterscheiden, z. B. öffnen Sie den Shop mehrmals in einer einzigen Sitzung im früheren Beispiel . In Fällen wie diesem, in denen der Spieler den Shop mehrmals in einer einzigen Sitzung
- Artikel-Upgrades - Verwenden Sie funnelSessionId , um zwischen verschiedenen Artikel-Upgrade-Wegen zu unterscheiden, im Allgemeinen über einen längeren Zeitraum als eine einzige Sitzung. Statt GUID verwenden Sie oft einen einzigartigen Schlüssel basierend auf dem Item, das aktualisiert wird, z. B.: <playerId>-<itemId> .
Erste Schritte
Funnels starten, wenn der erste Schritt verfolgt wird. Wenn Sie einen Funnel sofort nach dem Beitritt des Spielers starten möchten, müssen Sie den ersten Schritt auf dem PlayerAdded -Ereignis loggen.
Erstellen Sie den ersten Schritt in der PlayerAdded-Ereignis
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Schrittnumber
"Player Joined" -- Name des Schritts
)
end)
Wiederholte Schritte
Wenn ein Benutzer einen Schritt in einem Funnel wiederholt, berücksichtigt der Funnel nur die erste Instanz des Schritts. Zum Beispiel, wenn ein Benutzer die Schritt 2 eines Funnels zweimal aufzeichnet, zählt der Funnel nur die erste Instanz des Schritts 2.
Schritte überspringen
Wenn aus irgendeinem Grund ein Schritt in der Funnel übersprungen wird, werden die früheren Schritte automatisch abgeschlossen.
Zum Beispiel, wenn Sie einen funnel mit Schritten 1, 2 und 3 haben. Wenn Sie Schritt 3 ohne Schritt 1 oder 2 aufzeichnen, wird der funnel Schritt 1 und 2 als abgeschlossen betrachten.
Verwendung von Funnel-Filtern
Roblox bietet Filter an, um Ihnen zu helfen, Ihre Funnel-Daten zu analysieren. Dies umfasst Spielerdaten, Gerätedaten und Sie können benutzerdefinierte Daten auch senden. In einigen Fällen kann der Status eines Spieler:inwährend des Funnels ändern, z. B. wenn der Spieler Geräte von Mobilgeräten auf Desktop-Geräten wechseln.
Um doppelte Countdown-Funktionen zu vermeiden, gilt immer nur für den ersten Schritt der Funktion. Dies bedeutet, dass, wenn ein Spieler während des Countdowns Geräte wechseln, der Funnel nur an ihrem Gerät zugewiesen wird, wenn sie den Funnel betreten.
Ebenso zeigen Funnel nach Kohorte an, was bedeutet, dass, wenn ein Spieler am 6/19 in den Funnel eintreten wird, der Funnel dem 6/19-Kohorte zugewiesen wird, auch wenn er den Funnel am 6/20 abschließt.
Funktionen ändern
Nachdem Sie ein Update an Ihren Funnel-Schritten vorgenommen haben, ist es wichtig, die richtige Datumsreichweite zu setzen, um die neuesten Funnel zu sehen. Wenn die aktuelle Datumsreichweite 6/21 ist und Sie den Schritt 2 Ihres Onboarding-Funnels am 6/14 aktualisiert haben, sollten Sie die Datumsreichweite auf 6/14 – 6/21 einstellen, um die neuesten Funnel anzuzeigen.
Wenn Sie ein Datum auswählen, das ein Funnel-Schritt-Update enthält, wird eine Warnung auf dem entsprechenden Schritt angezeigt:
Schutz Ihrer Kanäle vor Exploitern
Um Ihre Daten sauber zu halten, ist es wichtig, einige Datenvalidierungslevel in Ihrem Servercode hinzuzufügen, um die Exploiter daran zu hindern, ungültige Daten an Ihren Analytics-Dienst zu senden.
Zum Beispiel, wenn Sie einen Onboarding-Funnel mit 3 Schritten haben, können Sie ein RemoteEvent für den Client verwenden, um den Server zu benachrichtigen, wenn der Spieler jeden Schritt abgeschlossen hat, und einen Server-Check hinzufügen, um sicherzustellen, dass die Schrittnummer vor dem Loggen des Ereignisses gültig ist:
Client-seitige Codes
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
Server-seitige Codes
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)
Benutzerdefinierte Felder verwenden
Funnel-Ereignisse ermöglichen es auch, auf benutzerdefinierte Felder zu zerbrechen, um einen einfachen Vergleich zwischen Segmenten zu unterstützen. Zum Beispiel können Sie verfolgen, welcher Starter-Wagen den Spielern die beste Fortschrittsgeschwindigkeit bietet, oder verschiedene Karten anhängen, um zu sehen, ob eine bestimmte Karte einen besseren Spiel-Loop als andere hat.
For more information, see benutzerdefinierte Felder .
Verwendung von Funneln, um Ihr Erlebnis zu vergrößern
Eine der wichtigsten Funnel zum Verfolgen ist die Einarbeitung, da viele Erlebnisse mit der neuen Benutzerzufriedenheit und Engagement kämpfen.
In der Onboarding-Funnel für Pflanze unten ist der größte Drop-Off der zweite Schritt ("Pflanzensamen").
Basierend auf diesen Daten könntest du:
- Füge Kontext-Indikatoren hinzu, um Benutzern beim Starten besser zu helfen, Samen zu pflanzen.
- Entwerfen Sie ein neues Benutzererlebnis, das Benutzern erfordert, um Samen zu pflanzen und einen erfolgreichen Pflanze zu wachsen, bevor sie den Rest des Erlebnisses erkunden. Sie können dieses Ereignis verbessern, indem Sie positive Feedback-Elemente oder andere Spieldesign-Techniken erstellen.