Regionale Preisgestaltung

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Mit der verwalteten Preisgestaltung können Sie regionsspezifische Preise für Ihre Artikel anbieten und eine inklusivere und zugänglichere globale Wirtschaft aufbauen. Nachdem Sie einen Standardpreis für einen Artikel weltweit festgelegt haben, verwendet Roblox eine Vielzahl von Signalen, wie die Kaufkraft der Region, Wechselkurse und das lokale Einkaufsverhalten, um den passendsten Preis für diesen Artikel regionenweise festzulegen.

Sie können auswählen, welche Ihrer Artikel Sie regional bepreisen möchten. Wenn Sie die verwaltete Preisgestaltung für einen Artikel in Ihrem Spiel aktivieren, passt Roblox automatisch den Preis dieses Artikels für Benutzer basierend auf ihrem wirtschaftlichen Standort an.

Der wirtschaftliche Standort ist nicht immer derselbe wie der Kontostandort. Um den wirtschaftlichen Standort eines Benutzers zu bestimmen, betrachtet Roblox Signale wie VPN-Nutzung, Abrechnungshistorie und Kontohistorie. Wenn ihr wirtschaftlicher Standort nicht bestimmt werden kann, sehen die Benutzer stattdessen den globalen Standardpreis für den Artikel.

Um Preisunterschiede zu verhindern, wenn Benutzer Artikel mit unterschiedlichen verwalteten Preisen verschenken oder handeln, können Sie das In-Game-Transfersystem mit der GetUsersPriceLevelsAsync API verwalten.

Regionale Preisgestaltung aktivieren

Für Pässe

Die regionale Preisgestaltung ist standardmäßig für alle neuen und bestehenden Pässe über verwalte Preise aktiviert.

Um die verwaltete Preisgestaltung für einen Pass zu deaktivieren:

  1. Gehen Sie zu Creations und wählen Sie ein Spiel aus.
  2. Gehen Sie zu MonetarisierungPässe.
  3. Wählen Sie einen oder mehrere bestehende Pässe aus.
  4. Klicken Sie auf Verwaltete Preisgestaltung deaktivieren.
  5. OPTIONAL
    Um die verwalteten Preise nach Land oder Region anzuzeigen, wählen Sie einen Pass aus und gehen Sie zu dessen Verkauf-Seite. Die Liste Top Länder/Regionen wird aktualisiert, um die angepassten Preise basierend auf dem Standardpreis des Passes anzuzeigen. Um die Preise für alle Länder und Regionen anzuzeigen, klicken Sie auf Alle Länder ansehen.

Für Entwicklerprodukte

Um die verwaltete Preisgestaltung für ein Entwicklerprodukt zu aktivieren:

  1. Überprüfen Sie, ob Ihre Entwicklerprodukte dynamisch gescriptete Preise haben.
  2. Implementieren Sie die GetUsersPriceLevelsAsync-Methode, um Artikeltransfers basierend auf den Preislevels der Benutzer zu regulieren.
  3. Gehen Sie zu Creations und wählen Sie ein Spiel aus.
  4. Gehen Sie zu MonetarisierungEntwicklerprodukte.
  5. Wählen Sie ein oder mehrere bestehende Produkte aus oder erstellen Sie ein neues Produkt.
  6. Klicken Sie auf Verwaltete Preisgestaltung aktivieren.
  7. OPTIONAL
    Um die verwaltete Preisgestaltung nach Land oder Region anzuzeigen, wählen Sie ein Produkt aus und gehen Sie zu dessen Grundlegende Einstellungen-Seite. Die Liste Top Länder/Regionen wird aktualisiert, um die angepassten Preise basierend auf dem Standardpreis des Produkts anzuzeigen. Um die verwaltete Preisgestaltung für alle Länder und Regionen anzuzeigen, klicken Sie auf Alle Länder ansehen.

Für Abonnements

Die verwaltete Preisgestaltung ist standardmäßig für in Robux bepreiste Abonnements aktiviert und kann nicht deaktiviert werden. Für weitere Informationen siehe Abonnements erstellen.

Die verwaltete Preisgestaltung ist nicht verfügbar für Abonnements, die in lokaler Währung bepreist sind.

Für Avatar-Artikel

Um die verwaltete Preisgestaltung für einen Avatar-Artikel zu aktivieren, siehe Preisgestaltung auf der Seite Veröffentlichen im Marktplatz.

Auf dynamische Preisgestaltung prüfen

Wenn Sie die verwaltete Preisgestaltung aktivieren, passt sich der Preis des Artikels für Benutzer in verschiedenen Regionen an, egal ob er innerhalb oder außerhalb Ihres Spiels zum Verkauf steht. Wenn Sie den Preis jedoch fest in die Benutzeroberfläche Ihres Spiels codiert haben, wird diese Zahl nicht aktualisiert, da sie nicht dynamisch oder von Roblox zugänglich ist. Infolgedessen werden den Benutzern die korrekten regionsspezifischen Preise berechnet, aber die Benutzeroberfläche zeigt weiterhin den hartcodierten Wert an.

Das Tool zur Überprüfung dynamischer Preise aktualisiert alle Artikel, die in Ihrem Spiel zum Verkauf stehen, mit einem gefälschten Robux-Preis oder einem gefälschten wirtschaftlichen Standort, um Ihnen zu helfen, zu identifizieren, welche Preise in der Benutzeroberfläche Ihres Spiels hartcodiert sind und welche dynamisch mit MarketplaceService gescriptet sind und von einem Clientskript aufgerufen werden. Nachdem Sie die hartcodierten Pässe identifiziert haben, können Sie sie aktualisieren, um MarketplaceService-Funktionen zu verwenden.

Um das Tool zur Überprüfung dynamischer Preise zu verwenden:

  1. Gehen Sie zu Monetarisierung.
    • Für Pässe gehen Sie zu Pässe.
    • Für Entwicklerprodukte gehen Sie zu Entwicklerprodukte.
  2. Klicken Sie auf und wählen Sie Dynamische Preisprüfung.
  3. Unter Testkonten hinzufügen geben Sie bis zu fünf Roblox-Benutzer ein, um nach hartcodierten Preisen zu überprüfen.
  4. Wählen Sie eine Testart aus.
    • Preis fixiert aktualisiert alle dynamisch gescripteten Preise mit einem festgelegten gefälschten Robux-Betrag.
    • Standort fixiert aktualisiert alle dynamisch gescripteten Preise mit einem regionsspezifischen Preis für einen gefälschten wirtschaftlichen Standort.
  5. Klicken Sie auf Aktivieren. Nach ein paar Minuten betreten Sie Ihr Spiel, um die hartcodierten Preise zu identifizieren.

Um das Tool zur Überprüfung dynamischer Preise zu deaktivieren, gehen Sie zur Seite Dynamische Preisprüfung und klicken Sie auf Deaktivieren.

Für weitere Informationen zu hartcodierten versus dynamisch gescripteten Produktpreisen siehe Auf dynamische Preisgestaltung prüfen auf der Seite zur Preisoptimierung. Für weitere Informationen zum Verkauf von Pässen und Entwicklerprodukten mit MarketplaceService-Funktionen, siehe Verkauf eines Passes in Ihrem Spiel und Verkauf eines Entwicklerprodukts in Ihrem Spiel.

Regionale Preise in Ihrem Spiel anzeigen

Mit der verwalteten Preisgestaltung kann der Preis, den ein Benutzer sieht, je nach seinem Standort variieren. Wenn Sie Preise in einer benutzerdefinierten In-Game-Benutzeroberfläche anzeigen, wie z. B. einem TextLabel, können Sie Produktinformationen zur Laufzeit abrufen, um sicherzustellen, dass der angezeigte Preis mit dem Preis in der Kaufaufforderung übereinstimmt.

Um den regionalen Preis für ein einzelnes Entwicklerprodukt oder einen Pass anzuzeigen, verwenden Sie GetProductInfoAsync.

Um den regionalen Preis für alle Entwicklerprodukte anzuzeigen, verwenden Sie GetDeveloperProductsAsync.

Schützen Sie Ihre Trades und Geschenke

Die verwaltete Preisgestaltung kann In-Game-Transfers wie Handel und Geschenke beeinflussen. Aufgrund von Preisunterschieden zwischen den Regionen kann Preisdifferenzierung (Ausnutzung von Preisabweichungen zwischen denselben Produkten, um Gewinn zu erzielen) stattfinden. Um das Potenzial für Preisdifferenzierung zu verwalten, können Sie die GetUsersPriceLevelsAsync API verwenden, mit der Sie die relativen Preislevels der Benutzer bestimmen können, sodass Sie Logik implementieren können, um Artikeltransfers basierend auf diesen Levels zu regulieren.

GetUsersPriceLevelsAsync gibt einen numerischen Wert zwischen 1 und 1000 zurück, der das Preislevel eines Benutzers angibt. Dieser Wert soll den Prozentsatz des Gesamtpreises darstellen, den ein Benutzer voraussichtlich zahlen muss. Das Preislevel 1000 stellt den vollen globalen Preis dar, während niedrigere Preislevels anzeigen, dass der Benutzer in der Regel einen niedrigeren Preis zahlt, aufgrund seines wirtschaftlichen Standorts.

Ein niedrigerer Preislevelunterschied bedeutet, dass es einen kleineren Preisunterschied zwischen dem vollen globalen Preis und dem verwalteten Preis des Benutzers gibt. Ein höherer Preislevelunterschied bedeutet, dass es einen größeren Preisunterschied zwischen den beiden gibt. Zum Beispiel:

  • Benutzer A hat das Preislevel 1000, das den vollen globalen Preis darstellt. Dieser Benutzer zahlt 100 % des Basispreises für einen Artikel.
  • Benutzer B hat das Preislevel 500, das 50 % des vollen globalen Preises darstellt. Dieser Benutzer zahlt 50 % des Basispreises für einen Artikel.
  • Sobald Sie das Preislevel jedes Benutzers kennen, können Sie entscheiden, ob Sie Geschenke oder Trades zwischen Benutzer A und Benutzer B basierend auf ihrem Preislevelunterschied von 500 genehmigen oder blockieren möchten.

Implementieren von GetUsersPriceLevelsAsync

Um die Preislevels von Benutzern, die an einem Artikeltransfer beteiligt sind, abzurufen, rufen Sie die Funktion GetUsersPriceLevelsAsync im MarketplaceService auf. Diese Funktion nimmt ein Array von Benutzer-IDs als Argument und gibt ein Array von PriceLevelInfo Objekten mit den folgenden Feldern zurück:


type PriceLevelInfo = {
UserId: number,
PriceLevel: number
}

Nachdem Sie die Funktion implementiert haben, verwenden Sie die zurückgegebenen Preislevels, um zu entscheiden, ob Sie einen Artikeltransfer erlauben möchten. Beispielsweise können Sie Benutzern mit einem höheren Preislevel erlauben, Artikel an Benutzer mit einem niedrigeren Preislevel zu verschenken, aber es nur Benutzern erlauben, die denselben Preislevel haben. Siehe die verfügbaren Beispiele für weitere Informationen.

Für weitere Informationen zur GetUsersPriceLevelsAsync API siehe MarketplaceService.

Beispiele

Beispiele, wie Sie GetUsersPriceLevelsAsync mit regionaler Preisgestaltung verwenden können.

Beispiel 1: Überprüfen Sie die Preislevels für eine Liste von Benutzern

Dieses Beispiel zeigt, wie Sie Preislevels für eine Liste von Benutzern abrufen können, was Ihnen helfen kann zu entscheiden, ob Sie einen Artikeltransfer erlauben möchten.


-- Holen Sie sich den MarketplaceService
local MarketplaceService = game:GetService("MarketplaceService")
-- Definieren Sie eine Funktion, um Preislevels für eine Liste von Benutzern abzurufen und eine Lookup-Tabelle von UserId zu PriceLevel zu erstellen
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- Jede PriceLevelInfo in eine Lookup-Tabelle UserId -> PriceLevel umwandeln
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("Fehler beim Abrufen der Preislevels:", result)
return nil
end
end
-- Beispiel mit Platzhalter-IDs
local user1Id = 123456789
local user2Id = 987654321
-- Rufen Sie die Funktion auf und speichern Sie das Ergebnis
local priceLevels = getPriceLevelsLookup({user1Id, user2Id})
-- Wenn erfolgreich, geben Sie das Level jedes Benutzers aus
if priceLevels then
print("Preislevel für Benutzer 1:", priceLevels[user1Id])
print("Preislevel für Benutzer 2:", priceLevels[user2Id])
else
print("Fehler beim Abrufen der Preislevels.")
end
Beispiel 2: Vergleichen Sie das Preislevel des Absenders mit dem Preislevel des Empfängers

Dieses Beispiel zeigt Ihnen eine Beispielimplementierung, wie Sie das Preislevel eines Absenders mit dem Preislevel des Empfängers vergleichen können. Dies kann Ihnen helfen, Geschenke von Benutzern in höherpreisigen Regionen an Benutzer in niedrigpreisigen Regionen zu verwalten.


-- Holen Sie sich den MarketplaceService
local MarketplaceService = game:GetService("MarketplaceService")
-- Definieren Sie eine Funktion, um Preislevels für eine Liste von Benutzern abzurufen und eine Lookup-Tabelle von UserId zu PriceLevel zu erstellen
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- Jede PriceLevelInfo in eine Lookup-Tabelle UserId -> PriceLevel umwandeln
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("Fehler beim Abrufen der Preislevels:", result)
return nil
end
end
-- Definieren Sie eine Funktion, die überprüft, ob der Absender ein höheres oder gleiches Preislevel hat als der Empfänger
-- Die Parameter sind der Spieler, der den Artikel sendet, und der Spieler, der den Artikel erhält
-- Die Funktion gibt true zurück, wenn das Preislevel des Absenders höher oder gleich dem Preislevel des Empfängers ist
function isSenderPriceLevelHigherOrEqualforGifting(sender, recipient)
local priceLevelsLookup = getPriceLevelsLookup({ sender.UserId, recipient.UserId })
if not priceLevelsLookup then
error("MarketplaceService:GetUsersPriceLevelsAsync fehlgeschlagen. Preislevels der Benutzer konnten nicht abgerufen werden.")
end
local senderPriceLevel = priceLevelsLookup[sender.UserId]
local recipientPriceLevel = priceLevelsLookup[recipient.UserId]
return senderPriceLevel >= recipientPriceLevel
end
Beispiel 3: Überprüfen, ob zwei Benutzer dasselbe Preislevel haben

Dieses Beispiel zeigt Ihnen eine Beispielimplementierung, wie Sie überprüfen können, ob zwei Benutzer dasselbe Preislevel haben. Dies kann Ihnen helfen, den Handel zu verwalten und einen fairen Austausch zwischen Benutzern aus verschiedenen Regionen sicherzustellen.


-- Holen Sie sich den MarketplaceService
local MarketplaceService = game:GetService("MarketplaceService")
-- Definieren Sie eine Funktion, um Preislevels für eine Liste von Benutzern abzurufen und eine Lookup-Tabelle von UserId zu PriceLevel zu erstellen
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- Jede PriceLevelInfo in eine Lookup-Tabelle UserId -> PriceLevel umwandeln
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("Fehler beim Abrufen der Preislevels:", result)
return nil
end
end
-- Definieren Sie eine Funktion, die überprüft, ob zwei Benutzer dasselbe Preislevel haben
-- Die Parameter sind die beiden Benutzer, deren Preislevels Sie vergleichen möchten
-- Die Funktion gibt true zurück, wenn beide Benutzer dasselbe Preislevel haben
function haveSamePriceLevelForTrading(userA, userB)
local priceLevelsLookup = getPriceLevelsLookup({ userA.UserId, userB.UserId })
if not priceLevelsLookup then
error("MarketplaceService:GetUsersPriceLevelsAsync fehlgeschlagen. Preislevels der Benutzer konnten nicht abgerufen werden.")
end
local userAPriceLevel = priceLevelsLookup[userA.UserId]
local userBPriceLevel = priceLevelsLookup[userB.UserId]
return userAPriceLevel == userBPriceLevel
end
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.