イベントをファンネルする これにより、ユーザーの進捗状況をエクスペリエンスのキーステージで追跡できます。これには以下が含まれます:
- オンボーディング - ユーザーはエクスペリエンスを開始するときにどこにドロップオフしますか?
- 進行状況 - ユーザーがあなたのエクスペリエンスを通じて進める場所はどこですか?
- ショップ - ユーザーはどこで購入を放棄しますか?
エクスペリエンスが Funnel イベントを追跡するようになると、クリエイターハブのアナリティクスダッシュボードの Funnel ページをアンロックします。ダッシュボードにタブを追加できます。
トラッキングファンネルイベント
ファネルイベントを追跡するには、まずエクスペリエンス内の最も重要なファネルを識別し、それらをステップに分割します。あなたのオンボーディングフローは、ユーザーを失っている可能性のある場所です、ここはあなたが大部分のユーザーを失っている場所です。
一度きりのファンネルを追跡する
一度きりのファンネルモニターは、ユーザーごとにのみ発生する変換イベントを監視します。
コモンな例は、オンボーディングファンネル で、エクスペリエンスの新規ユーザーの継続とセッション時間を理解することは重要です。次の例は、植物、あなたのエクスペリエンスの新規ユーザーが農場に入り、種を植え、水を植え、などと、シーケンシャルにオーダーする:
植物のオンボーディングステップを追跡
local AnalyticsService = game:GetService("AnalyticsService")-- FTUE の最初のステップをログAnalyticsService:LogOnboardingFunnelStepEvent(player,1, -- ステップ番号"In Farm" -- ステップ名)-- 2番目のステップをログAnalyticsService:LogOnboardingFunnelStepEvent(player,2, -- ステップ番号"Plant Seed" -- ステップ名)
繰り返すトンネルを追跡する
繰り返すファンネルは、ユーザーごとに発生する変換イベントを監視します。
一般的な例は、 ショップファネル で、エクスペリエンスの支払い変換、ARPPU、収益を理解するのは重要です。次の例は、ユーザーがストアを開き、アイテムを表保管、カートにアイテムを追加し、その他を含むショップファネルです。
funnelSessionId を使用して、同じユーザーの繰り返しのあるユーザーの異なるセッションを区別します。たとえば、ショップを 1 回のセッションで複数回開くなどしているユーザーの異なるセッションを区別できます。
ストアのステップを追跡する
local AnalyticsService = game:GetService("AnalyticsService")local HttpService = game:GetService("HttpService")funnelSessionId = HttpService:GenerateGUID()-- ユーザーがストアを開いたときにログをロ保管AnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- ステップをグループ化するために使用されるファンネル名funnelSessionId, -- このユニークなチェックアウトセッションのためのファンネルセッションID1, -- ステップ番号"Opened Store" -- ステップ名)-- ユーザーがアイテムを表示するときにログをログAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- ステップをグループ化するために使用されるファンネル名funnelSessionId, -- このユニークなチェックアウトセッションのためのファンネルセッションID2, -- ステップ番号"Viewed Item" -- ステップ名)-- ユーザーがカートに追加するとログをログAnalyticsService:LogFunnelStepEvent(player,"ArmoryCheckout", -- ステップをグループ化するために使用されるファンネル名funnelSessionId, -- このユニークなチェックアウトセッションのためのファンネルセッションID3, -- ステップ番号"Added to Cart" -- ステップ名)
funnelSessionId を実装中
ファンネルを実装するとき、 funnelSessionId がイベントを追跡するのに役立つことがありますが、すべての場合に必要ではありません。次のガイドラインを使用してください:
- 一度きりのファンネル - ユーザーごとに一度きりのファンネルを使用する必要はありません。
- ストアファンネルズ - 同じユーザーの繰り返しのファンネルで、ショップを 1 回のセッションで開くなど、異なるセッションを区別するために funnelSessionId を使用してください。このような場合、プレイヤーがショッ
- アイテムのアップグレード - アップグレードのスケジュールを管理するために funnelSessionId を使用して、個々のアップグレードパスを区別します。通常、単一のプレイセッションよりも長い時間の期間で、アイテムをアップグレードするために GUID を使用
最初のステップ
ファンネルは、最初のステップがログされると開始されます。ユーザーが参加するときにすぐにファンネルを開始したい場合は、PlayerAddedイベントで最初のステップをログする必要があります。
PlayerAdded イベントの最初のステップをログする
local AnalyticsService = game:GetService("AnalyticsService")
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- ステップ番号
"Player Joined" -- ステップ名
)
end)
繰り返すステップ
ユーザーがファネルでステップを繰り返すと、ファネルはユーザーがステップの最初のインスタンスを見つけるだけを検討します。たとえば、ユーザーがステップ 2 を 2 回ファネルに記録すると、ファネルはステップ 2 の最初のインスタンスのみをカウントします。
ステップをスキップ
何らかの理由で、ファンネルのステップをスキップすると、以前のステップが自動的に完了します。
たとえば、ステップ 1、2、3 の 1 つのコンボである場合。ステップ 3 をログしないでログしないで、ステップ 1 とステップ 2 を完了したとします。
ファンネルフィルターを使用する
Roblox は、あなたが楽しみのデータを分析するためにフィルターを提供します。これには、プレイヤーのデータ、デバイスのデータ、およびカスタムデータを含まれます。一部の場合、プレイヤーのステータスは、プレイヤーがモバイルからデスクトップにデバイスを切り替えるなど、楽しみのデータを分析するために変更される可能性があります。
ダブルカウントされる funnel を避けるには、フィルターは常に ファネルの最初のステップにのみ適用される 。これは、プレイヤーが funnel の間にデバイスを切り替えた場合、 funnel はそのデバイスのみに貢献されることを意味します。
同様に、ファンネルはコートで表示され、つまり、プレイヤーが 6/19 にファンネルに入ると、ファンネルは 6/19 コートに属するため、ファンネルを完了すると、6/20 に入ることでもファンネルは 6/19 コートに属することになります。
ファンネルを変更する
ファネルステップを更新した後、正しいデータレンジを設定して、最新のファネルを見ることは重要です。現在の日付は 6/21であり、上記の 6/14 にオンボーディングファネルのステップ 2 を更新した場合、データレンジを 6/14 – 6/21 に設定する必要があります。
ファネルステップの更アップデートを含むデータ範囲を選択すると、関連するステップに警告が表示されます:
エクスプロイターからあなたのチューネルを保護する
データをクリーンに保つためには、サーバーコードにデータ検証レベルを追加して、エクスプロイターが分析サービスに無効なデータを送信するのを防ぐ必要があります。
たとえば、3つのステップのオンボーディングファンネルを持っている場合は、RemoteEvent を使用して、クライアントが各ステップを完了したときにサーバーに通知し、ServerCheck を追加して、ステップ番号が正しいことをログする前にサーバーを確認できます:
クライアント側のイベントコード
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
サーバー側のイベントコード
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)
カスタムフィールドを使用する
ファネルイベントは、セグメント間の比較をサポートするために、カスタムフィールドを分解することもできます。たとえば、どのスターターカーがプレイヤーに最高の進行状況を提供するかを比較したり、特定のマップが他のマップよりも良いゲームループを持っているかを確認するために使用できます。
詳しくは、カスタムフィールドを参照してください。
ファンネルを使用してエクスペリエンスを成長させる
追跡するための 1つの最も重要なファネルはオンボーディングです、因みに多くのエクスペリエンスは新しいユーザーの継続とエンゲージメントに悩みます。
下の 植物 のオンボーディングファンネルで、最大のドロップオフはステップ 2 ("Plant Seed") です。
このデータに基づいて、あなたは次のことができます:
- コンテキストインジケーターを追加して、ユーザーが始めるときに種を植える方法をより直接にする。
- 新しいユーザーエクスペリエンスを設計して、ユーザーが種を植え、エクスペリエンスの残りの部分を探索する前に成功した植物を育てる必要があります。このイベントを改善するためには、ポジティブフィードバックエレメント または他のゲームデザインテクニックを作成することができます。