ファネルイベント

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ファネルイベント では、ユーザーの進捗状況をエクスペリエンスの重要なステージで追跡できます。これには以下が含まれます:

  • オンボーディング - ユーザーがエクスペリエンスを開始するときにどこに降りるのですか?
  • 進行状況 - ユーザーがあなたのエクスペリエンスを通して進歩を停止するのはどこですか?
  • ショップ - ユーザーが購入を放棄する場所

エクスペリエンスがファネルイベントの追跡を開始すると、クリエイターハブのアナリティクスダッシュボードのファネルページがアンロックされます。ダッシュボードにタブを最大 10 個追加できます。

トラックファネルイベントを追跡

ファネルイベントを追跡するには、まずエクスペリエンス内で最も重要なファネルを識別し、ステップに分割します。オンボーディングフローは、ユーザーの大部分を失う可能性が高い場所であるため、開始するのに最適です。

一時的なファネルを追跡する

一度限りのファネルは、ユーザーごとに発生するのみの変換イベントをモニタリングします。

一般的な例は、 搭乗ファネル で、エクスペリエンスの新しいユーザーの継続利用率とセッション時間を改善する方法を理解するのに不可欠です。次の例は、植物 のオンボーディングファネルであり、新規ユーザーが農場に入り、種を植え、水を植え、その他を順次に入れるタイクーンエクスペリエンスです:

プラントでオンボーディングステップを追跡する

local AnalyticsService = game:GetService("AnalyticsService")
-- FTUE の最初のステップをログ
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
1, -- ステップ番号
"In Farm" -- ステップ名
)
-- 2番目のステップをログする
AnalyticsService:LogOnboardingFunnelStepEvent(
player,
2, -- ステップ番号
"Plant Seed" -- ステップ名
)

繰り返すパイプラインを追跡

再発するファネルは、ユーザーごとに複数回発生する変換イベントをモニタリングします。

一般的な例は、 ショップファネル で、エクスペリエンスの支払い変換、ARPPU、収入を改善する方法を理解するのに重要です。次の例は、ユーザーがストアを開き、アイテムを表示し、カートにアイテムを追加するなどのショップファネルです。

を使用して、同じユーザーの繰り返しフネルで異なるセッションを区別し、たとえば、1回のセッションで複数回ショップを開くなどします。

ショップステップの追跡

local AnalyticsService = game:GetService("AnalyticsService")
local HttpService = game:GetService("HttpService")
funnelSessionId = HttpService:GenerateGUID()
-- ユーザーがストアを開いたときにログを記録す保管
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- ステップをグループ化するために使用されるファネル名
funnelSessionId, -- このユニークなチェックアウトセッションのためのファネルセッションID
1, -- ステップ番号
"Opened Store" -- ステップ名
)
-- ユーザーがアイテムを表示したときにログを記録する
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- ステップをグループ化するために使用されるファネル名
funnelSessionId, -- このユニークなチェックアウトセッションのためのファネルセッションID
2, -- ステップ番号
"Viewed Item" -- ステップ名
)
-- ユーザービューがカートに追加されたときにログを記録する
AnalyticsService:LogFunnelStepEvent(
player,
"ArmoryCheckout", -- ステップをグループ化するために使用されるファネル名
funnelSessionId, -- このユニークなチェックアウトセッションのためのファネルセッションID
3, -- ステップ番号
"Added to Cart" -- ステップ名
)

funnelSessionId を実装

ファネルを実装するとき、funnelSessionId はイベントを追跡するのに役立つ可能性がありますが、すべての場合に必要ではありません。次のガイドラインを使用してください:

  • 1回限りのファネル - ユーザーごとに 1回だけ発生するため、funnelSessionId を使用する必要はありません。
  • ストアファンネル - 使用 funnelSessionId を使用して、同じユーザーの繰り返しファンネルで異なるセッションを区別し、例えば、シングルセッション内で店を複数回開いて、以前の例 で。このような場合、プレイヤーがシングルセッションで複数回店を開ける可能性がある場合、funnelSessionId として GUID を使用することをお勧めします。
  • アイテムのアップグレード - 一般的に、単一のプレイセッションよりも長い期間にわたって、異なるアイテムアップグレードパスを区別するために funnelSessionId を使用します。ストアのファネルケースのように GUID を使用するのではなく、アップグレードされるアイテムに基づいて、独自のキーを構築できることが多いです。例えば、<playerId>-<itemId> です。

初期ステップ

最初のステップがログに記録されると、ファネルが開始します。プレイヤーが参加するとすぐにファネルを開始したい場合、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 があるファネルがある場合。ステップ 3 をログせず、ステップ 1 または 2 をログしない場合、ファネルはステップ 1 と 2 を完了したとみなします。

ファネルフィルターを使用する

Roblox はフィルタを提供して、ファネルデータを分析するのを助けます。これには、プレイヤーデータ、デバイスデータ、カスタムデータも送信できます。例えば、プレイヤーがモバイルからデスクトップへ装置を切り替えるときなど、ファネル中にプレイヤーのステータスが変更される場合があります。

ファネルの二重カウントを避けるために、フィルターは常に ファネルの最初のステップにのみ適用します 。つまり、プレイヤーがファネル中にデバイスを切り替えた場合、ファネルはそのプレイヤーがファネルに入った時点でのみそのデバイスに属するということです。

同様に、ファネルはコホートによって表示され、つまり、プレイヤーが 6/19 にファネルに入ると、ファネルは 6/19 コホートに割り当てられますが、6/20 にファネルを完了しても、ファネルは 6/19 コホートに割り当てられます。

ファネルを変更する

ファネルステップを更新した後、最新のファネルを見るために正しい日付範囲を設定することが重要です。現在の日付が 6/21 で、6/14 にオンボーディングファネルのステップ 2 を更新した場合、最新のファネルを表示するには、日付範囲を 6/14 から 6/21 に設定する必要があります。

ファネルステップアップデートを含む日付範囲を選択すると、関連するステップに警告が表示されます:

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

悪用者からファネルを保護する

データを清潔に保つために、サーバーコードにデータ検証のレベルを追加することで、悪用者がアナリティクスサービスに無効なデータを送信するのを防ぐことが重要です。

たとえば、3ステップのオンボーディングファネルがある場合、クライアントがプレイヤーが各ステップを完了したときにサーバーに通知し、イベントをログする前にステップ番号が有効であることを保証するために RemoteEvent を使用できます:

クライアント側イベントコード

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)

カスタムフィールドを使用する

ファネルイベントは、カスタムフィールドを分解してセグメント間の比較を容易にすることもできます。たとえば、どのスターターカーがプレイヤーに最高の進捗をもたらすかを追跡したり、特定のマップが他のマップよりも良いゲームループを持っているかどうかを見るために、異なるマップを付け加えることができます。

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

詳しくは、カスタムフィールド を参照してください。

ファネルを使用してエクスペリエンスを拡大する

追跡する最も重要なファネルの 1つはオンボーディングで、多くの経験が新しいユーザーの継続利用率とエンゲージメントに苦労しています。

以下の 植物 のオンボーディングファネルでは、最大のドロップオフはステップ 2 ("植物の種") です。

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

このデータに基づいて、あなたは:

  • ユーザーが開始するときに植物の種を植えるように指示するために、コンテキスト指標を追加します。
  • ユーザーが種を植えて成功した植物を育てる必要がある新しいユーザーエクスペリエンスを設計し、エクスペリエンスの残りを探索する前に。このイベントを改善するには、ポジティブなフィードバック要素 または他のゲームデザイン技術を作成することができます。
In-experience view of Plant experience showing prompts to plant seeds above the flowerpots.