Clase de motor
AdService
*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
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):() |
Eventos
VideoAdClosed(adShown: boolean):RBXScriptSignal |
Referencia API
Métodos
CreateAdRewardFromDevProductId
GetAdAvailabilityNowAsync
Parámetros
Devuelve
GetAdAvailabilityNowResult
GetCampaignEligibilityAsync
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
endRegisterAdOpportunityAsync
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)
endRegisterDisclosureButton
ShowRewardedVideoAdAsync
AdService:ShowRewardedVideoAdAsync(
Devuelve
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
Eventos
VideoAdClosed