Eventos de funil

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Eventos de funil permitem que você acompanhe o progresso do usuário através de estágios-chave de sua experiência. Isso inclui:

  • Treinamento - Onde os usuários desistem ao começar com sua experiência?
  • Progressão - Onde os usuários param de avançar através de sua experiência?
  • Loja - Onde os usuários abandonam as compras?

Uma vez que sua experiência começa a rastrear eventos de Funil, você desbloqueará a página de Funil do painel de Análise no Hub do Criador.Você pode adicionar abas ao painel para até dez funis.

Rastrear eventos de funil

Para rastrear eventos de funil, primeiro identifique os funis mais importantes em sua experiência e segmente-os em etapas.Seu fluxo de integração é um ótimo lugar para iniciar, pois é onde você pode estar perdendo a maioria de seus usuários.

Acompanhe funis únicos

Um funil único monitora eventos de conversão que ocorrem apenas uma vez por usuário.

Um exemplo comum é um funil de integração que é crítico para entender como melhorar a retenção e o tempo de sessão do novo usuário da sua experiência.O seguinte exemplo é um funil de integração para Planta, uma experiência de tycoon onde novos usuários entram em uma fazenda, plantam sementes, regam a planta e muito mais em ordem sequencial:

Rastreamento de etapas de integração na planta

local AnalyticsService = game:GetService("AnalyticsService")
-- Registre o primeiro passo do FTUE
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Número de passo
"In Farm" -- Nome do passo
)
-- Registre o segundo passo
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- Número de passo
"Plant Seed" -- Nome do passo
)

Acompanhe funis recorrentes

Um funil recorrente monitora eventos de conversão que ocorrem múltiplas vezes por usuário.

Um exemplo comum é um funil de loja que é crítico para entender como melhorar a conversão de pagador, RMPUPe receita da sua experiência.O seguinte exemplo é um funil de loja onde os usuários abrem a loja, visualizam o item, adicionam o item ao carrinho e muito mais.

Use funnelSessionId para distinguir entre diferentes sessões do mesmo usuário em um funil recorrente, como abrir a loja várias vezes em uma única sessão.

Passos de rastreamento da loja

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
funnelSessionId = HttpService:GenerateGUID()
-- Registrar quando o usuário abre a loja
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nome do funil usado para agrupar etapas juntas
funnelSessionId, -- ID de sessão de funil para esta sessão de checkout única
1, -- Número de passo
"Opened Store" -- Nome do passo
)
-- Registrar quando o usuário vê um item
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nome do funil usado para agrupar etapas juntas
funnelSessionId, -- ID de sessão de funil para esta sessão de checkout única
2, -- Número de passo
"Viewed Item" -- Nome do passo
)
-- Registre quando o usuário visualiza adiciona ao carrinho
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- Nome do funil usado para agrupar etapas juntas
funnelSessionId, -- ID de sessão de funil para esta sessão de checkout única
3, -- Número de passo
"Added to Cart" -- Nome do passo
)

Implementar funnelSessionId

Ao implementar funis, um funnelSessionId pode ajudá-lo a rastrear seus eventos, mas pode não ser necessário em cada instância. Use as seguintes diretrizes:

  • Funis de Uso Único - Você não precisa usar funnelSessionId para funis de uso único porque eles ocorrem apenas uma vez por usuário.
  • Funis de armazenamento - Use funnelSessionId para distinguir entre diferentes sessões do mesmo usuário em um funil recorrente, como abrir a loja várias vezes em uma única sessão no exemplo anterior.Em casos como este, onde o jogador pode abrir a loja várias vezes em uma única sessão, é recomendado usar um GUID como o funnelSessionId.
  • Melhorias de item - Use funnelSessionId para distinguir entre diferentes caminhos de atualização de item, geralmente por um período de tempo mais longo do que uma única sessão de jogo.Em vez de usar um GUID como no caso do funil da loja, você pode frequentemente construir uma chave única com base no item que está sendo atualizado, por exemplo: <playerId>-<itemId> .

Passo inicial

Funis começam quando o primeiro passo é registrado.Se você quiser iniciar um funil imediatamente após a entrada do jogador, precisará registrar o primeiro passo no evento PlayerAdded.

Registrar o primeiro passo no evento PlayerAdded

local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- Número de passo
"Player Joined" -- Nome do passo
)
end)

Passos repetidos

Se um usuário repetir um passo em um funil, o funil só considera a primeira instância do passo.Por exemplo, se um usuário registra o passo 2 de um funil duas vezes, o funil conta apenas a primeira instância do passo 2.

Passos saltados

Se, por algum motivo, você pular um passo no funil, os passos anteriores serão concluídos automaticamente.

Por exemplo, se você tiver um funil com etapas 1, 2 e 3.Se você registrar o passo 3 sem registrar os passos 1 ou 2, o funil considerará os passos 1 e 2 concluídos.

Usar filtros de funil

O Roblox fornece filtros para ajudá-lo a analisar os dados do funil.Estes incluem dados do jogador, dados do dispositivo e você pode enviar dados personalizados também.Em alguns casos, o status de um jogador pode mudar durante o funil, como quando o jogador muda de dispositivo de móvel para Área de trabalho.

Para evitar funis de contagem dupla, filtros sempre apenas se aplicam ao primeiro passo do funil.Isso significa que, se um jogador trocar de dispositivo durante o funil, o funil só será atribuído ao seu dispositivo no momento em que ele entra no funil.

Da mesma forma, os funis são exibidos por coorte, o que significa que se um jogador entrar no funil em 6/19, o funil será atribuído à coorte 6/19, mesmo que complete o funil em 6/20.

Modificar funis

Depois de fazer uma atualização nos passos do funil, é importante definir a faixa de data correta para ver o mais recente funil.Se a data atual for 6/21 e você atualizou o passo 2 do seu funil de integração em 6/14, você deve definir o período de data para 6/14 - 6/21 para ver o mais recente funil.

Se você selecionar um período de data que inclua uma atualização de etapa de funil, um aviso é exibido no passo relevante:

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

Proteja seus funis de exploiters

Para manter seus dados limpos, é importante adicionar algum nível de validação de dados no código do servidor para impedir que os exploiters enviem dados inválidos para o seu serviço de análise.

Por exemplo, se você tiver um funil de integração com 3 etapas, você pode usar um RemoteEvent para o cliente notificar o servidor quando o jogador tiver concluído cada etapa e adicionar uma verificação de servidor para garantir que o número de etapa seja válido antes de registrar o evento:

códigode evento do lado do cliente

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
códigode evento do lado do servidor

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)

Use campos personalizados

Eventos de funil também permitem quebrar em campos personalizados para suportar uma comparação mais fácil entre segmentos.Por exemplo, você pode rastrear qual carro inicial dá aos jogadores a melhor progressão ou anexar diferentes mapas para ver se um determinado mapa tem um ciclo de jogo melhor do que outros.

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

Para mais informações, veja campos personalizados.

Use funis para crescer sua experiência

Um dos funis mais importantes para rastrear é o onboarding porque muitas experiências lutam com a retenção e engajamento de novos usuários.

No funil de integração para Planta abaixo, a maior queda é o passo 2 ("Semente da Planta").

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

Com base nesses dados, você pode:

  • Adicione indicadores contextuais para direcionar melhor os usuários a plantar sementes quando eles estão começando.
  • Projete uma nova experiência de usuário que exija que os usuários plantem sementes e cresçam uma planta bem-sucedida antes de explorar o resto da experiência.Você pode melhorar esse evento criando elementos de feedback positivo ou outras técnicas de design de jogo.
In-experience view of Plant experience showing prompts to plant seeds above the flowerpots.