Pelajari
Kelas Engine
AdService
Tidak Dapat Dibuat
Layanan

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.


Rangkuman
Metode
GetAdAvailabilityNowAsync(adFormat: Enum.AdFormat):GetAdAvailabilityNowResult
GetCampaignEligibilityAsync(campaignId: string,player: Player?):GetCampaignEligibilityResult
RegisterAdOpportunityAsync(instance: Instance,placementId: number?):()
RegisterDisclosureButton(disclosureButton: GuiButton,adIntegrationPlacementId: string):()
ShowVideoAd():()
Tidak digunakan lagi
Acara
VideoAdClosed(adShown: boolean):RBXScriptSignal
Tidak digunakan lagi
Anggota yang Diwariskan

Referensi API
Metode
CreateAdRewardFromDevProductId
Kemampuan: Monetization
AdService:CreateAdRewardFromDevProductId(devProductId:number):AdReward
Parameter
devProductId:number
Memberikan nilai

GetAdAvailabilityNowAsync
Hasil
Kemampuan: Monetization
AdService:GetAdAvailabilityNowAsync(adFormat:Enum.AdFormat):GetAdAvailabilityNowResult
Parameter
adFormat:Enum.AdFormat
Memberikan nilai
GetAdAvailabilityNowResult

GetCampaignEligibilityAsync
Hasil
Kemampuan: Monetization
AdService:GetCampaignEligibilityAsync(
campaignId:string, player:Player?
):GetCampaignEligibilityResult
Parameter
campaignId:string
player:Player?
Nilai Default: "nil"
Memberikan nilai
GetCampaignEligibilityResult
Contoh Kode
Contoh Integrasi Iklan
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Masukkan ID kampanye integrasi iklan Anda dari pengelola iklan di sini.
local AD_INTEGRATION_IDS = {
-- Masukkan ID penempatan integrasi iklan Anda untuk setiap aset yang Anda daftarkan sebagai bagian dari
-- kampanye integrasi iklan Anda.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Verifikasi bahwa LocalPlayer memenuhi syarat untuk melihat kampanye Anda
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Semua aset integrasi iklan harus disembunyikan secara default. Setelah Anda tahu bahwa
-- pemain memenuhi syarat, maka aman untuk mulai menampilkan aset integrasi iklan.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- Jangan lupa untuk mendaftarkan tombol pengungkapan iklan Anda agar pemain tahu siapa yang membayar untuk iklan tersebut!
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
Hasil
Kemampuan: Monetization
AdService:RegisterAdOpportunityAsync(
instance:Instance, placementId:number?
):()
Parameter
instance:Instance
placementId:number?
Memberikan nilai
()
Contoh Kode
Lacak peluang iklan
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Buat ScreenGui dan Tombol
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Daftarkan tombol dengan AdService
local success, err = pcall(function()
-- Parameter kedua adalah Parameter ID Penempatan (Nomor) opsional yang dihasilkan di Creator Hub.
-- Jika Anda memilih untuk tidak memberikan ID Penempatan, kesempatan iklan akan dilacak di bawah penempatan default.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Gagal mendaftarkan kesempatan iklan:", err)
end

RegisterDisclosureButton
Kemampuan: Monetization
AdService:RegisterDisclosureButton(
disclosureButton:GuiButton, adIntegrationPlacementId:string
):()
Parameter
disclosureButton:GuiButton
adIntegrationPlacementId:string
Memberikan nilai
()

ShowRewardedVideoAdAsync
Hasil
Kemampuan: UI, Monetization
AdService:ShowRewardedVideoAdAsync(
player:Player, reward:AdReward, placementId:number?
Parameter
player:Player
reward:AdReward
placementId:number?
Memberikan nilai
Contoh Kode
Tampilkan Iklan Video Yang Diberi Hadiah
-- Dalam sebuah skrip di klien:
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")
-- Klien belum memiliki iklan yang siap; sembunyikan tombolnya
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Tampilkan tombol jika ada iklan yang tersedia
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- Hasil IsAvailable hanya bagus untuk satu putaran iklan. Untuk memutar iklan lain, Anda harus memanggil
-- GetAdAvailabilityNowAsync dan periksa ketersediaan lagi.
rewardedVideoButton.Visible = false
end)
-- Dalam sebuah skrip di server:
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 -- Masukkan ID produk dev Anda di sini
local function grantReward(player: Player)
print(`memberikan hadiah kepada {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(`pemain {receiptInfo.PlayerId} mendapatkan hadiah video yang diberi hadiah saya dengan menonton iklan`)
else
print(`pemain {receiptInfo.PlayerId} membeli produk video yang diberi hadiah saya dengan Robux`)
end
-- Berikan hadiah kepada pemain
grantReward(player)
else
-- Tangani produk lainnya
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
Tidak digunakan lagi

UnregisterAdOpportunity
Kemampuan: Monetization
AdService:UnregisterAdOpportunity(instance:Instance):()
Parameter
instance:Instance
Memberikan nilai
()

Acara
VideoAdClosed
Tidak digunakan lagi

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.