Engine Class
AdService
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
สรุป
วิธีการ
CreateAdRewardFromDevProductId(devProductId: number):AdReward |
GetAdAvailabilityNowAsync(adFormat: Enum.AdFormat):GetAdAvailabilityNowResult |
GetCampaignEligibilityAsync(campaignId: string,player: Player?):GetCampaignEligibilityResult |
RegisterAdOpportunityAsync(instance: Instance,placementId: number?):() |
RegisterDisclosureButton(disclosureButton: GuiButton,adIntegrationPlacementId: string):() |
ShowRewardedVideoAdAsync(player: Player,reward: AdReward,placementId: number?):Enum.ShowAdResult |
ShowVideoAd():() |
UnregisterAdOpportunity(instance: Instance):() |
เหตุการณ์
VideoAdClosed(adShown: boolean):RBXScriptSignal |
เอกสารอ้างอิงเกี่ยวกับ API
วิธีการ
CreateAdRewardFromDevProductId
GetAdAvailabilityNowAsync
พารามิเตอร์
ส่งค่ากลับ
GetAdAvailabilityNowResult
GetCampaignEligibilityAsync
ส่งค่ากลับ
GetCampaignEligibilityResult
ตัวอย่างโค้ด
ตัวอย่างการรวมโฆษณา
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- ใส่หมายเลขแคมเปญการรวมโฆษณาของคุณจาก Ads Manager ที่นี่。
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
endRegisterAdOpportunityAsync
ส่งค่ากลับ
()
ตัวอย่างโค้ด
ติดตามโอกาสโฆษณา
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)
endRegisterDisclosureButton
ShowRewardedVideoAdAsync
AdService:ShowRewardedVideoAdAsync(
ส่งค่ากลับ
ตัวอย่างโค้ด
แสดงโฆษณาวิดีโอที่ได้รับรางวัล
-- ในสคริปต์บนไคลเอนต์:
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
เหตุการณ์
VideoAdClosed