エンゲージメントベース・ペイアウト

自動 エンゲージメントベース・ペイアウト によって、バーチャル空間の規模に関係なく プレミアム 会員がバーチャル空間でエンゲージする時間のシェアに基づいて Robux を獲得できます。 これらのペイアウト(支払い)は、 パスなどその他の 収益化 の方法に加えて支払われる収入源です。

プレミアム定期購入者を増やし、エンゲージメントベース・ペイアウトからの収入ポテンシャルを増やすには、バーチャル空間に直接、プレミアム購入モーダル を追加することができます。

ペイアウトデータへのアクセス

プレミアム・ペイアウトデータは、プレミアム会員をバーチャル空間に引き込む要因を理解するのに役立つ重要なフィードバックを提供できます。

  1. バーチャル空間にカーソルを合わせ、 アイコンをクリックし、 開発者と統計を選択します。

    クリエーターダッシュボードのバーチャル空間のオプションメニューにある開発者統計
  2. トップにあるナビゲーションで、エンゲージメントベース・ペイアウトタブをクリックします。

    クリエーターダッシュボードの開発者統計ページにあるエンゲージメントベース・ペイアウトのタブ

プレミアム・ペイアウト

エンゲージメントベース・ペイアウトチャートは、以下の指標に基づいてペイアウトデータを追跡します。

プレミアムプレイ時間スコアとは、プレミアム会員が1日あたりでバーチャル空間とエンゲージメントした時間のことです。 この指標では、リリースする新機能の影響に関する即時のフィードバックを提供できます。

プレミアムプレイタイム獲得済みRobuxは、プレミアム会員のエンゲージメントで獲得できる額です。 この指標はプレミアム会員が1日にバーチャル空間に費やした時間ではなく、各ユーザーの過去28日間の行動を集計したものです。 そのため同様の傾向がありますが、この指標はプレミアムプレイ時間スコアと直接の数値的な関連はありません。

エンゲージメントベース・ペイアウトデータの追跡チャートの例

プレミアム訪問数

プレミアム訪問数 チャートは、プレミアム会員からどれだけ訪問数があるかを追跡します。 ドロップダウンメニューを使用して、プレミアム訪問率プレミアム訪問、または総訪問数のいずれかを選択できます。

プレミアム会員からの訪問数を追跡するチャート例

プレミアム購入モーダル

エンゲージメントベース・ペイアウトを増加させるための 1 つの戦略は、 プレミアム購入モーダル を使ってアップグレードすることです。 プレイヤーはバーチャル空間内で購入を完了し、すぐにプレミアムステータスと初回支給分の Robux を受け取ることができます。

バーチャル空間内のプレミアム購入モーダル
バーチャル空間内のプレミアム購入モーダル

プレミアム会員になることは、バーチャル空間を楽しむための「必須条件」ではないことをお忘れなく。 プレミアム会員へのインセンティブを実装するときは、次の模範例に従うことを強くお勧めします:

  • バーチャル空間の 概要の中でアップグレードすることのメリットを正直に正確に説明します。
  • Robux や、コントロールできない他のバーチャル空間外の報酬などを約束しないでください。
  • プレミアム会員以外のメンバーがバーチャル空間に参加すときは、モーダルを「ペイウォール」として表示しないでください。
  • プレミアム会員に限定 商品 を提供することを検討してください。ただし、プレミアム会員以外が太刀打ちできないような超強力な武器の数々など、戦術的にゲームプレイを有利にするものを提供しないようにしてください。

メンバーシップの確認

プレミアム定期購入に関連するロジックをスクリプト化したり、モーダルをトリガーしたりする前にユーザーの MembershipType プロパティをチェックして、すでに購読しているかどうかを判断します。


local Players = game:GetService("Players")
local player = Players.LocalPlayer
if player.MembershipType == Enum.MembershipType.Premium then
-- プレミアム会員に特化した対策をする
end

モーダルのトリガー

PromptPremiumPurchase()方式で、プレミアム購入モーダルをトリガーできます。 たとえば、以下コードでは、プレミアム専用エリアへのアクセスを可能にするテレポートなど、アバターがそのScriptコンテンツに添付されている部分にタッチしたときに、プレミアムを購入するようにユーザーに促します。


local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local teleporter = script.Parent
local showModal = true
local TELEPORT_POSITION = Vector3.new(1200, 200, 60)
-- キャラクターを限定エリアにテレポート
local function teleportPlayer(player)
-- Request streaming around target location
player:RequestStreamAroundAsync(TELEPORT_POSITION)
-- キャラクターをテレポート
local character = player.Character
if character and character.Parent then
local currentPivot = character:GetPivot()
character:PivotTo(currentPivot * CFrame.new(TELEPORT_POSITION))
end
end
-- テレポート機に触れているキャラクターのパーツを検知
teleporter.Touched:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if not player then return end
if not player:GetAttribute("CharacterPartsTouching") then
player:SetAttribute("CharacterPartsTouching", 0)
end
player:SetAttribute("CharacterPartsTouching", player:GetAttribute("CharacterPartsTouching") + 1)
if player.MembershipType == Enum.MembershipType.Premium then
-- ユーザーがプレミアム会員; バーチャル空間内の限定エリアへキャラクターをテレポート
teleportPlayer(player)
else
-- デバウンスを使用して最大数秒1回、購入モーダルを表示
if not showModal then return end
showModal = false
task.delay(5, function()
showModal = true
end)
MarketplaceService:PromptPremiumPurchase(player)
end
end)
-- テレポート機から退出中のキャラクターのパーツを検知
teleporter.TouchEnded:Connect(function(otherPart)
local player = Players:GetPlayerFromCharacter(otherPart.Parent)
if player and player:GetAttribute("CharacterPartsTouching") then
player:SetAttribute("CharacterPartsTouching", player:GetAttribute("CharacterPartsTouching") - 1)
end
end)
-- メンバーシップ変更済みイベントの処理t
Players.PlayerMembershipChanged:Connect(function(player)
warn("User membership changed; new membership is " .. tostring(player.MembershipType))
-- Teleport character if membership type is Premium and character is on teleporter
if player.MembershipType == Enum.MembershipType.Premium and player:GetAttribute("CharacterPartsTouching") > 0 then
teleportPlayer(player)
end
end)