Engine-klasse
AdService
*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.
Samenvatting
Methoden
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):() |
Evenementen
VideoAdClosed(adShown: boolean):RBXScriptSignal |
API-referentie
Methoden
CreateAdRewardFromDevProductId
GetAdAvailabilityNowAsync
Parameters
Teruggaves
GetAdAvailabilityNowResult
GetCampaignEligibilityAsync
Teruggaves
GetCampaignEligibilityResult
Codevoorbeelden
Voorbeeld Advertentie-integratie
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Voer hier je advertentie-integratiecampagne-ID in van de advertentiesmanager.
local AD_INTEGRATION_IDS = {
-- Voer hier je advertentie-integratieplaatsings-ID's in voor elk activum dat je hebt geregistreerd als onderdeel van je
-- advertentie-integratiecampagne.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Verifieer of de LocalPlayer in aanmerking komt om je campagne te zien
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Alle advertentie-integratie-activa moeten standaard verborgen zijn. Zodra je weet dat de
-- speler in aanmerking komt, is het veilig om de advertentie-integratie-activa te tonen.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- Vergeet niet je advertentie-openbaarmakingsknoppen te registreren, zodat spelers weten wie voor de advertentie betaalt!
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
Teruggaves
()
Codevoorbeelden
Volg advertentiekansen
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Maak de ScreenGui en de Knop
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Registreer de knop bij AdService
local success, err = pcall(function()
-- De tweede parameter is een optionele Plaatsings-ID (Nummer) parameter die is gegenereerd in de Creator Hub.
-- Als je ervoor kiest om geen Plaatsings-ID op te geven, wordt de advertentiekans geregistreerd onder de standaardplaatsing.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Registreren van advertentiekans mislukt:", err)
endRegisterDisclosureButton
ShowRewardedVideoAdAsync
AdService:ShowRewardedVideoAdAsync(
Teruggaves
Codevoorbeelden
Toon Beloningen Video Advertenties
-- In een script op de 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")
-- De client heeft nog geen advertentie klaar; verberg de knop
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Toon de knop als er een advertentie beschikbaar is
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- De IsAvailable resultaat is alleen goed voor een enkele advertentie weergave. Om een andere advertentie te spelen, moet je
-- GetAdAvailabilityNowAsync aanroepen en de beschikbaarheid opnieuw controleren.
rewardedVideoButton.Visible = false
end)
-- In een script op de 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 -- Voer hier je ontwikkelingsproduct-ID in
local function grantReward(player: Player)
print(`een beloning geven aan {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(`speler {receiptInfo.PlayerId} heeft mijn beloningen video beloning verdiend door een advertentie te bekijken`)
else
print(`speler {receiptInfo.PlayerId} heeft mijn beloningen video product gekocht met Robux`)
end
-- Geef de speler hun beloning
grantReward(player)
else
-- Behandel andere producten
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
Evenementen
VideoAdClosed