Événements de funnel

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Les événements du tunnel vous permettent de suivre la progression de votre utilisateur à travers les étapes clés de votre expérience. Cela inclut :

  • Intégration - Où les utilisateurs déposent-ils lorsqu'ils commencent leur expérience ?
  • Progression - Où les utilisateurs s'arrêtent-ils d'avancer à travers votre expérience ?
  • Boutique - Où les utilisateurs abandonnent-ils leurs achats ?

Une fois que votre expérience commence à suivre les événements du tunnel, vous débloquerez la page du tunnel du tableau de bord d'Analytics sur le hub des créateurs.Vous pouvez ajouter des onglets au tableau de bord pour jusqu'à dix conduits.

Suivre les événements du funnel

Pour suivre les événements du tunnel, identifiez d'abord les tunnels les plus importants dans votre expérience et les segmentez en étapes.Votre flux d'embarquement est un bon endroit pour commencer, car c'est là que vous pouvez perdre la plupart de vos utilisateurs.

Suivre les funnels uniques

Un tunnel unique surveille les événements de conversion qui se produisent une seule fois par utilisateur.

Un exemple commun est un entonnoir d'embarquement qui est crucial pour comprendre comment améliorer la rétention des nouveaux utilisateurs et le temps de session de votre expérience.L'exemple suivant est un tunnel d'embarquement pour Plante, une expérience de tycoon où les nouveaux utilisateurs entrent dans une ferme, plantent des graines, arrosent une plante et plus dans l'ordre séquentiel :

Suivre les étapes d'embarquement dans l'usine

local AnalyticsService = game:GetService("AnalyticsService")
-- Enregistrer la première étape du FTUE
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Numéro d'étape
"In Farm" -- Nom de la étape
)
-- Enregistrer la deuxième étape
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- Numéro d'étape
"Plant Seed" -- Nom de la étape
)

Suivre les funnels récurrents

Un tunnel récurrent surveille les événements de conversion qui se produisent plusieurs fois par utilisateur.

Un exemple commun est un entonnoir de boutique qui est crucial pour comprendre comment améliorer la conversion du payeur de votre expérience, Revenu moyen par utilisateur payantet les revenus.L'exemple suivant est un tunnel de boutique où les utilisateurs ouvrent la boutique, affichent l'item, ajoutent l'article au panier et plus encore.

Utilisez funnelSessionId pour distinguer les différentes sessions d'un même utilisateur dans un tunnel récurrent, comme l'ouverture de la boutique plusieurs fois dans une seule session.

Suivre les étapes de la boutique

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
funnelSessionId = HttpService:GenerateGUID()
-- Journaliser lorsque l'utilisateur ouvre la boutique
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nom du tunnel utilisé pour regrouper les étapes ensemble
funnelSessionId, -- ID de session de tunnel pour cette session de paiement unique
1, -- Numéro d'étape
"Opened Store" -- Nom de la étape
)
-- Enregistrer lorsque l'utilisateur affiche un item
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nom du tunnel utilisé pour regrouper les étapes ensemble
funnelSessionId, -- ID de session de tunnel pour cette session de paiement unique
2, -- Numéro d'étape
"Viewed Item" -- Nom de la étape
)
-- Enregistrer lorsque l'utilisateur ajoute des articles au panier
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nom du tunnel utilisé pour regrouper les étapes ensemble
funnelSessionId, -- ID de session de tunnel pour cette session de paiement unique
3, -- Numéro d'étape
"Added to Cart" -- Nom de la étape
)

Implémenter funnelSessionId

Lors de la mise en œuvre de funnels, un funnelSessionId peut vous aider à suivre vos événements, mais peut ne pas être requis dans chaque instance. Utilisez les directives suivantes :

  • Tunnels uniques - Vous n'avez pas besoin d'utiliser funnelSessionId pour les tunnels uniques car ils ne se produisent qu'une fois par utilisateur.
  • Stocker les entonnoirs - Utilisez pour distinguer entre différentes sessions de l'utilisateur dans un entonnoir récurrent, comme l'ouverture de la boutique plusieurs fois dans une seule session dans l'exemple précédent .Dans des cas comme celui-ci, où le joueur peut ouvrir la boutique plusieurs fois en une seule session, il est recommandé d'utiliser un GUID comme le funnelSessionId .
  • Améliorations d'objets - Utilisez funnelSessionId pour distinguer différents chemins d'amélioration d'objets, généralement sur une période plus longue qu'une seule session de jeu.Au lieu d'utiliser un GUID comme dans le cas du tunnel de magasin, vous pouvez souvent construire une clé unique en fonction de l'élément qui est amélioré, par exemple : <playerId>-<itemId> .

Pas initial

Les funnels commencent lorsque la première étape est enregistrée.Si vous voulez démarrer une funnel immédiatement lors de l'adhésion du joueur, vous devrez enregistrer la première étape sur l'événement PlayerAdded.

Enregistrement de la première étape dans l'événement PlayerAdded

local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Numéro d'étape
"Player Joined" -- Nom de la étape
)
end)

Pas répétés

Si un utilisateur répète une étape dans un entonnoir, l'entonnoir ne prend en compte que la première instance de l'étape.Par exemple, si un utilisateur enregistre deux fois l'étape 2 d'un entonnoir, l'entonnoir ne compte que la première instance de l'étape 2.

Pas sautés

Si, pour une raison quelconque, vous sautez une étape dans le funnel, les étapes précédentes sont automatiquement terminées.

Par exemple, si vous avez un tunnel avec les étapes 1, 2 et 3.Si vous enregistrez l'étape 3 sans enregistrer les étapes 1 ou 2, le funnel considérera les étapes 1 et 2 comme terminées.

Utiliser les filtres de canal

Roblox fournit des filtres pour vous aider à analyser vos données de funnel.Ceux-ci incluent les données du joueur, les données du périphérique, et vous pouvez également envoyer des données personnalisées.Dans certains cas, le statut d'un joueur peut changer pendant le funnel, comme lorsque le joueur change de dispositif du mobile au bureau.

Pour éviter les comptages doubles des conduits, les filtres s'appliquent toujours seulement à la première étape du conduit .Cela signifie que si un joueur change de dispositif pendant le tunnel, le tunnel ne sera attribué à son dispositif qu'au moment où il entre dans le tunnel.

De même, les conduits s'affichent par cohorte, ce qui signifie que si un joueur entre dans le conduit le 6/19, le conduit sera attribué à la cohorte 6/19 même s'il termine le conduit le 6/20.

Modifier les conduits

Après avoir fait une mise à jour des étapes de votre entonnoir, il est important de définir la bonne plage de dates pour voir le dernier entonnoir.Si la date actuelle est 6/21 et que vous avez mis à jour l'étape 2 de votre funnel d'embarquement le 6/14, vous devez définir la plage de dates à 6/14 - 6/21 pour voir le dernier funnel.

Si vous sélectionnez une plage de dates incluant une mise à jour de passe en cascade, un avertissement s'affiche sur l'étape pertinente :

A warning displays on the funnel dashboard indicating a name change within the selected date range.

Protégez vos funnels des exploiteurs

Afin de garder vos données propres, il est important d'ajouter un certain niveau de validation des données dans le code de votre serveur pour empêcher les exploiteurs d'envoyer des données invalides à votre service d'analyse.

Par exemple, si vous avez un funnel d'embarquement avec 3 étapes, vous pouvez utiliser un RemoteEvent pour que le client notifie le serveur lorsque le joueur a terminé chaque étape et ajoutez une vérification du serveur pour garantir que le numéro d'étape est valide avant d'enregistrer l'événement :

coded'événement côté client

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
coded'événement côté serveur

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)

Utiliser des champs personnalisés

Les événements du tunnel permettent également de décomposer sur des champs personnalisés pour faciliter la comparaison entre segments.Par exemple, vous pouvez suivre la voiture de départ qui donne aux joueurs la meilleure progression, ou attacher différentes cartes pour voir si une certaine carte a un meilleur cycle de jeu que d'autres.

A dropdown indicating the three custom fields you can compare across, along with standard breakdowns like age, gender, operating system and more.

Pour plus d'informations, voir champs personnalisés.

Utilisez des entonnoirs pour faire grandir votre expérience

L'un des tunnels les plus importants à suivre est l'onboarding car de nombreuses expériences se battent avec la rétention et l'participationdes nouveaux utilisateurs.

Dans le funnel d'embarquement pour Plante ci-dessous, la plus grande décharge est l'étape 2 ("Semence de Plante").

Funnels chart for Plant experience showing a 70% drop-off between In Farm, step 1, and Plant Seed, step 2.

Sur la base de ces données, vous pouvez :

  • Ajoutez des indicateurs contextuels pour mieux diriger les utilisateurs à planter des graines lorsqu'ils commencent.
  • Concevez une nouvelle expérience utilisateur qui nécessite que les utilisateurs plantent des graines et développent une plante réussie avant d'explorer le reste de l'expérience.Vous pouvez améliorer cet événement en créant des éléments de rétroaction positifs ou d'autres techniques de conception de jeu.
In-experience view of Plant experience showing prompts to plant seeds above the flowerpots.