Aprenda
Classe do mecanismo
AdService
Não criável
Serviço

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.


Resumo
Métodos
GetAdAvailabilityNowAsync(adFormat: Enum.AdFormat):GetAdAvailabilityNowResult
GetCampaignEligibilityAsync(campaignId: string,player: Player?):GetCampaignEligibilityResult
RegisterAdOpportunityAsync(instance: Instance,placementId: number?):()
RegisterDisclosureButton(disclosureButton: GuiButton,adIntegrationPlacementId: string):()
ShowVideoAd():()
Obsoleto
Eventos
Membros herdados

Referência API
Métodos
CreateAdRewardFromDevProductId
Recursos: Monetization
AdService:CreateAdRewardFromDevProductId(devProductId:number):AdReward
Parâmetros
devProductId:number
Devolução

GetAdAvailabilityNowAsync
Rendimentos
Recursos: Monetization
AdService:GetAdAvailabilityNowAsync(adFormat:Enum.AdFormat):GetAdAvailabilityNowResult
Parâmetros
adFormat:Enum.AdFormat
Devolução
GetAdAvailabilityNowResult

GetCampaignEligibilityAsync
Rendimentos
Recursos: Monetization
AdService:GetCampaignEligibilityAsync(
campaignId:string, player:Player?
):GetCampaignEligibilityResult
Parâmetros
campaignId:string
player:Player?
Valor Padrão: "nil"
Devolução
GetCampaignEligibilityResult
Amostras de código
Exemplo de Integração de Anúncios
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Insira o ID da sua campanha de integração de anúncios aqui.
local AD_INTEGRATION_IDS = {
-- Insira o ID de colocação da sua integração de anúncios para cada ativo que você registrou como parte de sua
-- campanha de integração de anúncios.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Verifique se o LocalPlayer é elegível para ver sua campanha
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Todos os ativos de integração de anúncios devem estar ocultos por padrão. Assim que você souber que o
-- jogador é elegível, então é seguro começar a mostrar os ativos de integração de anúncios.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- Não se esqueça de registrar seus botões de divulgação de anúncios para que os jogadores saibam quem está pagando pelo anúncio!
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
Rendimentos
Recursos: Monetization
AdService:RegisterAdOpportunityAsync(
instance:Instance, placementId:number?
):()
Parâmetros
instance:Instance
placementId:number?
Devolução
()
Amostras de código
Rastrear oportunidades de anúncios
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Crie o ScreenGui e o Botão
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Registre o botão com o AdService
local success, err = pcall(function()
-- O segundo parâmetro é um parâmetro opcional de ID de Colocação (Número) gerado no Creator Hub.
-- Se você optar por não fornecer um ID de Colocação, a oportunidade de anúncio é rastreada sob a colocação padrão.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Falha ao registrar a oportunidade de anúncio:", err)
end

RegisterDisclosureButton
Recursos: Monetization
AdService:RegisterDisclosureButton(
disclosureButton:GuiButton, adIntegrationPlacementId:string
):()
Parâmetros
disclosureButton:GuiButton
adIntegrationPlacementId:string
Devolução
()

ShowRewardedVideoAdAsync
Rendimentos
Recursos: UI, Monetization
AdService:ShowRewardedVideoAdAsync(
player:Player, reward:AdReward, placementId:number?
Parâmetros
player:Player
reward:AdReward
placementId:number?
Amostras de código
Mostrar Anúncios em Vídeo Recompensados
-- Em um script no cliente:
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")
-- O cliente ainda não tem um anúncio pronto; esconda o botão
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Mostre o botão se um anúncio estiver disponível
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- O resultado IsAvailable é bom apenas para uma única reprodução de anúncio. Para reproduzir outro anúncio, você precisaria chamar
-- GetAdAvailabilityNowAsync e verificar a disponibilidade novamente.
rewardedVideoButton.Visible = false
end)
-- Em um script no servidor:
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 -- Insira seu ID de produto de desenvolvimento aqui
local function grantReward(player: Player)
print(`dando uma recompensa a {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(`jogador {receiptInfo.PlayerId} ganhou minha recompensa de vídeo recompensado assistindo um anúncio`)
else
print(`jogador {receiptInfo.PlayerId} comprou meu produto de vídeo recompensado com Robux`)
end
-- Dê ao jogador sua recompensa
grantReward(player)
else
-- Lide com outros produtos
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
Obsoleto

UnregisterAdOpportunity
Recursos: Monetization
AdService:UnregisterAdOpportunity(instance:Instance):()
Parâmetros
instance:Instance
Devolução
()

Eventos
VideoAdClosed
Obsoleto

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.