自動 エンゲージメントベースの支払い により、Robux をエクスペリエンスのシェアに基づいて獲得できます。これらの支払いは、エクスペリエンスのサイズにかかわらず、パスなどの他の マネタイズメソッド からの収益に加えて提供されます。
Premium サブスクリプションの成長を促進し、エンゲージメントベースの報酬を獲得するために、エクスペリエンスに直接 Premium Purchase Modal を追加できます。この点に注意してください。ユーザーは、特定の国からはプレミアムサブスクリプションにアクセスできない場合があります。
配布データにアクセスする
データのプレイアウトは、プレミアムサブスクリプターがエクスペリエンスに到達するための重要なフィードバックを提供できます。
支払いデータにアクセスするには:
Navigate to your クリエーション page on クリエイターダッシュボード and select your エクスペリエンス.
ナビゲート to the 収益化 tab and select エンゲージメントの支払い .
エンゲージメントの支払い
エンゲージメントベースのパブリッシングは、次のメトリックスに基づいて報酬データを追跡します:エンゲージメントベースのパブリッシングは、次のメトリックスに基づいて報酬データを追跡します:
プレミアムプレイタイムロバックスを獲得しました: この値は、プレミアムのサブスクリプターがエンゲージメントするのを期待できる Robux のプレミアム・プレイ時間スコア量です。これは、デイリータイムのプレミアムサブスクリプターがエンゲージメントするのを期待するものではありません。代わりに、
プレミアムプレイ時間スコア: プレミアムサブスクリプターが毎日エクスペリエンスに参加する時間の量。このメトリックは、新機能のリリースに対する即座のフィードバックを提供できます。
プレミアム訪問: プレミアムメンバーからの訪問数。
プレミアム購入モーダル
エンゲージメントベースの支払いを増加させる 1つの戦略は、プレミアム アップグレードを通じて、エクスペリエンス全体でプレミアムステータスを完了し、すぐに Robux の初期スタイプのスタイプを受け取ることです。プレイヤーはエクスペリエンス全体で完了を完了し、すぐに Robux の初期スタイプのスタイプを受け取ることができ
プレミアムメンバーシップがエクスペリエンスを楽しむための「必要条件」であるべきではないことを覚えてください。プレミアムメンバーのインセンティブを実装するときは、これらのベストプラクティスに従うことを強くお勧めします:
- エクスペリエンスの 説明 内でアップグレードの利点を正直に説明します。
- Robux 以外のエクスペリエンスの報酬をコントロールしないことを約束しないでください。
- プレミアムでないメンバーがエクスペリエンスに入るときは、モーダルを「ペイウォール」として表示しないでください。
- 限定 マーチャンダイズ をプレミアムメンバーに提供することを検討してくださいが、プレミアムメンバー以外のタクティカルゲームプレイアドバンテージを提供しないでください、例えば、プレミアムメンバーでないメンバーがコンペテートできない超強力な武器の陣。
メンバーシップをチェック中
プレミアムメンバーシップまたは モーダル を転送する前に、ユーザーの MembershipType プロパティをチェックして、すでに購読しているかどうかを確認します。
local Players = game:GetService("Players")local player = Players.LocalPlayerif player.MembershipType == Enum.MembershipType.Premium then-- 特にプレミアムメンバーのために何かを取りましょうend
モーダルをトリガーする
Class.MarketplaceService:PromptPremiumPurchase()|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
-- 購入モーダルを表示するためには、デバウンスを使用して最大で数秒ごとに 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)
-- メンバーシップの変更イベントを処理する
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)