Engine-Klasse
AdService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Zusammenfassung
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):() |
Events
VideoAdClosed(adShown: boolean):RBXScriptSignal |
API-Referenz
Methoden
CreateAdRewardFromDevProductId
GetAdAvailabilityNowAsync
Parameter
Rückgaben
GetAdAvailabilityNowResult
GetCampaignEligibilityAsync
Rückgaben
GetCampaignEligibilityResult
Code-Beispiele
Beispiel Ad-Integration
local AdService = game:GetService("AdService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local Players = game:GetService("Players")
local YOUR_CAMPAIGN_ID = "123" -- Geben Sie hier Ihre Ad-Integrationskampagnen-ID aus dem Ads-Manager ein.
local AD_INTEGRATION_IDS = {
-- Geben Sie hier die Ad-Integrationsplatzierungs-IDs für jedes Asset ein, das Sie als Teil Ihrer
-- Ad-Integrationskampagne registriert haben.
BrandedBuilding = "abc-123",
BrandedScreenGui = "xyz-789",
}
-- Überprüfen Sie, ob der LocalPlayer berechtigt ist, Ihre Kampagne zu sehen
local success, result = pcall(function()
return AdService:GetCampaignEligibilityAsync(YOUR_CAMPAIGN_ID)
end)
if success and result.IsEligible then
-- Alle Ad-Integrations-Assets sollten standardmäßig verborgen sein. Sobald Sie wissen, dass der
-- Spieler berechtigt ist, ist es sicher, die Ad-Integrations-Assets anzuzeigen.
local brandedBuildingModel = ReplicatedStorage.adIntegration.building
local brandedBuildingModelDisclosureBillboardGui = brandedBuildingModel.disclosureBillboardGui
-- Vergessen Sie nicht, Ihre Ad-Offenlegungs-Buttons zu registrieren, damit die Spieler wissen, wer für die Anzeige zahlt!
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
Rückgaben
()
Code-Beispiele
Werbemöglichkeiten verfolgen
local AdService = game:GetService("AdService")
local playerGui = game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui")
-- Erstellen Sie das ScreenGui und den Button
local screenGui = Instance.new("ScreenGui", playerGui)
local adButton = Instance.new("TextButton", screenGui)
-- Registrieren Sie den Button beim AdService
local success, err = pcall(function()
-- Der zweite Parameter ist eine optionale Platzierungs-ID (Nummer), die im Creator Hub erstellt wurde.
-- Wenn Sie sich entscheiden, keine Platzierungs-ID anzugeben, wird die Anzeigengelegenheit unter der Standardplatzierung verfolgt.
AdService:RegisterAdOpportunityAsync(adButton, 1234567891234567)
end)
if not success then
warn("Fehler beim Registrieren der Anzeigengelegenheit:", err)
endRegisterDisclosureButton
ShowRewardedVideoAdAsync
AdService:ShowRewardedVideoAdAsync(
Rückgaben
Code-Beispiele
Belohnte Videoanzeigen anzeigen
-- In einem Skript auf dem 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")
-- Der Client hat noch keine Anzeige bereit; verstecke den Button
rewardedVideoButton.Visible = false
local success, result = pcall(function()
return AdService:GetAdAvailabilityNowAsync(Enum.AdFormat.RewardedVideo)
end)
if success and result.AdAvailabilityResult == Enum.AdAvailabilityResult.IsAvailable then
-- Zeige den Button, wenn eine Anzeige verfügbar ist
rewardedVideoButton.Visible = true
end
rewardedVideoButton.Activated:Connect(function()
watchRewardedVideoAdRemoteEvent:FireServer()
-- Das IsAvailable-Ergebnis ist nur für eine einzelne Anzeigenwiedergabe gültig. Um eine weitere Anzeige zu spielen, müssen Sie
-- GetAdAvailabilityNowAsync aufrufen und die Verfügbarkeit erneut überprüfen.
rewardedVideoButton.Visible = false
end)
-- In einem Skript auf dem 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 -- Geben Sie hier Ihre Entwicklerprodukt-ID ein
local function grantReward(player: Player)
print(`Belohnung an {player.Name} vergeben!`)
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(`Spieler {receiptInfo.PlayerId} hat meine Belohnung durch das Ansehen einer Anzeige erhalten`)
else
print(`Spieler {receiptInfo.PlayerId} hat mein Produkt mit Robux gekauft`)
end
-- Geben Sie dem Spieler seine Belohnung
grantReward(player)
else
-- Andere Produkte verarbeiten
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
Events
VideoAdClosed