報酬付き動画広告を使用すると、ユーザーがクリックして再生する動画広告を視聴することを奨励するために、ゲーム内に報酬メカニズムを実装できます。報酬付き動画は、6秒から30秒の間続く全画面広告で、視聴が完了した後にアイテムをユーザーに報酬として提供します。
報酬付き動画広告を使用すると、次のことが可能になります:
- より多くのユーザーから収益を得ることができます。
- ユーザーあたりの広告収益を増加させ、数百のブランドからの需要を引き寄せます。
- ユーザーのプレイ時間を改善し、ゲームからのエンゲージメントを高めます。
このページでは、設定、実装、分析、および適格性について説明します。配置、報酬戦略、パフォーマンスのヒントについては、報酬付き動画プレイブックを参照してください。
報酬付き動画広告の実装
報酬付き動画広告を実装するには:
- 適格性要件を満たしていることを確認します。これには、13歳以上であること、IDが確認されたRobloxアカウントを持っていること、月に少なくとも2,000人のユニークビジターがいる公開ゲームを持っていることが含まれます。
- 広告を視聴することでユーザーに報酬を与えたいアイテムを選択します。既存の開発者製品を選択するか、新しいものを作成できます。
実装後は、分析を使用して主要な指標を理解し、報酬付き動画広告の収益を最適化できます。
動画広告の設定
ゲーム内に報酬付き動画広告を設定するには:
- Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ 広告 ⟩ 設定に移動します。
- 報酬付き動画 ⟩ 配信の下で、配信を有効にするトグルをオンにします。

- ユーザーに付与したい報酬を選択します。報酬がまだ存在しない場合は、クリエイターハブで新しい開発者製品を作成します。この開発者製品は、場所がある特定のユニバース用に作成されている必要があります。
- 動画広告が再生される前にユーザーが押す必要があるボタンを挿入します。
クライアント側の実装
クライアント側で報酬付き動画広告を実装するには:
ゲームに挿入したボタンに新しい LocalScript を追加します。
AdService:GetAdAvailabilityNowAsync() を使用して、広告を表示する前に広告が利用可能かどうかを確認します。
-- サービス
local AdService = game:GetService("AdService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- StarterGui ⟩ ScreenGui ⟩ ShopFrame ⟩ RewardedAdButton
local PlayerGui = Players.LocalPlayer:WaitForChild("PlayerGui")
local ScreenGui = PlayerGui:WaitForChild("ScreenGui")
local ShopFrame = ScreenGui:WaitForChild("ShopFrame")
local RewardedAdButton = ShopFrame:WaitForChild("RewardedAdButton")
-- StarterGui ⟩ ScreenGui ⟩ OpenShopButton
local OpenShopButton = ScreenGui:WaitForChild("OpenShopButton")
-- クライアントとサーバー間の通信イベント
local RewardedAdEvent = ReplicatedStorage:WaitForChild("RewardedAdEvent")
local INELIGIBLE_RESULTS = {
Enum.AdAvailabilityResult.PlayerIneligible,
Enum.AdAvailabilityResult.DeviceIneligible,
Enum.AdAvailabilityResult.PublisherIneligible,
Enum.AdAvailabilityResult.ExperienceIneligible,
}
local function isIneligible(result: Enum.AdAvailabilityResult)
for _, inEligibleResult in ipairs(INELIGIBLE_RESULTS) do
if result == inEligibleResult then
return true
end
end
return false
end
function checkForAds()
local isSuccess, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if isSuccess and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
RewardedAdButton.Visible = true
return
end
if isIneligible(result.AdAvailabilityResult) then
return
end
end
RewardedAdEvent.OnClientEvent:Connect(function(isSuccess : boolean, result : Enum.ShowAdResult)
if result == Enum.ShowAdResult.ShowCompleted then
checkForAds()
end
end)
OpenShopButton.MouseButton1Click:Connect(function()
if ShopFrame.Visible then
ShopFrame.Visible = false
return
end
ShopFrame.Visible = true
checkForAds()
end)
RewardedAdButton.MouseButton1Click:Connect(function()
RewardedAdButton.Visible = false
RewardedAdEvent:FireServer()
end)サーバー側の実装
サーバー側で報酬付き動画広告を実装するには:
- ServerScriptServiceの下に新しい Script を作成します。
- CreateAdRewardFromDevProductId メソッドを使用して、報酬の開発者製品IDを渡し、AdReward オブジェクトを作成します。
- ShowRewardedVideoAdAsync メソッドを使用して、ユーザーに動画広告を再生します。
- ProcessReceipt メソッドを使用して、ユーザーが動画広告を最後まで視聴した場合に報酬を付与します。
-- サービス
local AdService = game:GetService("AdService")
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RewardedAdEvent = ReplicatedStorage:WaitForChild("RewardedAdEvent")
-- 動画広告報酬のための開発者製品IDを提供
-- この開発者製品は、この場所がある特定のユニバース用に作成されている必要があります
local DEV_PRODUCT_ID = 1919753834
RewardedAdEvent.OnServerEvent:Connect(function(player)
local isSuccess, result = pcall(function()
local reward = AdService:CreateAdRewardFromDevProductId(DEV_PRODUCT_ID)
return AdService:ShowRewardedVideoAdAsync(player, reward)
end)
RewardedAdEvent:FireClient(player, isSuccess, result)
end)
MarketplaceService.ProcessReceipt = function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
return Enum.ProductPurchaseDecision.NotProcessedYet
end
if receiptInfo.ProductId == DEV_PRODUCT_ID then
-- ここに報酬を付与するロジックを含めます
return Enum.ProductPurchaseDecision.PurchaseGranted
end
return Enum.ProductPurchaseDecision.NotProcessedYet
end配置
配置を使用して、ゲーム内の個々の報酬付き動画広告のパフォーマンスを追跡します。
報酬付き動画広告の配置を作成するには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ 広告 ⟩ 配置に移動します。
- 配置を作成をクリックします。
- 配置の名前を入力し、作成をクリックします。
新しい配置は、ユニークな配置IDを持つ配置テーブルに表示されます。この配置IDを ShowRewardedVideoAsync メソッドで使用して、ゲーム内の個々の動画広告を区別し、メトリクスを追跡できます。
広告の機会
RegisterAdOpportunityAsync を使用して、ユーザーが報酬付き動画広告を視聴する機会があった回数と、実際に動画広告を視聴した割合を追跡します。
個々の広告機会のメトリクスを追跡するために、オプションのパラメータとして配置IDを提供できます。
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- ScreenGuiとボタンを作成
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- AdServiceにボタンを登録
local success, err = pcall(function()
-- 2番目のパラメータは、クリエイターハブで生成されたオプションの配置ID(数値)です。
-- 配置IDを提供しないことを選択した場合、広告機会はデフォルトの配置の下で追跡されます。
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("広告機会の登録に失敗しました:", err)
end可能性のある支出者を除外
過去の行動や購入習慣に基づいて、特定のユーザーはゲーム内で購入を行う可能性が高くなります。収益を失うリスクを減らすために、ゲーム内で支出する可能性のあるユーザーを報酬付き動画広告から除外することができます。
この設定を有効にするのは、ユーザーが動画広告を視聴するか、その広告から報酬を購入するかを選択できる場合のみ推奨します。動画広告を通じて提供する報酬がユニークで、購入できない場合は、この設定を有効にしないことをお勧めします。
支出の可能性が高いユーザーが報酬付き動画広告を視聴しないようにするには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ 広告 ⟩ 設定に移動します。
- 最も可能性の高い購入者を報酬付き動画広告から除外するトグルをオンにします。

潜在的な収益を見積もる
計算機を使用して、ゲームに報酬付き動画広告を実装する前に収益を見積もります。
潜在的な収益は、過去7日間にゲームを訪れた広告対象ユーザーの数、ユーザーあたりに表示する可能性のある広告の数、および予測されるEPM(1,000インプレッションあたりの収益)を掛け算して計算されます。
ユーザーあたりの1日の広告ビュー数は、ゲームに報酬付き動画広告を実装する際に制御できる主な変数であるため、ユーザーが自然に広告を視聴することを促すユーザー体験を設計する必要があります。たとえば、ほとんどのユーザーに1日1回は広告を視聴させたい場合は、広告の配置をアクセスしやすく、見つけやすくします。また、価値のある報酬を提供し、コアゲームプレイループに関連付けることで、ユーザーを引き付け、総広告インプレッションを増やすことができます。
計算機を使用するには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ 広告 ⟩ 適格性に移動します。
- 広告フォーマットの下で、報酬付き動画を選択します。
- ユーザーあたりの1日の広告ビュー数スライダーを調整して、週間の潜在的な報酬付き動画広告収益の数値を更新し、潜在的な収益を確認します。

分析
分析メトリクスを使用して、報酬付き動画広告の効果を評価し、異なる報酬タイプをテストして、オーディエンスに最も響くものを特定し、ユーザーが報酬を得るために動画広告をどれだけ視聴しているかを測定します。
報酬付き動画広告のメトリクスにアクセスするには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- マネタイズ ⟩ 広告 ⟩ 分析に移動します。
- 報酬付き動画でフィルタリングして、利用可能なすべてのメトリクスを表示します。
| メトリクス | 説明 |
|---|---|
| 収益 (Robux) | ゲーム内の報酬付き動画広告から得られたRobuxの総収益額。 異なる行は、ゲーム内の異なる広告配置に対するこのメトリクスを示します。 |
| 体験レベルでのマネタイズファunnel | このメトリクスは次のことを示します:
|
| 充填率 | 広告リクエストに対して広告が返された割合。 |
| EPM (千インプレッションあたりの収益) | 1,000インプレッションあたりの実効Robux収益。総収益 / ゲーム内のインプレッション数(千単位)で計算されます。 異なる行は、ゲーム内の異なる広告配置に対するこのメトリクスを示します。 |
| 広告機会 | ユーザーが動画広告を視聴する機会があった回数。このメトリクスを使用して、ユーザーが動画広告を視聴する機会があった回数と、実際にその機会を利用して広告を視聴した割合を追跡します。 異なる行は、ゲーム内の異なる広告配置に対するこのメトリクスを示します。 |
| インプレッション | ゲーム内で表示された報酬付き動画広告の数。 異なる行は、ゲーム内の異なる広告配置に対するこのメトリクスを示します。 |
| 報酬数 | ゲーム内の動画広告視聴に対して付与された報酬の数。 異なる行は、ゲーム内の異なる広告配置に対するこのメトリクスを示します。 |
| DUV (日次ユニークビューア) | 1日にゲーム内で1つ以上の動画広告を視聴したユニークユーザーの数。ビューはインプレッションによって定義されます。 このデータは1日遅れで更新されます。 |
| AEPDUV (日次ユニークビューアあたりの平均収益) | 報酬付き動画広告のための日次ユニークビューアあたりの収益。 このデータは1日遅れで更新されます。 |
| 適格な日次アクティブユーザー | 報酬付き動画広告を視聴する資格のあるゲームのユニークな日次ユーザーの数。 このデータは1日遅れで更新されます。 |
| DUV/eDAU | ゲームを訪れ、1日に1つ以上の動画広告を視聴した広告対象ユーザーの割合。 |
| オプトイン率 | ゲーム内の広告に関与している広告対象ユーザーの割合。 |
| 頻度 | ユーザーがゲーム内で1日に視聴している広告の数。 |
実装のリスクを減らすための実験
コミュニティが新しい報酬付き動画広告の配置にどのように反応するか不明な場合は、実験を使用して、最初にユーザーの一部に配置を展開できます。これにより、配置を全オーディエンスに展開する前に、エンゲージメントやリテンションのリアルタイムの変化を測定できます。広告インプレッション、オプトイン率、広告収益を他のメトリクスと一緒に追跡するには、実験を作成する際に報酬付き動画収益メトリクスセットを選択してください。
適格性要件
報酬付き広告システムの悪用を防ぎ、可能な限り最高のユーザー体験を提供するために、報酬付き動画広告を実装する際には適格性要件に従う必要があります。
| ゲーム | ゲームは次の条件を満たす必要があります:
|
| 出版社 | 出版社として、次の条件を満たす必要があります:
|
| 報酬 | 動画広告を視聴することで得られる報酬は次の条件を満たす必要があります:
|
ベストプラクティス
配置、報酬戦略、および自己監査チェックリストについては、報酬付き動画プレイブックを参照してください。
実装に関しては、次の技術的なプラクティスに従ってください:
- 広告を表示する予定の瞬間にできるだけ近いタイミングで GetAdAvailabilityNowAsync を呼び出してください。たとえば、ショップメニューに「報酬を得るために動画広告を視聴する」ボタンがある場合、ユーザーがショップメニューを開いたときにのみ GetAdAvailabilityNowAsync を呼び出します。このアプローチは、広告が不必要にメモリに保持されるのを防ぎ、CPM(千インプレッションあたりのコスト)と収益を最適化することによって広告充填率を改善します。
- 広告が終了した後、ユーザーに別の広告を視聴する機会を提供する場合にのみ GetAdAvailabilityNowAsync() を呼び出してください。これにより、インプレッションにつながらない充填リクエストを避けることができます。
- 広告機会を使用して、ユーザーに報酬のために動画広告を視聴する機会を提供したときに追跡します。充填リクエスト、広告機会、広告インプレッションの比率を監視して、広告が見つけにくいのか、報酬が十分に魅力的でないのかを確認します。