A デベロッパー製品は、ユーザーが複数回購入できるアイテムや能力で、ゲーム内通貨、弾薬、ポーションなどがあります。

デベロッパー製品を作成する
デベロッパー製品を作成するには:
- Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ デベロッパー製品に移動します。
- デベロッパー製品を作成をクリックします。
- 製品アイコンとして表示する画像をアップロードします。画像は512x512ピクセルを超えず、円形の境界の外に重要な詳細が含まれず、.jpg、.png、または.bmp形式であることを確認してください。
- 製品の名前と説明を入力します。
- 製品のカテゴリを選択します。カテゴリは、ゲーム内ショップでアイテムを整理するために使用されます。
- Robuxで製品の価格を設定します。最小価格は1 Robux、最大価格は10億Robuxです。
- 変更を保存をクリックします。
デベロッパー製品IDを取得する
スクリプトを使用するには、デベロッパー製品IDが必要です。製品IDを取得するには:
マネタイズ ⟩ デベロッパー製品に移動します。
製品のサムネイルにカーソルを合わせ、⋯ボタンをクリックし、コンテキストメニューからアセットIDをコピーを選択します。

デベロッパー製品を販売する
デベロッパー製品を販売する前に、販売レシートを適切に処理し、ユーザーに購入した製品を付与していることを確認してください。そのためには、次のことを行う必要があります:
- ProcessReceipt APIを使用して購入レシートを確認します。ProcessReceiptは、ユーザーがゲーム外で製品を購入したことを自動的に読み取り、確認します。
- 各レシートのユーザーID、デベロッパー製品ID、およびレシートのステータスを検証します。
- レシートのステータスがオープンの場合、ユーザーに購入したデベロッパーアイテムを付与します。
- ProcessReceipt APIに対して、レシートを確認し、購入したアイテムが付与されたことを検証するメッセージで応答します。
デベロッパー製品を販売する方法は2つあります:
ゲーム内で
ゲーム内でデベロッパー製品を実装して販売するには、MarketplaceService関数を呼び出します。
GetProductInfoを使用して、デベロッパー製品に関する情報(名前や価格など)を取得し、その製品をユーザーに表示します。たとえば、ゲームのマーケットプレイス内で製品を販売できます。デベロッパー製品の場合、2番目のパラメータはEnum.InfoType.Productでなければなりません。
local MarketplaceService = game:GetService("MarketplaceService")
-- プレースホルダーIDをデベロッパー製品IDに置き換えます
local productId = 000000
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- 製品情報を表示
-- print文をUIコードに置き換えて製品を表示します
print("デベロッパー製品名: " .. productInfo.Name)
print("Robuxでの価格: " .. productInfo.PriceInRobux)
print("説明: " .. productInfo.Description)
endGetDeveloperProductsAsyncを使用して、ゲームに関連付けられたすべてのデベロッパー製品を取得します。この関数は、Pagesオブジェクトを返し、これを調査してフィルタリングし、ゲーム内ストアや製品リストGUIを構築できます。
local MarketplaceService = game:GetService("MarketplaceService")
local success, developerProducts = pcall(function()
return MarketplaceService:GetDeveloperProductsAsync()
end)
if success and developerProducts then
local firstPage = developerProducts:GetCurrentPage()
for _, developerProduct in firstPage do
-- print文をUIコードに置き換えて製品を表示します
print(field .. ": " .. value)
end
endPromptProductPurchaseを使用して、ゲーム内で製品購入を促します。ユーザーがボタンを押したり、ベンダーNPCと話したりするなどのアクションを実行したときにこの関数を呼び出すことができます。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
-- プレースホルダーIDをデベロッパー製品IDに置き換えます
local productId = 000000
local function promptProductPurchase()
local success, errorMessage = pcall(function()
MarketplaceService:PromptProductPurchase(player, productId)
end)
if success then
print("購入プロンプトが正常に表示されました")
end
endLocalScript内で関数を組み合わせることもできます。たとえば、ボタンやベンダーNPCのようなUI要素を作成し、GetProductInfo()を使用してその要素に既存のデベロッパー製品を接続し、製品が販売中かどうかを確認し、ユーザーがそれをクリックするたびにPromptProductPurchase()を使用して購入を促すことができます。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local button = script.Parent
-- プレースホルダーIDをデベロッパー製品IDに置き換えます
local productId = 000000
-- ユーザーがUIボタンをクリックしたときに製品情報を取得します
button.MouseButton1Click:Connect(function()
local success, productInfo = pcall(function()
return MarketplaceService:GetProductInfo(productId, Enum.InfoType.Product)
end)
if success and productInfo then
-- 製品が販売中かどうかを確認します
if productInfo.IsForSale then
print("これは販売中です")
-- 製品購入を促します
MarketplaceService:PromptProductPurchase(player, productId)
else
-- 製品が販売中でないことを通知します
print("この製品は現在販売されていません。")
end
else
print("製品情報の取得中にエラーが発生しました: " .. tostring(productInfo))
end
end)ゲーム外で
ゲーム外でデベロッパー製品の購入を可能にするには、ProcessReceipt APIを使用する必要があります。ユーザーがゲームの詳細ページのストアタブで購入を行った後、ProcessReceiptを使用してその購入を確認し、ユーザーがゲームに入るときにアイテムを付与する必要があります。
外部販売を有効にする
Robloxは、あなたのリストされたデベロッパー製品やゲームパスをゲームの外部で表示します。これには、Robloxのホームページ、検索結果、プレイヤーがRobuxを購入した後の購入ページが含まれます。プレイヤーはアイテムを購入し、その後ゲームに参加することができます。
デベロッパー製品を外部販売の対象にするには:
- クリエイターハブで、マネタイズ ⟩ ショップに移動します。
- デベロッパー製品をリストされたとしてマークします。
- 製品のためにProcessReceiptを正しく実装していることを確認します。
ゲームパスはProcessReceiptの修正を必要としませんが、ゲームの外部に表示されるためにはリストされた必要があります。プレイヤーが外部でそれを認識できるように、各デベロッパー製品にカスタムアイコンを追加することをお勧めします。アイコンを追加しない場合、Robloxはデフォルトのアイコンを表示します。
ProcessReceipt APIとその実装に関する詳細については、ProcessReceiptページを参照してください。
フラグが付けられたデベロッパー製品を修正する
Robloxがあなたのリストされたデベロッパー製品の1つにProcessReceiptの問題を検出した場合、クリエイターハブ ⟩ マネタイズ ⟩ ショップにバナーが表示され、影響を受けた製品のレポートにリンクされます。修正が必要なデベロッパー製品がない場合、バナーやレポートは表示されません。
フラグが付けられたデベロッパー製品を解決するには:
- バナーからレポートを開きます。レポートには、ProcessReceiptの修正が必要な各リストされたデベロッパー製品が、その製品名と製品IDとともにリストされています。
- Roblox Studioでゲームを開き、フラグが付けられた製品のProcessReceipt実装を修正します。
- ゲームを公開します。
- レポートで修正された製品を選択し、修正済みとしてマークをクリックします。
修正された製品はレポートから外れ、再びゲームの外部に表示される資格を得ます。
制限事項
- ゲームの外部で販売されるためには、デベロッパー製品はリストされたであり、ProcessReceiptが正しく実装されている必要があります。
- リストされていないデベロッパー製品は、ショップやゲームの外部に表示されることはありません。
- ゲームの外部でデベロッパー製品を販売しても、標準の収益や購入処理は変更されません。
よくある質問
RobloxがProcessReceiptの修正が必要なリストされたデベロッパー製品を検出した場合にのみ、バナーが表示されます。バナーが表示されない場合は、アクションは必要ありません。
いいえ。ProcessReceiptレポートはデベロッパー製品にのみ適用されます。リストされたデベロッパー製品とゲームパスの両方が、ゲームの外部で表示され、販売されることができます。
いいえ。外部販売はプレイヤーにアイテムを見つけて購入するための追加の場所を提供します。購入処理と標準の収益は変更されません。
デベロッパー製品の購入を処理する
ユーザーがデベロッパー製品を購入した後、その取引を処理し、記録する必要があります。これを行うには、ServerScriptService内のScriptを使用してProcessReceipt関数を使用します。
ProcessReceipt APIとその実装に関する詳細については、ProcessReceiptページを参照してください。
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local productFunctions = {}
-- 例: 製品ID 123123はユーザーを完全な健康状態に戻します
productFunctions[123123] = function(receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
humanoid.Health = humanoid.MaxHealth
-- 購入が成功したことを示します
return true
end
end
-- 例: 製品ID 456456はユーザーに100ゴールドコインを授与します
productFunctions[456456] = function(receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local gold = leaderstats and leaderstats:FindFirstChild("Gold")
if gold then
gold.Value += 100
return true
end
end
local function processReceipt(receiptInfo)
local userId = receiptInfo.PlayerId
local productId = receiptInfo.ProductId
local player = Players:GetPlayerByUserId(userId)
if player then
-- デベロッパー製品IDに関連付けられたハンドラ関数を取得し、それを実行しようとします
local handler = productFunctions[productId]
local success, result = pcall(handler, receiptInfo, player)
if success then
-- ユーザーはアイテムを受け取りました
-- 取引を確認するために"PurchaseGranted"を返します
return Enum.ProductPurchaseDecision.PurchaseGranted
else
warn("レシートの処理に失敗しました:", receiptInfo, result)
end
end
-- ユーザーのアイテムを付与できませんでした
-- "NotProcessedYet"を返し、次回ユーザーがゲームに参加したときに再試行します
return Enum.ProductPurchaseDecision.NotProcessedYet
end
-- コールバックを設定します
-- これは、1つのサーバーサイドスクリプトによって1回のみ行うことができます
MarketplaceService.ProcessReceipt = processReceiptゲーム内ストアをパーソナライズする
製品インテリジェンスAPIを使用して、ユーザーにデベロッパー製品をソートおよび推奨できます。ゲーム内ストアをパーソナライズすることで、各ユーザーに最も関連性の高いアイテムを表示し、エンゲージメントと収益を向上させることができます。ユーザーの好みに合わせてデベロッパー製品を調整することで、発見を改善し、コンバージョン率を高め、新しいマネタイズの機会を開放できます。
販売用のデベロッパー製品をランク付けする
RankProductsAsyncは、製品IDのリストを受け取り、それらの製品のパーソナライズされた順序付きリストを返します。このメソッドを使用して、ゲーム内ストアでユーザーにパーソナライズされたアイテムの推奨を提供できます。

local MarketplaceService = game:GetService("MarketplaceService")
-- ランク付けしたい製品の配列を作成します
local productIdentifiers = {
{InfoType = Enum.InfoType.GamePass, Id = 123},
{InfoType = Enum.InfoType.Product, Id = 456},
{InfoType = Enum.InfoType.Product, Id = 789}
}
-- エラーを処理するために保護された呼び出しを行います
local success, rankedProducts = pcall(function()
return MarketplaceService:RankProductsAsync(productIdentifiers)
end)
if not success then
error("製品のランク付けに失敗しました")
end
-- 戻り値のアイテムをストアに読み込みます
for i, rankedItem in ipairs(rankedProducts) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- ストアに製品を追加するロジック
endトップデベロッパー製品を表示する
RecommendTopProductsAsyncは、InfoType値の配列を受け取り、ユーザーが最も関与し、購入する可能性が高い最大50アイテムを返します。このメソッドを使用して、ゲーム内ストアに「トップピック」セクションを作成できます。
推奨が決定できない場合、RecommendTopProductsAsyncは0アイテムを返します。
稀に、ランキングモデルへの呼び出しが遅くなることがあります。ユーザーに遅延を防ぐために、task.spawnを使用してRecommendTopProductsへの呼び出しを非ブロッキングにすることをお勧めします。

local MarketplaceService = game:GetService("MarketplaceService")
-- 推奨に含めたい製品タイプの配列を作成します -- この例では、パスとデベロッパー製品の両方を含めています
local productTypes = {Enum.InfoType.GamePass, Enum.InfoType.Product}
-- エラーを処理するために保護された呼び出しを行います
local success, topRankedItems = pcall(function()
return MarketplaceService:RecommendTopProductsAsync(productTypes)
end)
if not success then
error("製品のランク付けに失敗しました")
end
-- 戻り値のアイテムをストアに読み込みます
-- ユーザーがもはや購入できないデベロッパー製品など、topRankedItemsから不適格なアイテムをフィルタリングすることを確認してください
for i, rankedItem in ipairs(topRankedItems) do
local productIdentifier = rankedItem.ProductIdentifier
local productInfo = rankedItem.ProductInfo
-- ...
-- ストアに製品を追加するロジック
endデベロッパー製品の分析
デベロッパー製品の分析を使用して、個々の製品の成功を分析し、トレンドを特定し、将来の収益を予測します。
分析を使用すると:
- 選択した期間内のトップデベロッパー製品を表示できます。
- 時系列グラフで最大8つのトップセールアイテムを表示して、全体の販売と純収益を分析できます。
- カタログを監視し、アイテムを販売と純収益でソートできます。
デベロッパー製品の分析にアクセスするには:
- Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ デベロッパー製品に移動します。
- 分析タブを選択します。
