Yönetilen Fiyatlandırma ile, eşyalarınız için bölgeye özgü fiyatlar sunabilir ve daha kapsayıcı ve erişilebilir bir küresel ekonomi oluşturabilirsiniz. Bir öğe için varsayılan küresel fiyatı belirledikten sonra, Roblox bu öğenin fiyatını bölge bölge en uygun şekilde ayarlamak için bölgenin satın alma gücü, döviz kurları ve yerel harcama davranışları gibi çeşitli sinyaller kullanır.
Hangi eşyalarınızı bölgesel olarak fiyatlandırmak istediğinizi seçebilirsiniz. Oyununuzdaki bir eşya için Yönetilen Fiyatlandırmayı etkinleştirdiğinizde, Roblox bu eşyanın fiyatını kullanıcıların ekonomik konumlarına göre otomatik olarak ayarlar.
Ekonomik konum her zaman hesap konumuyla aynı değildir. Bir kullanıcının ekonomik konumunu belirlemek için Roblox, VPN kullanımı, faturalandırma geçmişi ve hesap geçmişi gibi sinyallere bakar. Eğer onların ekonomik konumu belirlenemiyorsa, kullanıcılar yerine varsayılan küresel fiyatı görürler.
Farklı yönetilen fiyatlarla eşya hediye ederken veya takas ederken fiyat tahsisi önlemek için, eşya transferlerini GetUsersPriceLevelsAsync API'si ile yönetin.
Bölgesel fiyatlandırmayı etkinleştirin
Geçişler için
Bölgesel fiyatlandırma, Yönetilen fiyatlandırma aracılığıyla tüm yeni ve mevcut geçişler için varsayılan olarak etkinleştirilmiştir.
Bir geçiş için yönetilen fiyatlandırmayı devre dışı bırakmak için:
- Yaratımlar bölümüne gidin ve bir oyun seçin.
- Monetizasyon ⟩ Geçişler kısmına gidin.
- Bir veya daha fazla mevcut geçiş seçin.
- Yönetilen Fiyatlandırmayı Devre Dışı Bırak butonuna tıklayın.
- İSTEĞE BAĞLIYönetilen fiyatları ülke veya bölgeye göre görüntülemek için, bir geçiş seçin ve Satış sayfasına gidin. En Üst Ülkeler/Bölgeler listesi, geçişin varsayılan fiyatına göre ayarlanmış fiyatları gösterecek şekilde güncellenir. Tüm ülkeler ve bölgeler için fiyatları görüntülemek için Tüm ülkeleri görüntüle butonuna tıklayın.
Geliştirici ürünleri için
Bir geliştirici ürünü için yönetilen fiyatlandırmayı etkinleştirmek için:
- Geliştirici ürünlerinizin dinamik scriptlenmiş fiyatlara sahip olduğundan emin olun.
- Eşya transferlerini kullanıcıların fiyat seviyelerine göre düzenlemek için GetUsersPriceLevelsAsync yöntemini uygulayın.
- Yaratımlar bölümüne gidin ve bir oyun seçin.
- Monetizasyon ⟩ Geliştirici Ürünleri kısmına gidin.
- Bir veya daha fazla mevcut ürün seçin veya yeni bir ürün oluşturun.
- Yönetilen Fiyatlandırmayı Etkinleştir butonuna tıklayın.
- İSTEĞE BAĞLIÜlke veya bölge bazında Yönetilen Fiyatlandırmayı görüntülemek için, bir ürünü seçin ve Temel Ayarlar sayfasına gidin. En Üst Ülkeler/Bölgeler listesi, ürünün varsayılan fiyatına göre ayarlanmış fiyatları gösterecek şekilde güncellenir. Tüm ülkeler ve bölgeler için Yönetilen Fiyatlandırmayı görüntülemek için Tüm ülkeleri görüntüle butonuna tıklayın.
Abonelikler için
Yönetilen fiyatlandırma, Robux cinsinden fiyatlandırılan abonelikler için varsayılan olarak etkinleştirilmiştir ve kapatılamaz. Daha fazla bilgi için, Abonelik oluşturma bölümüne bakın.
Yönetilen fiyatlandırma yerel para biriminde fiyatlandırılan abonelikler için mevcut değildir.
Avatar eşyaları için
Bir Avatar eşyası için Yönetilen Fiyatlandırmayı etkinleştirmek için, Fiyatlandırma bölümüne bakın.
Dinamik fiyat kontrolü yapın
Yönetilen Fiyatlandırmayı etkinleştirdiğinizde, eşyanın fiyatı oyununuz içinde veya dışında satılmasına göre farklı bölgelerdeki kullanıcılar için ayarlanır. Ancak, eğer fiyatı oyununuzun kullanıcı arayüzüne sabit kodlamışsanız, o sayı güncellenmez çünkü dinamik değildir veya Roblox tarafından erişilebilir değildir. Sonuçta, kullanıcılar doğru bölgeye özgü fiyatı öderler ancak kullanıcı arayüzü hala onlara sabit kodlanmış değeri gösterir.
Dinamik fiyat kontrol aracı, oyununuz içinde satışta olan tüm eşyaların fiyatını sahte bir Robux fiyatı veya sahte bir ekonomik konum ile güncelleyerek, hangi fiyatların oyununuzun kullanıcı arayüzüne sabit kodlandığını ve hangilerinin dinamik olarak MarketplaceService ile scriptten çağrıldığını belirlemenize yardımcı olur. Sabit kodlanmış geçişleri belirledikten sonra, MarketplaceService fonksiyonlarını kullanacak şekilde bunları güncelleyebilirsiniz.
Dinamik fiyat kontrol aracını kullanmak için:
- Monetizasyon kısmına gidin.
- Geçişler için Geçişler kısmına gidin.
- Geliştirici ürünleri için Geliştirici Ürünleri kısmına gidin.
- … butonuna tıklayın ve Dinamik Fiyat Kontrolü seçeneğini seçin.
- Test hesapları ekle kısmında, sabit kodlanmış fiyatları kontrol etmek için en fazla beş Roblox kullanıcısını girin.
- Bir test türü seçin.
- Fiyat sabitlendi tüm dinamik olarak scriptlenmiş fiyatları belirli bir sahte Robux miktarı ile günceller.
- Konum sabitlendi tüm dinamik olarak scriptlenmiş fiyatları sahte bir ekonomik konum için bölgeye özgü bir fiyatla günceller.
- Etkinleştir butonuna tıklayın. Birkaç dakika sonra, sabit kodlanmış fiyatları belirlemek için oyununuzdan içeri girin.
Dinamik fiyat kontrol aracını devre dışı bırakmak için, Dinamik Fiyat Kontrolü sayfasına gidin ve Devre Dışı Bırak butonuna tıklayın.
Sabit kodlanmış fiyatlar ile dinamik olarak scriptlenmiş ürün fiyatları hakkında daha fazla bilgi için, Dinamik fiyat kontrolü yapın bölümüne bakın. MarketplaceService fonksiyonları ile geçişler ve geliştirici ürünleri satmak hakkında daha fazla bilgi için, Oyununuz içinde bir geçiş satma ve Oyununuz içinde bir geliştirici ürünü satma bölümüne bakın.
Oyununuza bölgesel fiyatları gösterin
Yönetilen Fiyatlandırma ile, bir kullanıcının göreceği fiyat onların konumuna göre değişebilir. Eğer bir TextLabel gibi özel bir oyun içi kullanıcı arayüzünde fiyatları gösteriyorsanız, görüntülenen fiyatın satın alma isteminde gösterilen fiyatla eşleşmesini sağlamak için ürün bilgilerini çalışma zamanında alabilirsiniz.
Tek bir geliştirici ürünü veya geçiş için bölgesel fiyatı göstermek için GetProductInfoAsync kullanın.
Tüm geliştirici ürünleri için bölgesel fiyatı göstermek için GetDeveloperProductsAsync kullanın.
Takaslarınızı ve hediyelerinizi koruyun
Yönetilen fiyatlandırma, takas etme ve hediye verme gibi oyun içi transferleri etkileyebilir. Bölgeler arası fiyat farklılıkları nedeniyle, fiyat tahsisi (aynı ürünler arasındaki fiyat farklılıklarından yararlanarak kâr sağlama) gerçekleşebilir. Fiyat tahsisi potansiyelini yönetmek için, kullanıcıların fiyat seviyelerini belirlemenize olanak tanıyan GetUsersPriceLevelsAsync API'sini kullanabilirsiniz; böylece bu seviyelere dayanarak madde transferlerini düzenleyecek mantığı uygulayabilirsiniz.
GetUsersPriceLevelsAsync, bir kullanıcının fiyat seviyesini gösteren 1 ile 1000 arasında bir sayısal değer sağlar. Bu değer, bir kullanıcının ödemesi beklenen tam fiyatın yüzdesini temsil etmek üzere tasarlanmıştır. Fiyat seviyesi 1000, tam küresel fiyatı temsil ederken, daha düşük fiyat seviyeleri, kullanıcının muhtemelen daha düşük bir fiyat ödediğini gösterir çünkü ekonomik konumları buna işaret eder.
Daha düşük bir fiyat seviyesi farkı, tam küresel fiyat ile kullanıcının yönetilen fiyatı arasında daha küçük bir fiyat farkı olduğu anlamına gelir. Daha yüksek bir fiyat seviyesi farkı ise iki fiyat arasında daha büyük bir fiyat farkı olduğu anlamına gelir. Örneğin:
- Kullanıcı A'nın fiyat seviyesi 1000'dir, bu da tam küresel fiyatı temsil eder. Bu kullanıcı bir eşya için temel fiyatın %100'ünü öder.
- Kullanıcı B'nin fiyat seviyesi 500'dür, bu da tam küresel fiyatın %50'sini temsil eder. Bu kullanıcı bir eşya için temel fiyatın %50'sini öder.
- Her kullanıcının fiyat seviyesini bildiğinizde, kullanıcı A ve kullanıcı B arasında hediye verme veya takas yapmayı onaylamaya veya engellemeye karar verebilirsiniz; bu, 500 fiyat seviyesi farkına dayanabilir.
GetUsersPriceLevelsAsync'i uygula
Bir eşya transferine dahil olan kullanıcıların fiyat seviyelerini almak için, MarketplaceService içindeki GetUsersPriceLevelsAsync fonksiyonunu çağırın. Bu fonksiyon, argüman olarak bir dizi kullanıcı ID'si alır ve şu alanlara sahip bir dizi PriceLevelInfo nesnesi döndürür:
type PriceLevelInfo = {UserId: number,PriceLevel: number}
Fonksiyonu uyguladıktan sonra, izin vereceğiniz bir eşya transferinin gerçekleşip gerçekleşmeyeceğine karar vermek için döndürülen fiyat seviyelerini kullanın. Örneğin, daha yüksek fiyat seviyesine sahip kullanıcıların daha düşük fiyat seviyesine sahip kullanıcılara eşya hediye etmelerine izin verebilir, ancak yalnızca birbirleriyle aynı fiyat seviyesine sahip kullanıcılar arasında takasa izin verebilirsiniz. Daha fazla bilgi için mevcut örneklere bakın.
GetUsersPriceLevelsAsync API'si hakkında daha fazla bilgi için, MarketplaceService bölümüne bakın.
Örnekler
GetUsersPriceLevelsAsync'i bölgesel fiyatlandırma ile nasıl kullanabileceğinize dair örnekler.
Örnek 1: Kullanıcıların bir listesinin fiyat seviyelerini kontrol et
Bu örnek, bir kullanıcı listesinin fiyat seviyelerini nasıl alacağınızı gösterir; bu da bir eşya transferinin gerçekleşip gerçekleşmeyeceğine karar vermenize yardımcı olabilir.
-- MarketplaceService'i al
local MarketplaceService = game:GetService("MarketplaceService")
-- Kullanıcıların fiyat seviyelerini almak için bir fonksiyon tanımlayın ve UserId'den PriceLevel'a bir lookup tablosu oluşturun
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- Her PriceLevelInfo'yu UserId -> PriceLevel lookup tablosuna eşleyin
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("Fiyat seviyeleri alınırken hata oluştu:", result)
return nil
end
end
-- Yer tutucu ID'ler kullanarak örnek
local user1Id = 123456789
local user2Id = 987654321
-- Fonksiyonu çağırın ve sonucu saklayın
local priceLevels = getPriceLevelsLookup({user1Id, user2Id})
-- Başarılıysa, her kullanıcının seviyesini yazdırın
if priceLevels then
print("Kullanıcı 1 için fiyat seviyesi:", priceLevels[user1Id])
print("Kullanıcı 2 için fiyat seviyesi:", priceLevels[user2Id])
else
print("Fiyat seviyelerini almak başarısız oldu.")
end
Örnek 2: Gönderenin fiyat seviyesini alıcının fiyat seviyesine karşılaştırın
Bu örnek, bir gönderenin fiyat seviyesini alıcının fiyat seviyesine karşılaştırmanın örnek uygulamasını gösterir. Bu, daha yüksek fiyatlı bölgelerde kullanıcıların daha düşük fiyatlı bölgelerdeki kullanıcılara hediye vermesini yönetmenize yardımcı olabilir.
-- MarketplaceService'i al
local MarketplaceService = game:GetService("MarketplaceService")
-- Kullanıcıların fiyat seviyelerini almak için bir fonksiyon tanımlayın ve UserId'den PriceLevel'a bir lookup tablosu oluşturun
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- Her PriceLevelInfo'yu UserId -> PriceLevel lookup tablosuna eşleyin
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("Fiyat seviyeleri alınırken hata oluştu:", result)
return nil
end
end
-- Gönderenin fiyat seviyesinin alıcının fiyat seviyesinden yüksek veya eşit olup olmadığını kontrol eden bir fonksiyon tanımlayın
-- Parametreler öğeyi gönderen ve öğeyi alan oyuncudur
-- Fonksiyon, gönderenin fiyat seviyesi alıcının fiyat seviyesine eşit veya daha yüksekse true döndürür
function isSenderPriceLevelHigherOrEqualforGifting(sender, recipient)
local priceLevelsLookup = getPriceLevelsLookup({ sender.UserId, recipient.UserId })
if not priceLevelsLookup then
error("MarketplaceService:GetUsersPriceLevelsAsync başarısız oldu. Kullanıcı fiyat seviyelerini almak mümkün değil.")
end
local senderPriceLevel = priceLevelsLookup[sender.UserId]
local recipientPriceLevel = priceLevelsLookup[recipient.UserId]
return senderPriceLevel >= recipientPriceLevel
end
Örnek 3: İki kullanıcının aynı fiyat seviyesine sahip olup olmadığını kontrol et
Bu örnek, iki kullanıcının aynı fiyat seviyesine sahip olup olmadığını kontrol etmenin örnek uygulamasını gösterir. Bu, takasları yönetmenize ve farklı bölgelerden kullanıcılar arasında adil bir değişim sağlamanıza yardımcı olabilir.
-- MarketplaceService'i al
local MarketplaceService = game:GetService("MarketplaceService")
-- Kullanıcıların fiyat seviyelerini almak için bir fonksiyon tanımlayın ve UserId'den PriceLevel'a bir lookup tablosu oluşturun
local function getPriceLevelsLookup(userIds)
local success, result = pcall(function()
return MarketplaceService:GetUsersPriceLevelsAsync(userIds)
end)
if success then
-- Her PriceLevelInfo'yu UserId -> PriceLevel lookup tablosuna eşleyin
local lookup = {}
for _, userData in ipairs(result) do
lookup[userData.UserId] = userData.PriceLevel
end
return lookup
else
warn("Fiyat seviyeleri alınırken hata oluştu:", result)
return nil
end
end
-- İki kullanıcının aynı fiyat seviyesine sahip olup olmadığını kontrol eden bir fonksiyon tanımlayın
-- Parametreler, karşılaştırmak istediğiniz iki kullanıcılardır
-- Fonksiyon, her iki kullanıcının aynı fiyat seviyesine sahip olup olmadığını kontrol eder ve true döndürür
function haveSamePriceLevelForTrading(userA, userB)
local priceLevelsLookup = getPriceLevelsLookup({ userA.UserId, userB.UserId })
if not priceLevelsLookup then
error("MarketplaceService:GetUsersPriceLevelsAsync başarısız oldu. Kullanıcı fiyat seviyelerini almak mümkün değil.")
end
local userAPriceLevel = priceLevelsLookup[userA.UserId]
local userBPriceLevel = priceLevelsLookup[userB.UserId]
return userAPriceLevel == userBPriceLevel
end