自動的な エンゲージメントベースのペイアウト では、プレミアムメンバーがエクスペリエンスに参加する時間の割合に基づいて、Robuxを獲得できます。エクスペリエンスのサイズに関係なく。これらの支払いは、パス などの他の マネタイズ 方法の収益に加えて行われます。
プレミアム加入者の成長を促進し、エンゲージメントベースのペイアウトを獲得する可能性を増やすために、プレミアム購入モードを直接エクスペリエンスに追加できます。いくつかの国のユーザーは、プレミアムサブスクリプションにアクセスできない可能性があります。
アクセスペイアウトデータを取得
ペイアウトデータは、プレミアム加入者があなたのエクスペリエンスにどのような要因を駆動するかを理解するのに役立つ重要なフィードバックを提供できます。
ペイアウトデータにアクセスするには:
- ナビゲート to your クリエーション page on クリエイターダッシュボード and select your experience.
- ナビゲート to the マネタイズ tab and select エンゲージメントペイアウト .
エンゲージメントペイアウト
エンゲージメントベースのペイアウト チャートは、次のメトリックに基づいてペイアウトデータを追跡します:
プレミアムプレイ時間 Robux 獲得済み: プレミアム加入者のエンゲージメントで期待できる金額。これは、毎日の時間にプレミアム加入者がエクスペリエンスと対話する時間に基づいていません;代わりに、このメトリックは過去 28 日間の各ユーザーの行動を集計します。そのため、同様の傾向があっても、このメトリックはプレミアムプレイ時間スコアと直接的な数学的関係はありません。
プレミアムプレイ時間スコア: プレミアム加入者が毎日エクスペリエンスと対話する時間の量。このメトリックは、リリースした新機能の影響について即座のフィードバックを提供できます。
プレミアム訪問: プレミアムメンバーからの訪問は何回ですか。

プレミアム購入モードル
エンゲージメントベースのペイアウトを増やす 1つの戦略は、プレミアム アップグレードを通じて 購入モード を促進することです。プレイヤーは、エクスペリエンス内で完全に購入を完了し、Robux の初期の報酬とプレミアムステータスをすぐに受け取ることができます。

プレミアムメンバーシップは、エクスペリエンスを楽しむための「要件」であってはならないことを覚えてください。プレミアムメンバーにインセンティブを実装するとき、これらのベストプラクティスに従うことを強く推奨します:
- 正直かつ正確に、エクスペリエンスの 説明 内でのアップグレードのメリットを説明します。
- 制御していない Robux またはその他の経験外の報酬を約束しないでください。
- 非プレミアムメンバーがエクスペリエンスに入るときに、モーダルを「ペイウォール」として表示しないでください。
- プレミアムメンバーに限定商品を提供することを検討してくださいが、非プレミアムメンバーが対抗できない武器のアレイなど、他のプレイヤーに戦略的なゲームプレイの優位性を与えることはしないでください。
メンバー資格メンバーシップチェック
プレミアムメンバーシップまたは モーダルをトリガーする に関連するロジックをスクリプトする前に、ユーザーの MembershipType プロパティをチェックして、すでにサブスクライブしているかどうかを確認します。
local Players = game:GetService("Players")local player = Players.LocalPlayerif player.MembershipType == Enum.MembershipType.Premium then-- プレミアムメンバー向けに特定のアクションを実行するend
モーダルをトリガー
PromptPremiumPurchase() メソッドで購入モードをトリガーできます。たとえば、次のコードはユーザーに、キャラクターが含まれるパーツに触れると、プレミアムを購入するよう促します。例えば、限定エリアにアクセスできるテレポーターです。
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
-- 購入モードを表示し、debounce を使用して、最大で数秒ごとに一度表示する
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("User membership changed; new membership is " .. tostring(player.MembershipType))
-- メンバータイプがプレミアムで、キャラクターがテレポーター上にある場合、キャラクターをテレポートする
if player.MembershipType == Enum.MembershipType.Premium and player:GetAttribute("CharacterPartsTouching") > 0 then
teleportPlayer(player)
end
end)