Classe motore
AdService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Sommario
Metodi
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):() |
Eventi
VideoAdClosed(adShown: boolean):RBXScriptSignal |
Riferimento API
Metodi
CreateAdRewardFromDevProductId
GetAdAvailabilityNowAsync
Parametri
Restituzioni
GetAdAvailabilityNowResult
GetCampaignEligibilityAsync
Restituzioni
GetCampaignEligibilityResult
Campioni di codice
Esempio di integrazione pubblicitaria
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Inserisci qui il tuo ID della campagna di integrazione pubblicitaria dall'ads manager.
local AD_INTEGRATION_IDS = {
-- Inserisci qui gli ID dei tuoi posizionamenti di integrazione pubblicitaria per ogni risorsa che hai registrato come parte della tua
-- campagna di integrazione pubblicitaria.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Verifica che il LocalPlayer sia idoneo a vedere la tua campagna
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Tutte le risorse di integrazione pubblicitaria dovrebbero essere nascoste per impostazione predefinita. Una volta che sai che il
-- giocatore è idoneo, allora è sicuro iniziare a mostrare le risorse di integrazione pubblicitaria.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- Non dimenticare di registrare i tuoi pulsanti di divulgazione pubblicitaria affinché i giocatori sappiano chi sta pagando per la pubblicità!
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
Restituzioni
()
Campioni di codice
Monitora le opportunità pubblicitarie
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Crea lo ScreenGui e il pulsante
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Registra il pulsante con AdService
local success, err = pcall(function()
-- Il secondo parametro è un parametro opzionale ID di posizionamento (Numero) generato nel Creator Hub.
-- Se scegli di non fornire un ID di posizionamento, l'opportunità pubblicitaria viene monitorata sotto la posizione predefinita.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Impossibile registrare l'opportunità pubblicitaria:", err)
endRegisterDisclosureButton
ShowRewardedVideoAdAsync
AdService:ShowRewardedVideoAdAsync(
Restituzioni
Campioni di codice
Mostra annunci video con ricompensa
-- In uno script sul 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")
-- Il client non ha ancora un annuncio pronto; nascondi il pulsante
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Mostra il pulsante se un annuncio è disponibile
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- Il risultato IsAvailable è valido solo per una singola visualizzazione dell'annuncio. Per visualizzare un altro annuncio, dovresti chiamare
-- GetAdAvailabilityNowAsync e controllare di nuovo la disponibilità.
rewardedVideoButton.Visible = false
end)
-- In uno script sul server:
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 -- Inserisci qui il tuo ID prodotto di sviluppo
local function grantReward(player: Player)
print(`dando una ricompensa 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(`il giocatore {receiptInfo.PlayerId} ha guadagnato la mia ricompensa video con ricompensa guardando un annuncio`)
else
print(`il giocatore {receiptInfo.PlayerId} ha acquistato il mio prodotto video con ricompensa con Robux`)
end
-- Dai al giocatore la sua ricompensa
grantReward(player)
else
-- Gestisci altri prodotti
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
Eventi
VideoAdClosed