リワード付き動画広告を使用すると、ユーザーがクリックして再生する動画広告を視聴することで報酬を得られるように、ゲーム内に報酬メカニズムを実装できます。リワード付き動画は、6秒から30秒のフルスクリーン広告で、視聴を終えたユーザーにアイテムを報酬として付与します。
リワード付き動画広告は次のことを可能にします:
- より多くのユーザーを収益化する。
- ユーザーあたりの広告収益を増加させ、数百のブランドからの需要を取り込む。
- ユーザーのプレイ時間を向上させ、ゲームからのより大きなエンゲージメントを実現する。
リワード付き動画広告を実装する前に、ゲーム内のどこに広告を配置したいか、ユーザーにどのアイテムを報酬として提供するかを考慮してください。次の点に留意してください:
- トラフィックの多いエリアを利用する:リワード付き動画での収益は、ゲーム内の広告に関与するユーザーの数に依存します。ロビーやメニューにリワード付き動画を配置して高いトラフィックを促進します。これらは、ユーザーがプレイを開始する際に最も関与しやすい場所です。
- 自然なゲームプレイのブレークを使用する:ゲームプレイの中断を避けるため、ユーザーがレベルをクリアしたとき、チャレンジを始める前、ライフやリソースがなくなったときなどの自然なゲームプレイのブレークでリワード付き動画を実装します。
- プロンプトで発見を促進する:ユーザーがゲーム内でリワード付き動画広告を見つけやすくするために、簡単にアクセスできる報酬プロンプトを使用し、1〜2クリックで済むようにします。「この広告を見て2倍のコインを獲得!」などの明確な行動喚起を設けて、ユーザーにアクションを明示します。
- 意味のある報酬を提供する:3〜10 Robuxに相当する報酬を推奨します。ブースター、ゲーム内通貨、追加のライフ、一時的な特典などのアイテムを使用します。
- コンプライアンスを確保する:ユーザーに広告に関与していることを明確に開示し、報酬を得るためにユーザーが何をしなければならないか、報酬が何であるかを説明します。動画広告の報酬はランダム化されたアイテムではありえません。
リワード付き動画広告の実装
リワード付き動画広告を実装するには:
- 適格要件を満たしていることを確認します。これには、13歳以上であること、IDが確認されたRobloxアカウントを持つこと、月間に少なくとも2000人以上のユニークビジターがいる公開ゲームを持つことが含まれます。
- ユーザーに広告を視聴させるために報酬を与えたいアイテムを選択します。既存の開発者製品を選択するか、新しい製品を作成できます。
実装後、分析を使用して主要な指標を理解し、リワード付き動画広告の収益を最適化できます。
動画広告のセットアップ
ゲーム内にリワード付き動画広告を設定するには:
- Creationsに移動し、ゲームを選択します。
- Monetization ⟩ Ads ⟩ Settingsに進みます。
- Rewarded Video ⟩ Servingの下で、Serving enabledトグルをオンにします。

- ユーザーに付与する報酬を選択します。報酬がまだ存在しない場合は、クリエイターハブで新しい開発者製品を作成します。この開発者製品は、場所がある特定のユニバース用に作成される必要があります。
- 動画広告が再生される前にユーザーが押すべきボタンを挿入します。
クライアント側の実装
クライアント側でリワード付き動画広告を実装するには:
- ゲームに挿入したボタンに新しい LocalScript を追加します。
- 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 メソッドを使用して、ユーザーに動画広告を再生します。
- (オプション)ゲーム内の個々の動画広告の配置を追跡するために placementId を追加します。
- 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に移動し、ゲームを選択します。
- Monetization ⟩ Ads ⟩ Placementsに進みます。
- 配置を作成をクリックします。
- 配置の名前を入力し、作成をクリックします。
新しい配置は、ユニークなPlacement IDを持つ配置テーブルに追加されます。このPlacement IDは、ShowRewardedVideoAdAsyncメソッドで使用して、ゲーム内の個々の動画広告を区別し、指標を追跡するために使用できます。
広告機会
RegisterAdOpportunityAsyncを使用して、ユーザーがリワード付き動画広告を視聴する機会がどれだけあったか、実際に動画広告を視聴した割合を追跡します。
オプションのパラメーターとしてPlacement 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番目のパラメータは、クリエイターハブで生成されたオプションのPlacement ID(番号)パラメータです。
-- Placement IDを提供しない場合、広告の機会はデフォルトの配置の下で追跡されます。
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("広告機会の登録に失敗しました:", err)
end
予想される支出を除外
過去の行動や購買習慣に基づいて、特定のユーザーはゲーム内での購入を行う可能性が高いです。収益の損失リスクを減らすために、支出の可能性が高いユーザーをリワード付き動画広告の視聴から除外することができます。
この設定は、ユーザーに動画広告を視聴するか、その広告から報酬を購入するかの選択肢を与える予定がある場合にのみ有効にすることをお勧めします。動画広告を通じて提供する報酬がユニークで購入不可能な場合は、この設定を有効にしないことをお勧めします。
支出の可能性が高いユーザーがリワード付き動画広告を見るのを防ぐには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- Monetization ⟩ Ads ⟩ Settingsに進む。
- リワード付き動画広告から最も可能性の高い購買者を除外するトグルをオンにします。

収益の推定
計算機を使用して、ゲームにリワード動画広告を実装する前に収益を推定します。
潜在的な収益は、過去7日間にゲームを訪れた広告対象のユーザー数、ユーザーあたりの広告表示数、及び予想EPM(1000インプレッションあたりの収益)を掛け算して計算されます。
ユーザーが広告付き動画広告を実装する際に制御できる主な変数は、ユーザーあたりの1日の広告表示回数です。ユーザーが動画広告を自然に視聴することを促すユーザー体験を設計してください。例えば、ほとんどのユーザーに1日に少なくとも1つの広告を視聴させたい場合は、広告の配置をアクセスしやすくし、見つけやすくします。価値のある報酬を提供し、コアのゲームプレイループに結びつけることで、ユーザーを引きつけ、広告のインプレッション数を増やすことができます。
計算機を使用するには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- Monetization ⟩ Ads ⟩ Eligibilityに進む。
- Ad formatの下で、リワード付き動画を選択します。
- ユーザーあたりの1日の広告表示回数スライダーを調整して、週ごとの潜在的なリワード付き動画広告収益の数値を更新し、潜在的な収益を確認します。

分析
分析指標を使用して、リワード付き動画広告の効果を評価し、異なる報酬タイプをテストして視聴者に最も響くものを特定し、ユーザーが報酬を取得するために動画広告全体をどれくらいの頻度で視聴するかを測定します。
リワード付き動画広告の指標にアクセスするには:
- クリエイターダッシュボードで、Creationsに移動し、ゲームを選択します。
- Monetization ⟩ Ads ⟩ Analyticsに進む。
- リワード付き動画でフィルタリングして、利用可能なすべての指標を確認します。
| 指標 | 説明 |
|---|---|
| 収益(Robux) | リワード付き動画広告から得たRobuxの総収益額。 異なる行では、ゲーム内の異なる広告配置に対するこの指標が表示されます。 |
| 体験レベルの収益化ファネル | この指標では、次のことがわかります:
|
| 提供率 | 広告リクエストが広告として応答された割合。 |
| EPM(Earnings per Mille) | 1000インプレッションあたりの実際のRobux収益。総収益をインプレッション数(千単位)で割ることで計算されます。 異なる行では、ゲーム内の異なる広告配置に対するこの指標が表示されます。 |
| 広告機会 | ユーザーが動画広告を視聴する機会があった回数。この指標を使用して、ユーザーが動画広告を視聴する機会がどれだけあったか、実際にその機会を取った回数を追跡します。 異なる行では、ゲーム内の異なる広告配置に対するこの指標が表示されます。 |
| インプレッション | ゲーム内で表示されたリワード付き動画広告の数。 異なる行では、ゲーム内の異なる広告配置に対するこの指標が表示されます。 |
| 報酬 | ゲーム内での動画広告視聴に対して付与された報酬の数。 異なる行では、ゲーム内の異なる広告配置に対するこの指標が表示されます。 |
| DUV(Daily Unique Viewers) | 1日にゲーム内で1つ以上の動画広告を視聴したユニークユーザーの数。ビューはインプレッションとして定義されます。 このデータは1日遅れで更新されます。 |
| AEPDUV(Average Earning Per Daily Unique Viewer) | リワード付き動画広告の1日のユニークビューアあたりの収益。 このデータは1日遅れで更新されます。 |
| 適格な日次アクティブユーザー | 1日にリワード付き動画広告を視聴する資格があったゲームのユニークなユーザーの数。 このデータは1日遅れで更新されます。 |
| DUV/eDAU | ゲームを訪れ、1日に1つ以上の動画広告を視聴した広告対象ユーザーの割合。 |
| オプトイン率 | ゲーム内の広告に関与している広告対象ユーザーの割合。 |
| 頻度 | ユーザーが1日にゲーム内で視聴している広告の数。 |
実装のリスクを減らすための実験
コミュニティが新しいリワード付き動画広告の配置にどのように反応するかわからない場合は、実験を使用して最初にユーザーの割合に配置をロールアウトし、エンゲージメントとリテンションのリアルタイムの変化を測定してから、全てのオーディエンスに配置をロールアウトできます。
適格要件
リワード広告システムの悪用を防止し、可能な限り最良のユーザー体験を提供するために、リワード付き動画広告を実装する際は適格要件に従う必要があります。
| ゲーム | ゲームは次の条件を満たす必要があります:
|
| パブリッシャー | パブリッシャーは次の条件を満たす必要があります:
|
| 報酬 | 動画広告を視聴することで与えられる報酬は:
|
ベストプラクティス
リワード付き動画広告から最大限の利益を得るために必ず以下を行ってください:
- 広告を表示する予定の瞬間にできるだけ近いタイミングで GetAdAvailabilityNowAsync を呼び出します。例えば、ショップメニューに「報酬を得るために動画広告を視聴」ボタンがある場合、ユーザーがショップメニューを開いたときにのみ GetAdAvailabilityNowAsync を呼び出すべきです。このアプローチでは、広告が不要にメモリに保持されることを防ぎ、CPM(千インプレッションあたりのコスト)や収益の最適化に役立ちます。
- ユーザーが広告を視聴した後、他に視聴できる広告があるかどうかを確認するために GetAdAvailabilityNowAsync を呼び出します。
- 分析を使用して、ゲームプレイを妨げることなくユーザーエンゲージメントを促進するために、動画広告の最適な配置を特定します。
- ユーザーに報酬を得るために動画広告を視聴する機会を提供するときに、広告機会を追跡します。埋められたリクエスト、広告機会、広告インプレッションの比率に注意を払い、広告を見つけやすくする必要があるか、報酬をもっと魅力的にする必要があるかを判断します。
最適な報酬戦略を確保するために、報酬は次のようにすることをお勧めします:
- すべての適格ユーザーが動画に関与するように、目立つ報酬プロンプトを設ける。
- ゲームプレイに関連し、コアゲームメカニクスと一致させる。例えば、戦闘ゲームでは追加のライフ、ロールプレイングゲームでは新しいカスタマイズオプション。
- ユーザーがゲームの進行に合わせて価値を維持できるようにスケーリングする。
- ユーザーにゲーム内の進行、収集、カスタマイズ、または競争を促す。
- ユーザーがライフを失った後や、難しいレベルをクリアした後など、戦略的な瞬間に提供する。
- ゲーム内の進行を軽視しないように、あまりにも強力でない適切な間隔で提供する。
- エンゲージメントを増やすために、限定的または稀な報酬を提供する。