Selling Developer Products On Your Experience Details Page

Hi Creators,

Starting today, you can now sell your developer products (in-game currency, boosts, items, etc) on your experience details page. This means users can now buy your passes and products outside your experience, making it easier for users to discover what your experience has to offer and create a consistent buying experience for all your offerings.

You will have the ability to select which products you would like to sell outside your experience, and which you would not. We recommend selecting products that are accessible to all users regardless of their level or status in the game, as well as products that can be purchased more than once. Products that are limited to specific quantities, levels, and roles within the game and products that can only be used once may not be a good fit for selling outside your experience.

Eligibility:

  • All experiences that sell in-experience items can now sell them on their experience details page.

  • All experiences must utilize the ProcessReceipt API to use this feature. Creators are required to use Test Mode (see below) before they can sell products on the experience details page.

Get Started with Test Mode

Before you can enable developer product sales on the experience detail page, you must use the Test Mode feature to validate that your ProcessReceipt implementation is correct. Test Mode lets developers test out purchasing products outside your experience before opening it up to the public.

If ā€˜ProcessReceiptā€™ is not implemented correctly, users who purchase your products outside your experience will not actually receive the items they buy.

Creators are required to use Test Mode before they can select products to sell outside their experience.

Here is how to use Test Mode:

  1. Go to Creator Hub.

  2. From there, go to Monetization > Developer Products.

  3. Click the ā‹® menu and select External Purchase Settings.

  4. In the External Purchase Settings page, click Enable test mode.

  5. Once test mode is active, return to the Developer Products page and select a product to test.

  6. In the Basic Settings page, click Allow external purchases and save your changes.

  7. Go to the experience detail page and purchase the product you made available for sale. On mobile, this will be called Store.

  8. Enter the experience and confirm that you have received the product you purchased. The receipt status of the ProcessReceipt API should update to Closed.

Roblox then verifies that the test has been completed and allows you to fully activate the feature to sell developer products outside your experiences.

For more information about the ProcessReceipt API and its implementation, see the ProcessReceipt page.

How to sell developer products on the experience details page:

Once you have ensured that the ProcessReceipt API is set up correctly, you can enable sales on the experience detail page by:

  1. Going to the External Purchase Settings page.

  2. Turn on External Purchases.

  3. Return to the Developer Products page and select the products you want to sell outside of your experience.

  4. In the Basic Settings page, click Allow external purchases and save your changes.

  5. Confirm that the products are now available for purchase on the experience detail page.


FAQs

What types of offerings can I sell on the experience details page?

  • You can sell products, passes, and subscriptions on the Experience Details Page. You do not need to sell all developer products outside your experience - you will have the option to select which ones make the most sense to your unique experience.

    Creators are not allowed to list paid random items (e.g. lootboxes) or items that are limited in quantity on the experience details page.

How will my developer products be sorted on the experience details page?

  • At this time, developer products will be displayed on the experience details page alphabetically. We are working towards offering the ability for users to sort and greater personalization in the near future.

Where can I track my sales from the experience details page?

  • You can track overall monetization metrics like payer conversion and revenue by going to Creator Hub > Analytics. Learn more here.

    We have also included a new parameter within ProcessReceipt to let you know where a purchase was made.

Is there a limit to the number of offerings I can list on the experience details page?

  • There is no limit to the number of products and passes you can list on the Experience Details Page.

Why do I need to use the ProcessReceiptsAPI? What happens if itā€™s not implemented correctly?

  • If this API is not implemented correctly, you will not be notified when a user purchases an item on the experience details page and the user will not actually receive the item.

    You will be required to use Test Mode prior to selling your developer products outside your experience. You will only be required to use Test Mode once.

161 Likes

This topic was automatically opened after 9 minutes.

Thatā€™s an unexpected update! :shock: :ocean:
This is a really nice update, allowing players to purchase stuff even outside the game.
But unfortunately it seems like you canā€™t track whetever products were bought more in-game than in the details page, etc; would this get added eventually?

21 Likes

Can we have a feature to hide specific gamepasses from the shop page.

We have a system where you can buy ranks and it autoranks you when you purchase it in game. The issue is we get people who buy the passes then just automatically assume it gives them the rank. It would be less of a headache for us if we could hide these rank passes from the website, and only allow them to buy it in game.

34 Likes

So real quick, do I still need to use test mode for gamepasses where the game checks when they join if they have it? For example, I have a pass that allows a player to travel to a different part of the map. My code just checks if the player owns the pass when they attempt to go there. Would I still need to do test mode for that?

5 Likes

This is really nice to see. Iā€™ll have to explore our current products and see what we can offer through here. I would really like to see how much traffic the experience page store gets, since I personally never really look there myself and buy things in-game.

Also, is there any details that can be shared about the AdReward purchase channel currently?

6 Likes

Yeah, definitely an unexpected but great update! :ocean::raised_hands: Being able to buy stuff outside the game is a solid addition. And yeah, better tracking for in-game vs. details page purchases would be super usefulā€”hopefully, that gets added down the line! :mag::bulb: Thanks Roblox Team!

8 Likes


{3653A2DF-6DF6-46E1-A617-1EB22F68AA8C}
I broke it by accident by creating 2 developer products with that setting on, however I had this setting enabled on other developer products as well, but they donā€™t seem to appear. Also, these 2 developer products donā€™t seem to appear in settings, meaning I canā€™t do anything with them. How can I fix this or do anything with it?

7 Likes

This is awesome! Weā€™re excited to see what sort of impact this will have on increasing revenue!

Will it ever be possible to also sell conditional developer products, and have Robloxā€™s UI show this?

6 Likes

On the Creator Docs, API to check purchase receipts. ProcessReceipt and automatically reads and acknowledges that a user has purchased a product outside of the experience.

So how does this work exactly? when a player buys a outside product, does it go to random server, for Process Receipt to happened, or roblox create a new server, or when player join a server. Iā€™m not really seeing a clear explanation about this, unless Iā€™m missing something.

9 Likes

iā€™m currently implementing this

does ProcessReceipt get called immediately after a player connects to the server (ie as PlayerAdded is ran), or is there some delay? in my case, the ProcessReceipt function is set a few moments after the first player joins, so it might not be running correctly.

could we get more details on how and when it runs? unless iā€™m missing something.

7 Likes

Unexpected but great!! Do more updates like this!

4 Likes

You know, tooltips on the game details page that explain what ā€œpassesā€ and ā€œproductsā€ are would be beneficial to new users who might not have any clue what these are and how they differ from each other. @runlola_run24

6 Likes

In my testing it seems to run the ProcessReceipt function around a second after they join.

Anyway:
It would be nice to have control over the order of the developer products rather than it defaulting to alphabetical order, this looks stupid and confusing and I probably wonā€™t have this feature enabled for this reason:

Other than that this feature could be really great, thanks for adding this.

10 Likes

You should not implement ProcessReceipt like that, it should be set right away when scripts start running on the server.

If you need to yield waiting for something you can do so inside the callback when it gets invoked if some dependent data isnā€™t ready (thereā€™s no rush to return from the callback, it is free to take its time), but you should not be doing non-deterministic waiting (for example, on the results of a web request) before setting the callback.

6 Likes

Good for monetization :slightly_smiling_face:

Not a fan of the game used to promote this though, indirectly promoting AI usage is whack in my opinion, but oh well. Feature itself is good.

Having the same ability with gamepasses would be nice! Some gamepasses work better when only in-game.

4 Likes

ProcessReceipt is set as my framework loads all necessary services, in this case itā€™s CommerceService.

Loading all the services takes around a second, but this can vary on about a million factors. For instance if a player joined before the server had fully initialised, thereā€™s a high chance that their ProcessReceipt could be called before the function is even set.

Again, unlikely scenario, but 100% avoidable. If youā€™re like me and also using a framework (ie knit or flamework for roblox-ts), Iā€™m going to suggest assigning ProcessReceipt as the service is initialised rather than started.

4 Likes

I always found it odd that you couldnā€™t do this so Iā€™m glad to see itā€™s been added. Wasnā€™t expecting thisā€¦

3 Likes

hmmmā€¦ thatā€™s a lot of eggā€¦ event hint or just coincidence?

3 Likes

That would be so OP. There is a lot of ways that this could be used for. Thanks for the unexpected update!

1 Like