Unity Distribution Portal (UDP) lets you distribute your games to multiple app stores through a single hub. UDP repacks your Android build with each store’s dedicated In-App Purchase SDK to make your game compatible with the separate app stores. You can manage all your store submissions from the UDP console.
UDP overview
You can use UDP to distribute premium games and games with IAP.
The UDP console is a web-based portal where you can prepare your games for submission to multiple app stores. The UDP console lets you:
Learn more about the UDP console interface.
The UDP package contains an SDK for working with UDP. It also enables the Unity Distribution Portal settings in the Project SettingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your project behave. More info
See in Glossary window of the Unity Editor.
To use UDP, your game must have a UDP client, including UDP client ID. This identifies your game on the UDP service. The ID is generated when you create a game on UDP and you must link it to your Unity project. To unlink a Unity project from a UDP client, remove the Unity project ID from the Integration Information section in the UDP console.
The UDP package contains a sandbox environment that acts as a test store for your UDP games. When you implement the UDP SDK in your game, your UDP build can then use the sandbox as a test environment. Before you can submit your game to the real stores, you must test your game in the sandbox to verify that your UDP and IAP (if applicable) implementation works properly.
Sandbox testing helps you to identify any issues that arise during your initial UDP implementation. Unresolved problems could prevent UDP repacking your game for stores, or cause UDP to repack the game with the existing problems. This could result in stores rejecting your game or players being unable to complete transactions.
In-app purchases (IAP) let you sell content to players from inside your game. You only need to implement your in-app purchases via UDP. UDP then automatically repacks your game into store-specific builds.
You can implement UDP on both the game client and server sides. For offline games, you only need to implement UDP in the game client. For online games, you can also implement UDP on the server side.
Learn how to:
UDP only supports consumable and non-consumable IAP products. Subscription products are not supported.
Non-consumable products provide permanent effects. Players can only purchase them once.
Consumable products provide temporary effects, such as game currency and extra experience points. Players can purchase these multiple times.
When a user has purchased a consumable product, they must consume it before they can repurchase it. You can use the consumption to ensure the purchased product is successfully delivered.
To consume a product, your game needs to send a Consume request to the UDP SDK. Your game should deliver a product when it is consumed. This prevents the product being delivered repeatedly.
The IAP Catalog is an inventory of the IAP items implemented in your game. For each IAP item, you define a:
When your game is repacked and submitted to a store, UDP syncs your IAP Catalog with the store’s back-end. Your game can then query the IAP inventory from the store’s back-end.
When players purchase IAP products, your game asks the store to confirm the IAP Catalog. UDP must be properly implemented in your game for this step to work smoothly.
The IAP Catalog on the UDP console is the source of truth for what is submitted to the store’s back-end systems.
For a successful implementation, follow the UDP implementation guidance. To ensure your IAPs behave properly, test your game in the UDP Sandbox environment.
You can distribute Premium games (aka pay-to-download games) via UDP to stores which support premium games. You can then view your premium game revenue in the UDP console’s Reporting dashboard.
Learn how to distribute your premium game via UDP.
UDP games belong to a Unity Organization and not to any individual user. All users of an Organization have access to its UDP games. Permissions vary depending on the role of a given user within the Organization.
You can also add users who aren’t in the Organization to specific projects. Add users in the Unity Dashboard under Project > Settings > Users.
You can divide tasks within a Unity Organization between users and non-users of the Unity Editor; for example:
Members of an organization and individuals granted access to a project can both work on Unity projects.
Project-related permissions relate to what UDP features you have access to on a specific Unity project, both in the Unity Editor and in the UDP console. This applies to:
The table below lists the project-related UDP permissions for Users, Managers and Owners in the Unity Editor. These are the same for both project-level and organization-level permissions.
User | Manager | Owner | |
---|---|---|---|
Generate a new UDP client | Yes | Yes | Yes |
Link a Unity project to the UDP client | Yes | Yes | Yes |
Modify UDP settings | Yes | Yes | Yes |
Create or modify IAPs | Yes | Yes | Yes |
The table below lists the project-related UDP permissions for Users, Managers and Owners in the UDP console. These are the same for both project-level and organization-level permissions.
User | Manager | Owner | |
---|---|---|---|
Generate a new UDP client | Yes | Yes | Yes |
Archive a game in game list | No | Yes | Yes |
Delete a game in game list | No | Yes | Yes |
Edit a game revision | Yes | Yes | Yes |
Link a Unity project with a UDP client | Yes | Yes | Yes |
Unlink a Unity project from a UDP client | No | Yes | Yes |
Release a game revision | No | Yes | Yes |
Register a game to a store | No | Yes | Yes |
Publish a game to a store | No | Yes | Yes |
Advanced page operation | No | Yes | Yes |
Status page access and operation | No | Yes | Yes |
Generate an authentication token | No | Yes | Yes |
Organization-related permissions relate to what UDP features you have access to in the Organization. These features are generally restricted to Organization members only, that is, individuals granted access only to specific projects do not have organization-level permissions. The exceptions to this are:
The table below lists additional Organization-related permissions for Users, Managers and Owners.
Project-level | Org-level | |||||
---|---|---|---|---|---|---|
User | Manager | Owner | User | Manager | Owner | |
View the Reporting dashboard | No | No | Yes | No | Yes | Yes |
Access the game list | Yes* | Yes* | Yes* | Yes | Yes | Yes |
Edit the Company profile | No | No | No | No | Yes | Yes |
Sign up the Organization to a store | No | Yes | Yes | No | Yes | Yes |
Note: Project-level users can assess the games within the host organization that owns the project, and any other projects they have access to within their own Organizations.