エンゲージメントベースの報酬

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

自動エンゲージメントベースの報酬により、ゲームの規模に関係なく、プレミアムメンバーがゲームに関与する時間のシェアに基づいてRobuxを獲得できます。これらの報酬は、パスなどの他のマネタイズ方法からの収益に加えて支払われます。

プレミアム会員の成長を促し、エンゲージメントベースの報酬を得る可能性を高めるために、ゲーム内にプレミアム購入モーダルを直接追加することができます。なお、一部の国のユーザーはプレミアムサブスクリプションにアクセスできない場合があります。

報酬データにアクセスする

報酬データは、プレミアム会員があなたのゲームに惹かれる要因を理解するのに役立つ重要なフィードバックを提供します。

報酬データにアクセスするには:

  1. クリエイターダッシュボードクリエイションページに移動し、あなたのゲームを選択します。
  2. マネタイズタブに移動し、エンゲージメント報酬を選択します。

エンゲージメント報酬

エンゲージメントベースの報酬チャートは、以下のメトリックに基づいて報酬データを追跡します:

  • プレミアムプレイ時間で獲得したRobux: プレミアムサブスクリプションによる関与に対して期待される額です。これは、プレミアムサブスクリプション利用者がゲームに関与するために費やす日々の時間には基づいていません。代わりに、過去28日間の各ユーザーの行動を集約したメトリックです。このため、類似の傾向を示していても、このメトリックはプレミアムプレイ時間スコアと直接的な数学的関係はありません。

  • プレミアムプレイ時間スコア: プレミアム会員がゲームに関与する時間です。このメトリックは、新機能の影響を即座にフィードバックとして提供します。

  • プレミアム訪問: プレミアムメンバーからの訪問数。


プレミアム購入モーダル

エンゲージメントベースの報酬を増やすための一つの戦略は、購入モーダルを通じてプレミアムへのアップグレードを促すことです。プレイヤーはゲーム内で完全に購入を完了し、すぐにプレミアムステータスと最初の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)
-- ターゲット地点周辺のストリーミングを要求
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
-- 購入モーダルを表示; デバウンスを使用して最大でも数秒に一度だけ表示
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)
-- メンバーシップ変更イベントを処理
Players.PlayerMembershipChanged:Connect(function(player)
warn("ユーザーメンバーシップが変更されました; 新しいメンバーシップは " .. tostring(player.MembershipType))
-- メンバーシップタイプがプレミアムで、キャラクターがテレポーター上にいる場合は、キャラクターをテレポートします
if player.MembershipType == Enum.MembershipType.Premium and player:GetAttribute("CharacterPartsTouching") > 0 then
teleportPlayer(player)
end
end)
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。