Monetization for games

As a game developer, you need to know your monetization options so you can sustain your business and keep doing what you're passionate about: creating great games. This article provides an overview of the monetization methods for a Universal Windows Platform (UWP) game and how to implement them.

In the past, you would simply put a price on your game and then wait for people to purchase it at a store. But today you have options. You can choose to distribute a game to "brick-and-mortar" stores, sell the game online (either physical or soft copies), or let everyone play the game for free but incorporate some sort of ads or in-game items that can be purchased. Games are also no longer just standalone products. They often come with extra content that can be purchased in addition to the main game.

You can promote and monetize a UWP game in one or more of these ways:

Worldwide distribution channel

The Microsoft Store can make your game available for download in more than 200 countries and regions worldwide, with support for billing via various forms of payment including Visa, MasterCard, and PayPal. For a full list of countries and regions, see Markets and custom prices.

Set a price for your game

UWP games published to the Store can be either be paid or free. A paid game allows you to charge gamers up front for your game at a price you set, whereas a free game allows users to download and play the game without paying for it.

Here are some important concepts regarding the pricing of your game in the Store.

Base price

The base price of the game is what determines whether your game is categorized as paid or free. You can use the Dev Center dashboard to configure the base price based on country and region. The process of determining the price may include your tax responsibilities when selling to different countries and cost considerations for specific markets. You can also set custom prices for specific markets. For more info, see Define pricing and market selection.

Sale price

One way to promote your game is to reduce its price for a limited time. It's also possible to set the sale price to Free to allow your game to be downloaded without payment. You can schedule sale campaigns in advance by setting both the starting date and ending date of the sale. For more info, see Put apps and add-ons on sale.

In-game purchases

In-game purchases are products bought within a game. They're also generically known as in-app purchases. In the Microsoft Store, these products are called add-ons. Add-ons are published through the Windows Dev Center dashboard. You'll also need to enable the add-ons in your game's code.

Types of add-ons

You can create two types of add-ons in the store: durables or consumables. Durables are items that persist over for a specified amount of time and can be purchased only once until they expire. Consumables are items that can be purchased and used again and again.

When creating consumables, decide how you want to keep track of them — that is whether they're developer managed or Store managed (This feature is available starting in Windows 10, version 1607). With a developer-managed consumable, you are responsible for keeping track of the item's balance for the gamer; with a Store-managed consumable, the Microsoft Store keeps track of the item's balance for you. For more info, see Overview of consumable add-ons.

Create in-game purchases

The latest in-app purchases and license info APIs are part of the Windows.Services.Store namespace in the Windows SDK (starting in Windows 10, version 1607). If you're developing a new game that targets 1607 or later release, we recommend that you use the Windows.Services.Store namespace because it supports the latest add-on types and has better performance. It's also designed to be compatible with future types of products and features supported by the Windows Dev Center and the Store. When developing for previous versions of Windows 10, use the Windows.ApplicationModel.Store namespace instead.

For more info, go to In-app purchases and trials.

Simplified purchase example

This section uses a simplified purchase example to illustrate the use of different method calls to implement the purchase flow.

In-game actions / activity Game background tasks
Gamer enters a shop. Shop menu pops up to display the available add-ons and purchase price Game retrieves the product info of the add-ons, determines whether the add-ons have the proper license, and displays the add-ons that are available for purchase by the gamer on the shop menu.
Gamer clicks Buy to purchase an item The Buy action sends a request to purchase the item and starts the payment process to acquire it. The implementation varies depending on the item type. If it is a durable or a one-time purchase item, the customer can own only a single item until it expires. If the item is a consumable, the customer can own one or more of it.

Test in-game purchases during game development

Because an add-on must be created in association with a game, your game must be published and available in the Store. The steps in this section show how to create add-ons while your game is still in development. (If your finished game is already live in the Store, you can skip the first three steps and go directly to Create an add-on in the Store.)

To create add-ons while your game is still in development:

  1. Create a package
  2. Publish the game as hidden
  3. Associate your game solution in Visual Studio with the Store
  4. Create an add-on in the Store

Create a package

For any game to be published, it must meet the minimum Windows App Certification requirements. You can use the Windows App Certification Kit, which is part of the Windows 10 SDK, to run tests on the game to help ensure that it's ready for publishing to the Store. If you have not already downloaded the Windows 10 SDK that includes the Windows App Certification Kit, go to Windows 10 SDK.

To create a package that can be uploaded to the Store:

  1. Open your game solution in Visual Studio.
  2. Within Visual Studio, go to Project > Store > Create App Packages ...
  3. For the Do you want to build packages to upload to the Microsoft Store? option, select Yes.
  4. Sign in to your Dev Center developer account. Or register for a developer account if you don't have one.
  5. Select an app to create the upload package for. If you have not yet created an app submission, provide a new app name to create a new submission. For more info, see Create your app by reserving a name.
  6. After the package has been created successfully, click Launch Windows App Certification Kit to start the testing process.
  7. Fix any errors to create a game package.

Publish the game as hidden

  1. Go to Dev Center and sign in.
  2. From the Dashboard overview or All apps page, click the app you want to work with. If you have not yet created an app submission, click on Create a new app and reserve a name.
  3. On the App Overview page, click Start your submission.
  4. Configure this new submission. On the submission page:
    • Click Pricing and availability. In the Visibility section, choose 'Hide this app and prevent acquisition...' to ensure only your development team has access to the game. For more details, go to Distribution and visibility.
    • Click Properties. In the Category and subcategory section, choose Games and then a suitable subcategory for your game.
    • Click Age ratings. Fill out the questionnaire accurately.
    • Click Packages. Upload the game package created in the earlier step.
  5. Follow any other submission prompts in the dashboard to allow you to successfully publish this game which remains hidden to the public.
  6. Click Submit to the Store.

For more info, go to App submissions.

After your game is submitted to the Store, it enters the app certification process. This process can take up to 16 hours before the game is listed.

Associate your game solution with the Store

With your game solution opened in Visual Studio:

  1. Go to Project > Store > Associate App with the Store ...
  2. Sign in to your Dev Center developer account and select the app name to associate this solution with.
  3. Double-click on the Package.appxmanifest.xml file and go to the Packaging tab to check that the game is associated correctly.

If you have associated the solution to a published game that is live and listed in the Store, your solution will have an active license and you are one step closer in creating add-ons for your game. For more info, see Packaging apps.

Create an add-on in the Store

As you create add-ons, make sure you're associating them with the right game submission. For details about how to configure all the various info associated with an add-on, see Add-on submissions.

  1. Go to the Dev Center and sign in.
  2. From the Dashboard overview or All apps page, click the app you want to create the add-on for.
  3. On the App Overview page, in the Add-ons section, select Create a new add-on.
  4. Select the product type for the add-on: developer-managed consumable, store-managed consumable, or durable.
  5. Enter a unique product ID which will be used as a string variable when integrating this add-on into your game code. This ID will not be seen by consumers. For more info, see Set your app product type and product ID.

Other configurations for add-ons include:

If your game has many add-ons, you can create them programmatically by using the Microsoft Store submission API. For more info, see Create and manage submissions using Microsoft Store services.

Display ads in your game

The libraries and tools in the Microsoft Advertising SDK help you set up a service in your game to receive ads from an ad network. Your gamers will be shown live ads and you'll earn money from the advertisers when your gamers view or interact with the displayed ads. For more info, see Display ads in your app.

Ad formats

Several types of ads can be displayed by using the Microsoft Advertising SDK:

  • Banner ads — Ads that take up a part of your gaming screen and are usually placed within a game.
  • Interstitial video ads — Full-screen ads, which can be very effective when used between levels. If implemented properly, they can be less obtrusive than banner ads.
  • Native ads — Component-based ads, where each piece of the ad creative (such as the title, image, description, and call-to-action text) is delivered to your app as an individual element that you can integrate into your app.

Which ads are displayed?

By default, your app will show ads from Microsoft's network for paid ads. To maximize your ad revenue, you can enable ad mediation for your ad unit to display ads from additional paid ad networks. For more info about current offerings, see our ad mediation guidance.

Which markets allow ads to be displayed?

For the full list of countries and regions that support ads, see Supported markets for ad networks.

APIs for displaying ads

The AdControl, InterstitialAd, and NativeAd classes in the Microsoft Advertising SDK are used to help display ads in games.

To get started, download and install the Microsoft Advertising SDK with Visual Studio 2015 or a later version. For more info, see Install the Microsoft Advertising SDK.

Implementation guides

These walkthroughs show how to implement ads by using AdControl, InterstitialAd, and NativeAd:

During development, you can make use of the test ad unit values to see how the ads are rendered. These test ad unit values are also used in the walkthroughs above.

Here are some best practices to help you in the design and implementation process.

For solutions to common development issues, like ads not appearing, black box blinking and disappearing, or ads not refreshing, see Troubleshooting guides.

Prepare for release by replacing ad unit test values

When you're ready to move to live testing or to receive ads in published games, you must update the test ad unit values to the actual values provided for your game. To create ad units for your game, see Set up ad units in your app.

Other ad networks

These are other ad networks that provide SDKs for serving ads to UWP apps and games.

Vungle

The Vungle SDK for Windows offer video ads in apps and games. To download the SDK, go to Vungle SDK.

Smaato

Smaato enables banner ads to be incorporated into UWP apps and games. Download the SDK and for more info, see the documentation.

AdDuplex

You can use AdDuplex to implement banner or interstitial ads in your game.

To learn more about integrating AdDuplex directly into a Windows 10 XAML project, go to the AdDuplex website:

For info about integrating the AdDuplex SDK into Windows 10 UWP games created using Unity, see Windows 10 SDK for Unity apps installation and usage.

Maximize your game's potential through ad campaigns

Take the next step in promoting your game using ads. When you create an ad campaign for your game, other apps and games will display ads promoting your game.

Choose from several types of campaigns that can help increase your gamer base.

Campaign type Ads for your game appear in...
Paid Apps that match your game’s device or category.
Free community Apps published by other developers who have also opted in to community ad campaigns. For more info, see About community ads.
Free house Only apps that you've published. For more info, see About house ads.