Using Google Play's billing system, you can offer in-app products that charge users on a one-time basis, known as one-time products. In-app products can include items like virtual goods (for example, game levels or potions) and premium services within your app on Google Play.
You can also create a subscription, which charges users on a recurring basis.
Important: Google Play Developer Program Policies and service fees apply to all in-app products, including both one-time products and subscriptions.
Availability
If you're in a supported location for merchant registration, you can use Google Play's billing system.
If you’re in a supported location and want to start using Google Play's billing system features in your apps, set up a payments profile and review the Google Play's billing system API documentation.
To be available for purchase, a product needs to be active, its app needs to be published, and its app needs to be available in the user's country.
If you’re using a test account, active items are available in unpublished apps. To learn more, go to the Android Developers site.
After you create an in-app product, it’s available for users running the latest version of the Google Play Store.
Required permissions
To offer an in-app product, you need to declare the com.android.vending.BILLING
permission in your app’s APK manifest file. If you distribute your app globally, you can still publish apps that use com.android.vending.BILLING
permission in all countries.
Create in-app products
Create a single in-app product
- Product IDs must start with a number or lowercase letter, and can contain numbers (0-9), lowercase letters (a-z), underscores (_), and periods (.).
- You can’t change or reuse a product ID after the product has been created.
- Note: The product ID
android.test
is unavailable for use, along with all product IDs that start withandroid.test
.
To create an in-app product:
- Open Play Console and go to the In-app products page (Monetize > Products > In-app products).
- Click Create product.
- Enter your product details.
- Product ID: A unique ID for your in-app product.
- Title: A short name of the item (up to 55 characters, but we recommend limiting titles to 25 characters to display properly in all contexts), like "Sleeping potion."
- Description: A long description of the item (up to 200 characters), like "Instantly puts creatures to sleep."
- Icon: A unique and accurate image for your product. Don't include text, promotions, or branding. Your product icon is shown on your store listing and during the purchase flow.
- 32-bit PNG
- 512 px by 512 px
- Up to 1 MB
- Price: Enter a price in your local currency or select a pricing template.
- Multi-quantity: Allow multi-quantity checkout for this product. Users will be able to purchase in multiple quantities within the threshold of their country/region. Note the following information:
- To configure multi-quantity checkout in Play Console, your app needs Google Play Billing Library 4.0. Visit the Android Developers site to learn how to integrate the Google Play Billing Library into your app.
- Multi-quantity checkout is not available in some countries/regions.
- In most countries/regions where Multi-quantity checkout is available, the SKU price threshold is around US$100. To allow multi-quantity checkout, you will need to adjust the price (before tax) to below the threshold in each country/region.
- Play Points exclusive: Make your product available only in Google Play Points.
- Save your changes and click Activate to make your in-app product available to users.
Languages and translations
In-app products use the same default language as their app. To add translations in specific languages, select an in-app product, and then click Manage translations and apply the languages you want. To learn more about how to provide localized experience for your users, read Translate and localize your app.
Create a batch of multiple in-app products
Upload a CSV file of in-app products
- Open Play Console
- Go to In-app products page (Monetize > Products > In-app products).
- Click Import.
- Importing multiple products by uploading a CSV file will overwrite existing products only if the value of a
Product ID
in the CSV file matches theProduct ID
of an existing in-app product in the product list. Overwriting a product doesn't delete in-app products that aren't included in the CSV.
- Importing multiple products by uploading a CSV file will overwrite existing products only if the value of a
- Drop your CSV file to upload or click Upload.
Export a CSV file of existing in-app products
If you’ve created in-app products one at a time in Play Console, exporting a CSV file can be a good way to start creating them using a CSV file instead.
- Open Play Console
- Go to In-app products page (Monetize > Products > In-app products).
- Click Export.
View a CSV file example
- The first example defines a title and description in two different languages (
en_US
andes_ES
). A pricing template defines the item's price. - The second example doesn't use a pricing template. Instead, it specifies a price for the default country (US). Play Console uses current exchange rates and locally relevant pricing patterns to automatically set the prices in all other countries where the app is distributed.
- The third example also doesn't use a pricing template. The item's price is specified manually for each country where the app is distributed.
CSV syntax example
Product ID,Published State,Purchase Type,Auto Translate,Locale; Title; Description,Auto Fill Prices,Price,Pricing Template ID
In-app product examples
Example 1
basic_sleeping_potion,published,managed_by_android,false,en_US; Basic Sleeping Potion; Puts small creatures to sleep.; es_ES; Poción básica de dormir; Causa las criaturas pequeñas ir a dormir.,false,,4637138456024710495
Example 2
standard_sleeping_potion, published,managed_by_android,false,en_US; Standard Sleeping Potion; Puts all creatures to sleep for 2 minutes.,true, 1990000,
Example 3
invisibility_potion,published, managed_by_android,false,en_US; Invisibility Potion; Invisible to all enemies for 5 minutes.,false, US; 1990000; BR; 6990000; RU; 129000000; IN; 130000000; ID; 27000000000; MX; 37000000,
Data values for CSV files
Product ID |
Setting this value in the CSV file has the same effect as entering a Product ID when creating a new in-app product. If you specify a |
Publish State |
This value must be set to published or unpublished . This is the same as setting an in-app product as Active or Inactive. |
Purchase Type |
This value must be set to |
Auto Translate |
This value must be set to If you want to provide translations of an in-app product’s title and description, specify these translations explicitly within the |
|
If you include only one locale for an item, you must specify your app's default locale and the item's default title and description:
When setting the Note: When specifying the If you want to include translated versions of the item's title and description, you must list the default locale, title, and description, followed by the locales, titles, and descriptions for each translation. In the following example, the in-app product uses
Note: An app contains a single default language, but each in-app product maintains its own list of translations. Even though the first locale in each item's |
Auto Fill Prices , Country , and Price |
You can set Note: When you specify an item's price in a CSV file, provide a price in micro-units, where 1,000,000 micro-units is equivalent to 1 unit of real currency. Use auto-filled prices The following sections describe how the value of If you set For example, under the following conditions:
You'd set the values of Set your own price per country If you set Note: You must provide a country code and price for each country that your app targets. To view and edit the list of countries that your app targets, use the Countries/regions tab on the Production page. Each For example, if you're offering your app for the following prices (all taxes included) in other countries:
You can set the values of
|
Pricing Template ID |
If an item is linked to a pricing template, you should set If you import a CSV file, you can update the links between in-app products and pricing templates. To link the product to a specific pricing template, set the You can link up to 1000 app prices or in-app product prices to a particular pricing template. Therefore, don't specify the same |