Apprendre
Classe de moteur
AdService
Création impossible
Service

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.


Résumé
Méthodes
GetAdAvailabilityNowAsync(adFormat: Enum.AdFormat):GetAdAvailabilityNowResult
GetCampaignEligibilityAsync(campaignId: string,player: Player?):GetCampaignEligibilityResult
RegisterAdOpportunityAsync(instance: Instance,placementId: number?):()
RegisterDisclosureButton(disclosureButton: GuiButton,adIntegrationPlacementId: string):()
ShowVideoAd():()
Déprécié
Événements
VideoAdClosed(adShown: boolean):RBXScriptSignal
Déprécié
Membres hérités

Référence API
Méthodes
CreateAdRewardFromDevProductId
Capacités : Monetization
AdService:CreateAdRewardFromDevProductId(devProductId:number):AdReward
Paramètres
devProductId:number
Retours

GetAdAvailabilityNowAsync
Rendement
Capacités : Monetization
AdService:GetAdAvailabilityNowAsync(adFormat:Enum.AdFormat):GetAdAvailabilityNowResult
Paramètres
adFormat:Enum.AdFormat
Retours
GetAdAvailabilityNowResult

GetCampaignEligibilityAsync
Rendement
Capacités : Monetization
AdService:GetCampaignEligibilityAsync(
campaignId:string, player:Player?
):GetCampaignEligibilityResult
Paramètres
campaignId:string
player:Player?
Valeur par défaut : "nil"
Retours
GetCampaignEligibilityResult
Échantillons de code
Intégration d'annonce Exemple
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Entrez l'ID de votre campagne d'intégration d'annonces ici.
local AD_INTEGRATION_IDS = {
-- Entrez les ID de placement de votre intégration d'annonce pour chaque actif que vous avez enregistré dans votre
-- campagne d'intégration d'annonces.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Vérifiez que le LocalPlayer est éligible pour voir votre campagne
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Tous les actifs d'intégration d'annonce doivent être cachés par défaut. Une fois que vous savez que le
-- joueur est éligible, il est sûr de commencer à montrer les actifs d'intégration d'annonces.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- N'oubliez pas d'enregistrer vos boutons de divulgation d'annonce afin que les joueurs sachent qui paie pour l'annonce !
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
Rendement
Capacités : Monetization
AdService:RegisterAdOpportunityAsync(
instance:Instance, placementId:number?
):()
Paramètres
instance:Instance
placementId:number?
Retours
()
Échantillons de code
Suivre les opportunités publicitaires
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Créer le ScreenGui et le Bouton
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Enregistrer le bouton avec AdService
local success, err = pcall(function()
-- Le deuxième paramètre est un paramètre d'ID de placement optionnel (Numéro) généré dans le Creator Hub.
-- Si vous choisissez de ne pas fournir d'ID de placement, l'opportunité publicitaire est suivie sous le placement par défaut.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Échec de l'enregistrement de l'opportunité publicitaire:", err)
end

RegisterDisclosureButton
Capacités : Monetization
AdService:RegisterDisclosureButton(
disclosureButton:GuiButton, adIntegrationPlacementId:string
):()
Paramètres
disclosureButton:GuiButton
adIntegrationPlacementId:string
Retours
()

ShowRewardedVideoAdAsync
Rendement
Capacités : UI, Monetization
AdService:ShowRewardedVideoAdAsync(
player:Player, reward:AdReward, placementId:number?
Paramètres
player:Player
reward:AdReward
placementId:number?
Échantillons de code
Afficher des annonces vidéo récompensées
-- Dans un script sur le client :
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")
-- Le client n'a pas encore d'annonce prête ; cacher le bouton
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Afficher le bouton si une annonce est disponible
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- Le résultat IsAvailable n'est valable que pour une seule lecture d'annonce. Pour jouer une autre annonce, vous devez appeler
-- GetAdAvailabilityNowAsync et vérifier la disponibilité à nouveau.
rewardedVideoButton.Visible = false
end)
-- Dans un script sur le serveur :
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 -- Entrez l'ID de votre produit dev ici
local function grantReward(player: Player)
print(`donner une récompense à {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(`le joueur {receiptInfo.PlayerId} a gagné ma récompense de vidéo récompensée en regardant une annonce`)
else
print(`le joueur {receiptInfo.PlayerId} a acheté mon produit de vidéo récompensée avec des Robux`)
end
-- Donner la récompense au joueur
grantReward(player)
else
-- Gérer d'autres produits
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
Déprécié

UnregisterAdOpportunity
Capacités : Monetization
AdService:UnregisterAdOpportunity(instance:Instance):()
Paramètres
instance:Instance
Retours
()

Événements
VideoAdClosed
Déprécié

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.