É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.

Funnel events vous permet de suivre la progression de votre utilisateur à travers les étapes clés de votre expérience. Cela inclut :

  • Onboarding - Où les utilisateurs déposent-ils lorsqu'ils commencent avec votre expérience ?
  • La progression - Où les utilisateurs s'arrêtent-ils pour avancer dans votre expérience ?
  • Boutique - Où les utilisateurs abandonnent-ils les achats ?

Une fois que votre expérience a commencé à suivre des événements de tunnel, vous déverrouillerez la page Funnel du tableau de bord Analytics sur le Hub Création. Vous pouvez ajouter des onglets au tableau de bord pour jusqu'à dix tunnels.

Suivi des événements de funnel

Pour suivre les événements de funnel, identifiez d'abord les funnels les plus importants dans votre expérience et segmentez-les en étapes. Votre flux d'onboarding est un endroit idéal pour commencer, car c'est là que vous perdez la plupart de vos utilisateurs.

Suivi des canaux uniques

Un événement de conversion de funnel unique surveille les événements de conversion qui ne se produisent qu'une fois par utilisateur.

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

Suivi des étapes d'intégration à bord dans la plante

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

Suivi des canaux récurrents

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

Un exemple courant est un funnel de magasin qui est critique pour comprendre comment améliorer la conversion des paiements, l'Revenu moyen par utilisateur payantet les revenus de votre expérience. L'exemple suivant est un funnel de magasin où les utilisateurs ouvrent la boutique, affichent l'item, ajoutent l'article au panier et plus encore.

Utilisez funnelSessionId pour distinguer entre différentes sessions de même utilisateur dans un funnel récurrent, telles que l'ouverture de la boutique plusieurs fois dans une seule session.

Suivi des étapes de la boutique

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
funnelSessionId = HttpService:GenerateGUID()
-- Journaux lorsque l'utilisateur ouvre la boutique
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nom du funnel utilisé pour regrouper les étapes ensemble
funnelSessionId, -- Renseignez l'identifiant de la session pour cette session de paiement unique
1, -- Numéro de pas
"Opened Store" -- Nom de la marche
)
-- Journaux lorsque l'utilisateur affiche un item
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nom du funnel utilisé pour regrouper les étapes ensemble
funnelSessionId, -- Renseignez l'identifiant de la session pour cette session de paiement unique
2, -- Numéro de pas
"Viewed Item" -- Nom de la marche
)
-- Log when the user views ajoute au panier
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nom du funnel utilisé pour regrouper les étapes ensemble
funnelSessionId, -- Renseignez l'identifiant de la session pour cette session de paiement unique
3, -- Numéro de pas
"Added to Cart" -- Nom de la marche
)

implémentation de la session du funnel

Lors de l'implémentation des canaux, un funnelSessionId peut vous aider à suivre vos événements, mais peut ne pas être requis dans tous les instance. Utilisez les lignes directrices suivantes :

  • Fonctions uniques - Vous n'avez pas besoin d'utiliser funnelSessionId pour les fonctions uniques, car elles ne se produisent qu'une fois par utilisateur.
  • Store Funnels - Utilisez funnelSessionId pour distinguer entre différentes sessions de l'utilisateur dans un funnel récurrent, comme ouvrir la boutique plusieurs fois dans une seule session dans le exemple précédent. Dans des cas comme ceux-ci, où le joueur peut ouvrir la boutique plusieurs fois dans une seule session, il est recommandé d'utiliser un GUID comme le
  • Mises à niveau des articles - Utilisez funnelSessionId pour distinguer entre différents chemins de mise à niveau d'articles, 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 funnel store, vous pouvez souvent construire une clé unique en fonction de l'article qui est mis à jour, par exemple : <playerId>-<itemId> .

Premier pas

Les tuyaux commencent lorsque la première étape est enregistrée. Si vous voulez commencer un tuyau immédiatement lorsque un joueur rejoint, vous devrez enregistrer la première étape sur l'événement PlayerAdded.

Journaler 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 de pas
"Player Joined" -- Nom de la marche
)
end)

Étapes répétées

Si un utilisateur répète une étape dans un tunnel, le tunnel ne prend en compte que la première instance de l'étape. Par exemple, si un utilisateur enregistre deux fois la même étape dans un tunnel, le tunnel ne prend en compte que la première instance de l'étape.

Passer des étapes

Si pour une raison quelconque vous avez sauté une étape dans le tunnel, les étapes précédentes se terminent automatiquement.

Par exemple, si vous avez un conduit avec des étapes 1, 2 et 3. Si vous enregistrez l'étape 3 sans enregistrer les étapes 1 ou 2, le conduit prendra en compte les étapes 1 et 2 comme terminées.

Utiliser les filtres de funnel

Roblox fournit des filtres pour vous aider à analyser vos données de funnel. Ces derniers incluent les données des joueurs, les données des appareils 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 d'appareils du mobile au bureau.

Pour éviter le double compte des canaux, les filtres s'appliquent toujours uniquement au premier pas du funnel. Cela signifie que si un joueur change de dispositif pendant le funnel, le funnel ne sera attribué qu'à leur appareil au moment de l'entrer dans le funnel.

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

Modification des tuyaux

Après avoir fait une mise à jour sur vos étapes de funnel, il est important de définir la bonne tranche de date pour voir le dernier funnel. Si la date actuelle est 6/21 et que vous avez mis à jour la étape 2 de votre funnel d'onboarding le 6/14, vous devriez définir la tranche de date à 6/14 – 6/21 pour voir le dernier funnel.

Si vous sélectionnez une tranche de date qui inclut une mise à jour de la étape d'un tunnel, une avertissement s'affiche sur la case à cocher :

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

Protéger vos conduits des exploiteurs

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

Par exemple, si vous avez un tunnel d'onboarding avec 3 étapes, vous pouvez utiliser un RemoteEvent pour le client pour notifier le serveur lorsque le joueur a terminé chaque étape et ajouter un vérificateur de serveur pour vous assurer que le numéro de vérification de l'étape est valide avant de journaux 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 de funnel permettent également de diviser en détail sur des champs personnalisés pour soutenir une comparaison plus facile entre les segments. Par exemple, vous pouvez suivre lequel des voitures de démarrage donne aux joueurs la meilleure progression, ou attacher différentes cartes pour voir si une certaine carte a un meilleur boucle de jeu que les 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.

Utiliser les funaux pour faire pousser votre expérience

L'un des funaux les plus importants à suivre est l'onboarding, car de nombreuses expériences ont des difficultés à garder les nouveaux utilisateurs et à participation.

Dans le tunnel d'onboarding pour Plante ci-dessous, le plus gros dépôt est la étape 2 ("Plante Seed").

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

En fonction de ces données, vous pourriez :

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