Introducing Regional Pricing for Developer Products

Hi Creators,

Starting today, you can offer Regional Pricing for your developer products. We have previously launched Regional Pricing for passes, and avatar items. By offering region-specific pricing, creators will give users pricing that reflects their local economy. In turn, users outside your region will be more likely to spend Robux inside your experience, helping you earn more.

Experiences that have adopted Regional Pricing have seen a business impact. For instance, Regional Pricing for Passes has led to an 22.4% increase in paying users in Brazil, 44.8% increase in the Philippines, and 13.8% increase in Mexico.

Creators decide which passes and developer products they would like to be opted-in and set a “default price”. Roblox then updates those prices in each region periodically. Region-specific prices are determined using a variety of signals, including a region’s purchasing power, currency exchange rates, and local spending behavior on Roblox.


From top to bottom: An in-experience store shown to a user in the US, and that in-experience store with Regional Pricing enabled shown to a user in Brazil.

For example, let’s say you’ve priced a developer product at 1,000 Robux in the United States. Without Regional Pricing, that developer product would be priced at 1,000 Robux in all countries, with you having to balance between their local pricing preference and the global market. 1,000 Robux may be an accessible price for users to pay in the United States, but that same price would be considered a premium in other regions.

Once that creator enables Regional Pricing, they can more easily align prices to their local markets. In this example, users in Brazil would be able to purchase that developer product for 700 Robux and users in India would be able to purchase for 500 Robux. As a result, more users are likely to buy the developer product, leading to higher overall sales volume and increased total earnings from that developer product despite the lower price points in some regions.

When Regional Pricing is enabled, the prices users see will depend on the region where they are located. To prevent users from taking advantage of lower prices outside their region, we use a variety of signals to determine a user’s location. Users cannot manually update their location to take advantage of lower prices. Users accessing Roblox through a VPN may not receive region-specific pricing. Similarly, users traveling abroad for a short duration will continue to see prices from their home country.

Protecting Your Trades and Gifts

If your experience has trading or gifting, you should use the User Price Level API, which checks whether two users are compatible for trading or gifting.

The API allows creators to pass in the user IDs of users attempting to do any in-experience gifts or trades, and will return a number (1-1000) that indicates a user’s pricing level. A higher value implies the user pays a higher price than someone with a lower price level. Creators can use this API to determine which users are allowed to trade or gift with one another. For example, creators can limit whether users in low-cost regions can gift or trade with users in high-cost countries. Additionally, creators can use this API to tailor their offerings to users in high or low cost regions.

For more details on how to implement User Price Level API, you can review our documentation.

Make Sure Prices Are Updating Dynamically

To ensure the best experience for users, creators must ensure the prices of their developer products are dynamically scripted through the MarketplaceService API. You can do this by using GetProductInfo() or GetDeveloperProductsAsync() on the client to retrieve and display current prices. The API should be called from the client for every user.

We’ve created a dynamic price check tool to help you identify which of your prices are dynamically updated. To do this, it updates all products for sale with a mock price to identify which of your product prices are hard-coded and which are scripted with the MarketplaceService API inside your experience. If a product price updates to the mock Robux price, that price has been scripted correctly. If it remains the same, it’s been hard-coded or the price is not fetched using a client script. The price will need to be dynamically scripted for regional prices to be accurately reflected inside the experience. For further instructions on how to properly script product prices, see Selling Passes, Selling Developer Products and Developer Products | Documentation - Roblox Creator Hub.

  1. Go to Monetization > Developer Products
  2. Click … and select Dynamic Price Check
  3. Under Add test accounts, enter up to five Roblox users to check for hard-coded prices
  4. Select a testing type
    • Price pinned updates all dynamically-scripted prices with a set fake Robux amount
    • Location pinned updates all dynamically-scripted prices with a region-specific price for a fake location
  5. Click Enable. After a few minutes, you can enter your experience to identify the hard-coded prices

To disable the dynamic price check tool, go to the Dynamic Price Check page and click Disable.


Dynamic Price Check Page in Creator Hub

How to Set Up Regional Pricing for Developer Products

Once you’ve checked that your Developer Products are set up correctly, you can turn on Regional Pricing for some or all of your Developer Products on Creator Hub. Here’s how to do this:

  1. Once you’ve set up dynamic pricing, go to Creations and select an experience
  2. For experiences that have trading or gifting, you should use the User Price Level API to check the price compatibility of trade/gift.
  3. Go to Monetization > Developer Products
  4. Enable Regional Pricing for multiple items at once by selecting Developer Products > Enable Regional Pricing:
  5. Alternatively, select an existing Developer Products or create a new Developer Product to regionalize one Developer Product
    1. Click Sales
      • Turn on Enable Regional Pricing. The Top Countries/Regions list updates to show the adjusted regional price per country or region based on the default price of the Developer Product. To view regional prices for all countries and regions, click View all.
    2. Click Save Changess and regions, click View all.
    3. Click Save Changes
  6. Regional prices will be adjusted periodically to reflect shifting economic conditions around the world and on the Roblox platform. If a user’s location cannot be determined or they are using a VPN, they will be given the default price
  7. Track changes to payer conversion by region, as well as revenue and average revenue per daily active user (ARPDAU) by going to Creator Hub > Monetization > Overview. Then, scroll down to Payer Conversion Rate

Regional Pricing Enabled for Experiences in the Creator Hub

Additional Resources

FAQs

Can I turn Regional Pricing on or off at any time?

  • Yes. Creators can opt-in and opt-out of Regional Pricing for Passes at any time.

Can I customize the price for each region?

  • No. Creators can select the default price for each Pass. Roblox then sets region-specific pricing for each Pass that is opted-in for Regional Pricing automatically.

How do I track the impact of regional pricing on my experience?

  • Creators can key metrics across regions in Creator Hub.
    For a breakdown of active users by country, go to Creator Hub > Analytics > Demographics.

    For monetization, creators can track revenue, payer conversion rate, average revenue per paying user (ARPU), and average revenue per daily active user (ARPDAU) by navigating to Creator Hub > Monetization > Overview.

Can users gift or trade regionally-priced developer products?

  • If your experience has gifting or trading, before opting in to Regional Pricing for Developer Products, you will need to use the User Price Level API to configure which users are eligible to gift or trade with one another. For example, you may want to prevent users in low-cost regions from gifting or trading with users in high-cost regions. For more details, you can review our documentation.

Do I need to use the Dynamic Price Check before enabling Regional Pricing? What happens if prices are not scripted dynamically?

  • If your products are hard-coded, users inside your experience may not see the correct region-specific price for that developer product or pass, which could cause confusion. To prevent this, you can use our dynamic price check tool to identify which developer product(s) or pass(es) use hard-coded prices. From there, you should use the MarketplaceService API to set up prices correctly. Instructions for doing so can be found here.

How are you preventing users from changing locations to take advantage of lower prices?

  • Ensuring fairness and preventing misuse are our top priorities for this tool. By using a variety of signals to determine a user’s location, we are mitigating the ability of users to manually update their location to take advantage of lower prices. Until we have high confidence in a user’s location, users will get the default (highest) price. That includes users who access Roblox from a VPN.

What is the maximum price difference for a product once regional pricing is enabled?

  • Currently, regional prices will not be discounted by more than 70% of your default price, and they will never exceed the default price you set for your item. For example, in-experience items with a default global price of 100 Robux can be as low as 30 Robux in some regions, depending on local economies.

How do I preview the price of my developer product in each country?

  • On Monetization > Products > Regional Pricing, select Enable Regional Pricing. The Top Countries/Regions list updates to show the adjusted regional price per country or region based on the default price of the product or pass. To view regional prices for all countries and regions, click View all.

How can I check the price a user is shown as a result of Regional Pricing?

  • Developers can call GetProductInfo from a client script to fetch the price the user sees for a particular product or pass. This works for prices that have been regionalized as well as prices that are dynamic during a price optimization test.
local gamePassId = 1234567890
local MarketplaceService = game:GetService("MarketplaceService")
local product = MarketplaceService:GetProductInfo(productId, Enum.InfoType.GamePass)
local priceInRobux = product.PriceInRobux
127 Likes

This topic was automatically opened after 11 minutes.

That is amazing! Great Roblox!

11 Likes

This is awesome, just in time for me releasing my new game.

10 Likes

At least we have ProccessReceipt.CurrencySpent unlike the PromptGamePassPurchasedFinished so we don’t have another disaster

9 Likes

I have never enabled a feature so fast in my entire life

8 Likes

This is ok announcement, this announcement is way better than selling models for USD announcement. That seemed like a disaster..

7 Likes

so is next up, timed price options? :thinking:

12 Likes

Black Friday discounts real!? :sparkles::sparkles::sparkles::sparkles:

5 Likes

“Black Friday” sounds better. Like Halloween, Christmas… and then you wouldn’t have to do much anymore :person_shrugging:

I don’t think it looked like that though. I don’t know what Infinite Days is supposed to mean :person_shrugging:

4 Likes

Next up is dynamic pricing for gamepasses

Country Morning Afternoon Night
USA 100 R$ 125 R$ 75 R$
BRAZIL 75 R$ 100 R$ 50 R$
9 Likes

What is night time prices? Very important info for me

3 Likes

Yep, this is exactly the type of update I like to see.

Much easier than implementing custom systems to solve this.
Thanks Roblox!

3 Likes

Preparing my VPN this instant…

3 Likes

Just one word: Perfect. :sparkles: . .

4 Likes

Я не навижу региональные цены я не могу задонатить другим людям Roblox скатился (региональные цены нельзя отменить а если и можно то только через геймпасы А ЭТО НЕ УДОБНО) Простите меня если я не прав спасибо Roblox.

3 Likes

Okay now when we will we get gamepass/product gifting?

8 Likes

Developer product gifting can already be done. Technically, gamepasses can be “gifted” also via developer products, but not in the literal sense. That said, it would be nice for Roblox to have a built-in feature for this, especially if it automatically handles regional pricing in a way where this can’t be exploited.

10 Likes

Is there any way to ensure the user does not use a VPN to get other regions pricing? because what would stop a user from using a VPN to get a dev product for half it’s price

2 Likes

They commented on it here near the bottom

1 Like