Aprender
Clase de motor
AdService
No creable
Servicio

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


Resumen
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
Miembros heredados

Referencia API
Métodos
CreateAdRewardFromDevProductId
Capacidades: Monetization
AdService:CreateAdRewardFromDevProductId(devProductId:number):AdReward
Parámetros
devProductId:number
Devuelve

GetAdAvailabilityNowAsync
Proporciona
Capacidades: Monetization
AdService:GetAdAvailabilityNowAsync(adFormat:Enum.AdFormat):GetAdAvailabilityNowResult
Parámetros
adFormat:Enum.AdFormat
Devuelve
GetAdAvailabilityNowResult

GetCampaignEligibilityAsync
Proporciona
Capacidades: Monetization
AdService:GetCampaignEligibilityAsync(
campaignId:string, player:Player?
):GetCampaignEligibilityResult
Parámetros
campaignId:string
player:Player?
Valor predeterminado: "nil"
Devuelve
GetCampaignEligibilityResult
Muestras de código
Ejemplo de Integración de Anuncios
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Ingresa aquí el ID de tu campaña de integración de anuncios desde el administrador de anuncios.
local AD_INTEGRATION_IDS = {
-- Ingresa aquí el ID de ubicación de la integración de anuncios para cada activo que registraste como parte de tu
-- campaña de integración de anuncios.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Verifica que el LocalPlayer sea elegible para ver tu campaña
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Todos los activos de integración de anuncios deben estar ocultos por defecto. Una vez que sepas que el
-- jugador es elegible, entonces es seguro comenzar a mostrar los activos de integración de anuncios.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- ¡No olvides registrar tus botones de divulgación de anuncios para que los jugadores sepan quién está pagando por el anuncio!
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
Proporciona
Capacidades: Monetization
AdService:RegisterAdOpportunityAsync(
instance:Instance, placementId:number?
):()
Parámetros
instance:Instance
placementId:number?
Devuelve
()
Muestras de código
Rastrear oportunidades publicitarias
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Crear el ScreenGui y el Botón
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Registrar el botón con AdService
local success, err = pcall(function()
-- El segundo parámetro es un parámetro de ID de ubicación (Número) opcional generado en el Creator Hub.
-- Si decides no proporcionar un ID de ubicación, la oportunidad de anuncio se rastrea bajo la ubicación predeterminada.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Error al registrar la oportunidad de anuncio:", err)
end

RegisterDisclosureButton
Capacidades: Monetization
AdService:RegisterDisclosureButton(
disclosureButton:GuiButton, adIntegrationPlacementId:string
):()
Parámetros
disclosureButton:GuiButton
adIntegrationPlacementId:string
Devuelve
()

ShowRewardedVideoAdAsync
Proporciona
Capacidades: UI, Monetization
AdService:ShowRewardedVideoAdAsync(
player:Player, reward:AdReward, placementId:number?
Parámetros
player:Player
reward:AdReward
placementId:number?
Muestras de código
Mostrar Anuncios de Video Recompensados
-- En un script en el 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")
-- El cliente aún no tiene un anuncio listo; oculta el botón
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Muestra el botón si hay un anuncio disponible
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- El resultado IsAvailable solo es válido para una única reproducción de anuncio. Para reproducir otro anuncio, tendrías que llamar
-- a GetAdAvailabilityNowAsync y verificar la disponibilidad nuevamente.
rewardedVideoButton.Visible = false
end)
-- En un script en el 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 -- Introduce tu ID de producto de desarrollador aquí
local function grantReward(player: Player)
print(`dando una 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(`el jugador {receiptInfo.PlayerId} ganó mi recompensa de video recompensado al ver un anuncio`)
else
print(`el jugador {receiptInfo.PlayerId} compró mi producto de video recompensado con Robux`)
end
-- Dale al jugador su recompensa
grantReward(player)
else
-- Maneja otros productos
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
Capacidades: Monetization
AdService:UnregisterAdOpportunity(instance:Instance):()
Parámetros
instance:Instance
Devuelve
()

Eventos
VideoAdClosed
Obsoleto

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.