学ぶ
エンジンクラス
AdService
作成できません
サービス

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。


概要
方法
GetAdAvailabilityNowAsync(adFormat: Enum.AdFormat):GetAdAvailabilityNowResult
GetCampaignEligibilityAsync(campaignId: string,player: Player?):GetCampaignEligibilityResult
RegisterAdOpportunityAsync(instance: Instance,placementId: number?):()
RegisterDisclosureButton(disclosureButton: GuiButton,adIntegrationPlacementId: string):()
ShowVideoAd():()
非推奨
イベント
継承されたメンバー

APIリファレンス
方法
CreateAdRewardFromDevProductId
機能: Monetization
AdService:CreateAdRewardFromDevProductId(devProductId:number):AdReward
パラメータ
devProductId:number
戻り値

GetAdAvailabilityNowAsync
イールド
機能: Monetization
AdService:GetAdAvailabilityNowAsync(adFormat:Enum.AdFormat):GetAdAvailabilityNowResult
パラメータ
adFormat:Enum.AdFormat
戻り値
GetAdAvailabilityNowResult

GetCampaignEligibilityAsync
イールド
機能: Monetization
AdService:GetCampaignEligibilityAsync(
campaignId:string, player:Player?
):GetCampaignEligibilityResult
パラメータ
campaignId:string
player:Player?
既定値: "nil"
戻り値
GetCampaignEligibilityResult
コードサンプル
例の広告統合
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- ここに広告統合キャンペーンのIDを入力してください。
local AD_INTEGRATION_IDS = {
-- 登録した各アセットの広告統合プレースメントIDを入力してください。
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- LocalPlayerがあなたのキャンペーンを表示する資格があるかを検証します
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- すべての広告統合アセットはデフォルトで非表示にする必要があります。プレイヤーが
-- 資格があることを確認したら、安全に広告統合アセットを表示し始めることができます。
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- プレイヤーが広告の支払いをしている人を知るために広告開示ボタンを登録するのを忘れないでください!
AdService:RegisterDisclosureButton(
brandedBuildingModelDisclosureBillboardGui.adDisclosureButton,
AD_INTEGRATION_IDS.BrandedBuilding
)
brandedBuildingModelDisclosureBillboardGui.Parent = Players.LocalPlayer.PlayerGui
brandedBuildingModel.Parent = game.Workspace
local brandedScreenGui = ReplicatedStorage.adIntegration.screenGui
AdService:RegisterDisclosureButton(brandedScreenGui.adDisclosureButton, AD_INTEGRATION_IDS.BrandedScreenGui)
brandedScreenGui.Parent = Players.LocalPlayer.PlayerGui
end

RegisterAdOpportunityAsync
イールド
機能: Monetization
AdService:RegisterAdOpportunityAsync(
instance:Instance, placementId:number?
):()
パラメータ
instance:Instance
placementId:number?
戻り値
()
コードサンプル
広告機会を追跡する
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 番目のパラメータは、Creator Hub で生成されたオプショナルのプレースメント ID (番号) パラメータです。
-- プレースメント ID を提供しない場合、広告機会はデフォルトのプレースメントの下で追跡されます。
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("広告機会の登録に失敗しました:", err)
end

RegisterDisclosureButton
機能: Monetization
AdService:RegisterDisclosureButton(
disclosureButton:GuiButton, adIntegrationPlacementId:string
):()
パラメータ
disclosureButton:GuiButton
adIntegrationPlacementId:string
戻り値
()

ShowRewardedVideoAdAsync
イールド
機能: UI, Monetization
AdService:ShowRewardedVideoAdAsync(
player:Player, reward:AdReward, placementId:number?
パラメータ
player:Player
reward:AdReward
placementId:number?
コードサンプル
報酬付き動画広告を表示
-- クライアントのスクリプト内で:
local AdService = game:GetService("AdService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local rewardedVideoButton: GuiButton =
Players.LocalPlayer.PlayerGui:WaitForChild("myAdGui"):WaitForChild("watchRewardedVideoButton")
local watchRewardedVideoAdRemoteEvent: RemoteEvent = ReplicatedStorage:WaitForChild("watchRewardedVideoAd")
-- クライアントにはまだ広告が準備されていません; ボタンを非表示にします
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- 広告が利用可能な場合はボタンを表示します
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- IsAvailable の結果は単一の広告プレイにしか有効ではありません。別の広告を再生するには、
-- GetAdAvailabilityNowAsyncを呼び出し、再度利用可能性を確認する必要があります。
rewardedVideoButton.Visible = false
end)
-- サーバーのスクリプト内で:
local AdService = game:GetService("AdService")
local MarketplaceService = game:GetService("MarketplaceService")
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local watchRewardedVideoAdRemoteEvent: RemoteEvent = ReplicatedStorage:WaitForChild("watchRewardedVideoAd")
local REWARDED_VIDEO_PRODUCT_ID = 123 -- ここにあなたの開発プロダクトIDを入力してください
local function grantReward(player: Player)
print(`{player.Name} に報酬を与えています!`)
end
MarketplaceService.ProcessReceipt = function(receiptInfo)
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
return Enum.ProductPurchaseDecision.NotProcessedYet
end
if receiptInfo.ProductId == REWARDED_VIDEO_PRODUCT_ID then
if receiptInfo.ProductPurchaseChannel == Enum.ProductPurchaseChannel.AdReward then
print(`プレイヤー {receiptInfo.PlayerId} が広告を視聴して報酬を獲得しました`)
else
print(`プレイヤー {receiptInfo.PlayerId} がロブックスで私の報酬付き動画プロダクトを購入しました`)
end
-- プレイヤーに報酬を与えます
grantReward(player)
else
-- 他のプロダクトを処理します
end
return Enum.ProductPurchaseDecision.PurchaseGranted
end
watchRewardedVideoAdRemoteEvent.OnServerEvent:Connect(function(player)
local reward = AdService:CreateAdRewardFromDevProductId(REWARDED_VIDEO_PRODUCT_ID)
AdService:ShowRewardedVideoAdAsync(player, reward)
end)

ShowVideoAd
非推奨

UnregisterAdOpportunity
機能: Monetization
AdService:UnregisterAdOpportunity(instance:Instance):()
パラメータ
instance:Instance
戻り値
()

イベント
VideoAdClosed
非推奨

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。