배우기
엔진 클래스
AdService
만들 수 없음
서비스

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.


요약
메서드
GetAdAvailabilityNowAsync(adFormat: Enum.AdFormat):GetAdAvailabilityNowResult
GetCampaignEligibilityAsync(campaignId: string,player: Player?):GetCampaignEligibilityResult
RegisterAdOpportunityAsync(instance: Instance,placementId: number?):()
RegisterDisclosureButton(disclosureButton: GuiButton,adIntegrationPlacementId: string):()
ShowVideoAd():()
사용되지 않음
이벤트
VideoAdClosed(adShown: boolean):RBXScriptSignal
사용되지 않음
상속된 멤버

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()
-- 두 번째 매개변수는 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}가 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'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.