學習
引擎類別
AdService
無法建立
服務

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡


概要
方法
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()
-- 第二個參數是可選的 Placement ID (數字) 參數,會在 Creator Hub 中生成。
-- 如果您選擇不提供 Placement 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} 以 Robux 購買我的獎勵視頻產品`)
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 是我們在美國及其他國家地區的部分註冊與未註冊商標。