cherry-pick from mnc-io-docs: docs: Updated descriptions for CSV file settings within IAB. am: 197226e4a5 am: 87ac4d8691
am: b4ce8bd911
Change-Id: I31723ea2af685b9aa400a28e89ef64766112040d
This commit is contained in:
@@ -51,9 +51,9 @@ apps. You can sell an item using Google Play's in-app billing feature only if th
|
||||
listed on an app's product list. Each app has its own product list; you cannot sell
|
||||
items that appear on another app's product list.</p>
|
||||
|
||||
<p>You can access an app's product list by opening the <strong>In-app Products</strong>
|
||||
<p>You can access an app's product list by opening the <em>In-app Products</em>
|
||||
page for an app that is listed in your developer account. The link to the
|
||||
<strong>In-app Products</strong> page appears only if you have a Google payments merchant
|
||||
<em>In-app Products</em> page appears only if you have a Google payments merchant
|
||||
account and the app's manifest includes the
|
||||
<code>com.android.vending.BILLING</code> permission. For more information about this
|
||||
permission, see <a href="{@docRoot}google/play/billing/billing_integrate.html#billing-permission">
|
||||
@@ -73,7 +73,7 @@ uploading an unpublished draft version. This functionality is no longer
|
||||
supported; instead, you must publish it to the alpha or beta distribution
|
||||
channel. For more information, see <a
|
||||
href="{@docRoot}google/play/billing/billing_testing.html#draft_apps">Draft Apps
|
||||
are No Longer Supported</a>.
|
||||
are No Longer Supported</a>.</p>
|
||||
|
||||
<p>In addition, an app package can have only one product list. If you create a product
|
||||
list for an app, and you use the <a
|
||||
@@ -82,8 +82,8 @@ more than one APK for that app, the product list applies to all APK versions tha
|
||||
associated with the app listing. You cannot create individual product lists for each APK if
|
||||
you are using the multiple APK feature.</p>
|
||||
|
||||
<p>You can add items to a product list two ways: you can add items one at a time on the <strong>In-app
|
||||
Products</strong> page, or you can add a batch of items by importing the items from a
|
||||
<p>You can add items to a product list two ways: you can add items one at a time on the <em>In-app
|
||||
Products</em> page, or you can add a batch of items by importing the items from a
|
||||
comma-separated values (CSV) file. Adding items one at a time is useful if your
|
||||
app has only a few in-app items or you are adding only a few items to a
|
||||
product list for testing purposes. The CSV file method is useful if your app has a large
|
||||
@@ -100,14 +100,14 @@ number of in-app items.</p>
|
||||
|
||||
<ol>
|
||||
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
|
||||
<li>In the <strong>All applications</strong> panel, click on the
|
||||
app name, then open the <strong>In-app Products</strong> page.</li>
|
||||
<li>In the <em>All applications</em> panel, click on the
|
||||
app name, then open the <em>In-app Products</em> page.</li>
|
||||
<li><p>Click <strong>Add new product</strong>. After you provide the product type and ID for the item you are
|
||||
selling, click <strong>Continue</strong>.</p>
|
||||
<dl>
|
||||
<dt>Product Type</dt>
|
||||
<dd>
|
||||
<p>The product type can be <strong>Managed product</strong> or <strong>Subscription</strong>. You cannot
|
||||
<p>The product type can be "Managed product" or "Subscription." You cannot
|
||||
change an item's product type after you create the item. For more information, see
|
||||
<a href="#billing-purchase-type">Choosing a Product Type</a>.</p>
|
||||
<p class="note"><strong>Note: </strong>For subscription items, you cannot change the
|
||||
@@ -169,7 +169,7 @@ number of in-app items.</p>
|
||||
<p>You can also change prices for other currencies manually, but you can do
|
||||
this only if a currency is used in one of the target countries for your
|
||||
app. You can specify target countries for your app on the
|
||||
<strong>Pricing & Distribution</strong> page in the Google Play
|
||||
<em>Pricing & Distribution</em> page in the Google Play
|
||||
Developer Console.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
@@ -187,266 +187,412 @@ number of in-app items.</p>
|
||||
|
||||
<h3 id="billing-bulk-add">Adding a batch of items to a product list</h3>
|
||||
|
||||
<p>To add a batch of items to a product list using a CSV file, you first need to create your CSV
|
||||
file. The data values that you specify in the CSV file represent the same data values you specify
|
||||
manually through the In-app Products UI (see <a href="#billing-form-add">Adding items one at a time
|
||||
to a product list</a>).
|
||||
<p>To add a batch of items to a product list using a CSV file, you first need to
|
||||
create your CSV file. The data values that you specify in the CSV file represent
|
||||
the options that you set when adding in-app products to a product list using the
|
||||
Google Play Developer Console UI. For more information about using this UI, see
|
||||
<a href="#billing-form-add">Adding items one at a time to a product list</a>.
|
||||
|
||||
<p>If you are importing and exporting CSV files with in-app products, keep
|
||||
country-specific pricing in mind. If you use auto-fill, you can provide a
|
||||
tax-exclusive default price, and tax-inclusive prices will be auto-filled. If you
|
||||
do not use auto-fill, prices you provide must include tax.</p>
|
||||
<p class="note"><strong>Note:</strong> Batch upload of in-app product lists
|
||||
containing subscriptions is not supported. Also, when updating existing items in
|
||||
a batch upload, you cannot include changes to in-app products that are linked to
|
||||
a <a href="#pricing-template">pricing template</a>.</p>
|
||||
|
||||
<p class="note"><strong>Note:</strong> Batch upload of product lists containing
|
||||
subscriptions is not supported. Also, when updating existing items in a batch
|
||||
upload, you cannot include changes to in-app products that are linked to a
|
||||
<a href="#pricing-template">pricing template</a>.</p>
|
||||
|
||||
<p>To import the items that are specified in your CSV file, do the following:</p>
|
||||
<p>To import the in-app products that are specified in your CSV file, do the
|
||||
following:</p>
|
||||
|
||||
<ol>
|
||||
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
|
||||
<li>In the <strong>All applications</strong> panel, select the app
|
||||
name, then open the <strong>In-app Products</strong> page.</li>
|
||||
<li>On the In-app Products List page, click <strong>Import/Export</strong>
|
||||
> <strong>Import in-app products from CSV file</strong>, then select your
|
||||
CSV file.
|
||||
<p>The CSV file must be on your local computer or on a local disk that is connected to your
|
||||
computer.</p>
|
||||
<li>
|
||||
<a href="http://play.google.com/apps/publish">Log in</a> to your
|
||||
publisher account.
|
||||
</li>
|
||||
<li>Select the <strong>Overwrite</strong> checkbox if you want to overwrite existing items in
|
||||
your product list.
|
||||
<p>This option overwrites values of existing items only if the value of the <em>product_id</em>
|
||||
in the CSV file matches the In-app Product ID for an existing item in the product list.
|
||||
Overwriting doesn't delete items that are on a product list but not present in the CSV
|
||||
file.</p>
|
||||
<li>In the <em>All applications</em> panel, select the app
|
||||
name, then open the <em>In-app Products</em> page.</li>
|
||||
<li>
|
||||
<p>On the <em>In-app Products</em> page, click
|
||||
<strong>Import/Export</strong> > <strong>Import in-app products from CSV
|
||||
file</strong> to open the <em>Import In-app Products</em> dialog.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>
|
||||
If you want to overwrite existing in-app products in your product list
|
||||
during the import process, select the <strong>Overwrite existing
|
||||
products</strong> checkbox.
|
||||
</p>
|
||||
<p>
|
||||
This option overwrites values of existing items only if the value of the
|
||||
<code>Product ID</code> in the CSV file matches the in-app product ID for
|
||||
an existing in-app product in the product list. The overwriting process
|
||||
doesn't delete in-app products that exist in a product list but aren't
|
||||
included in the CSV file
|
||||
</p>
|
||||
<p class="note"><strong>Note: </strong>If you choose not to overwrite
|
||||
existing items, the <code>Product ID</code> given to each item in the CSV
|
||||
file must be different from any of the <code>Product ID</code> values
|
||||
assigned to existing in-app products.
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
Select <strong>Browse files</strong>, then choose the CSV file that contains
|
||||
the items you want to import. The CSV file must be stored locally.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>You can also export an existing product list to a CSV file by clicking <strong>Export to CSV
|
||||
</strong> on the In-app Product List page. This is useful if you have manually added items to
|
||||
a product list and you want to start managing the product list through a CSV file.</p>
|
||||
<p>
|
||||
You can also export an existing product list to a CSV file by clicking
|
||||
<strong>Import/Export</strong> > <strong>Export in-app products to CSV file
|
||||
</strong> on the <em>In-app Products page</em>. This is useful if you have
|
||||
used the UI to add in-app products to your app but you want to start managing
|
||||
the product list through a CSV file instead.
|
||||
</p>
|
||||
|
||||
<h4 id="billing-bulk-format">Formatting batches of items</h4>
|
||||
|
||||
<p>The CSV file uses commas (,) and semicolons (;) to separate data values.
|
||||
Commas are used to separate primary data values, and semicolons are used to
|
||||
separate subvalues. For example, the syntax for the CSV file is as follows:</p>
|
||||
|
||||
<p>"<em>product_id</em>","<em>publish_state</em>","<em>purchase_type</em>","<em>autotranslate</em>
|
||||
","<em>locale</em>; <em>title</em>; <em>description</em>","<em>autofill</em>","<em>country</em>;
|
||||
<em>price</em>", "<em>pricing_template_id</em>"
|
||||
<p>
|
||||
The CSV file uses commas (<code>,</code>) and semicolons (<code>;</code>) to
|
||||
separate data values. Commas are used to separate primary data values, and
|
||||
semicolons are used to separate subvalues. Each item must appear entirely on a
|
||||
single line within the CSV file.
|
||||
</p>
|
||||
<p>
|
||||
When creating a CSV file that represents a list of items, you must specify the
|
||||
CSV syntax on the first row, followed by the items themselves on subsequent
|
||||
rows, as shown in the following example:
|
||||
</p>
|
||||
|
||||
<p>Descriptions and usage details are provided below.</p>
|
||||
<pre class="no-pretty-print">
|
||||
Product ID,Published State,Purchase Type,Auto Translate,Locale; Title; Description,Auto Fill Prices,Price,Pricing Template ID
|
||||
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
|
||||
standard_sleeping_potion,published,managed_by_android,false,en_US; Standard Sleeping Potion; Puts all creatures to sleep for 2 minutes.,true, 1990000,
|
||||
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;
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
This example contains details for three items, each of which represents an
|
||||
in-app product:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
The first item defines a title and description for the <code>en_US</code>
|
||||
and <code>es_ES</code> locales. A pricing template defines the item's
|
||||
price.
|
||||
</li>
|
||||
<li>
|
||||
The second item doesn't use a pricing template. Instead, it specifies a
|
||||
price for the default country (US). The Google Play Developer Console
|
||||
uses current exchange rates and locally relevant pricing patterns to
|
||||
automatically set the prices in all other countries where the app is
|
||||
distributed.
|
||||
</li>
|
||||
<li>
|
||||
The third item also doesn't use a pricing template. The item's price is
|
||||
specified manually for each country where the app is distributed.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Each row in a CSV file can contain the following values, though at least one
|
||||
of these values is undefined in each row:
|
||||
</p>
|
||||
|
||||
<dl>
|
||||
<dt>product_id</dt>
|
||||
<dd>
|
||||
This is equivalent to the In-app Product ID setting in the In-app Products UI. If you specify
|
||||
a <em>product_id</em> that already exists in a product list, and you choose to overwrite
|
||||
the product list while importing the CSV file, the data for the existing item is overwritten with
|
||||
the values specified in the CSV file. The overwrite feature does not delete items that are on a
|
||||
product list but not present in the CSV file.
|
||||
</dd>
|
||||
<dt>publish_state</dt>
|
||||
<dd>
|
||||
This is equivalent to the Publishing State setting in the In-app Products UI. Can be <code>
|
||||
published</code> or <code>unpublished</code>.
|
||||
</dd>
|
||||
<dt>purchase_type</dt>
|
||||
<dd>
|
||||
This is equivalent to the Product Type setting in the In-app Products UI. Can be <code>
|
||||
managed_by_android</code>, which is equivalent to <strong>Managed per user account
|
||||
</strong> in the In-app Products UI, or <code>managed_by_publisher</code>, which is equivalent
|
||||
to <strong>Unmanaged</strong> in the In-app Products UI.
|
||||
</dd>
|
||||
<dt>autotranslate</dt>
|
||||
<dd>
|
||||
This is equivalent to selecting the <strong>Fill fields with auto translation</strong>
|
||||
checkbox in the In-app Products UI. Can be <code>true</code> or <code>false</code>.
|
||||
</dd>
|
||||
<dt>locale</dt>
|
||||
<dd>
|
||||
<p>This is equivalent to the Language setting in the In-app Products UI. You must have an entry
|
||||
for the default locale. The default locale must be the first entry in the list of
|
||||
locales, and it must include a <em>title</em> and <em>description</em>. If you want to provide
|
||||
translated versions of the <em>title</em> and <em>description</em> in addition to the default,
|
||||
you must use the following syntax rules:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>If <em>autotranslate</em> is <code>true</code>, you must specify the default locale,
|
||||
default title, default description, and other locales using the following format:</p>
|
||||
<p>"true,"<em>default_locale</em>; <em>default_locale_title</em>;
|
||||
<em>default_locale_description</em>; <em>locale_2</em>; <em>locale_3</em>, ..."</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>If <em>autotranslate</em> is <code>false</code>, you must specify the default locale,
|
||||
default title, and default description as well as the translated titles and descriptions using
|
||||
the following format:</p>
|
||||
<p>"false,"<em>default_locale</em>; <em>default_locale_title</em>;
|
||||
<em>default_locale_description</em>; <em>locale_2</em>; <em>locale_2_title</em>;
|
||||
<em>local_2_description</em>; <em>locale_3</em>; <em>locale_3_title</em>;
|
||||
<em>locale_3_description</em>; ..."</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p>See table 1 for a list of the language codes you can use with the <em>locale</em> field.</p>
|
||||
</dd>
|
||||
<dt>title</dt>
|
||||
<dd>
|
||||
This is equivalent to the Title setting in the In-app Products UI. If the <em>title</em>
|
||||
contains a semicolon, it must be escaped with a backslash (for example, <code>\;</code>). Also, a backslash
|
||||
must be escaped with a backslash (for example, <code>\\</code>).
|
||||
</dd>
|
||||
<dt>description</dt>
|
||||
<dd>
|
||||
This is equivalent to the Description in the In-app Products UI. If the <em>description</em>
|
||||
contains a semicolon, it must be escaped with a backslash (for example, <code>\;</code>). Also, a backslash
|
||||
must be escaped with a backslash (for example, <code>\\</code>).
|
||||
</dd>
|
||||
<dt>autofill</dt>
|
||||
<dd>
|
||||
<p>This is equivalent to clicking <strong>Auto Fill</strong> in the In-app Products UI. Can be
|
||||
<code>true</code> or <code>false</code>. The syntax for specifying the <em>country</em>
|
||||
and <em>price</em> varies depending on which <em>autofill</em> setting you use:</p>
|
||||
<ul>
|
||||
<li>
|
||||
<p>If <em>autofill</em> is set to <code>true</code>, you need to specify only the default
|
||||
price in your home currency, and you must use this syntax:</p>
|
||||
<p>"true","<em>default_price_in_home_currency</em>"
|
||||
</li>
|
||||
<li>
|
||||
<p>If <em>autofill</em> is set to <code>false</code>, you need to either specify the <em>pricing_template_id</em>
|
||||
that is linked to the in-app product or specify a <em>country</em> and a <em>price</em> for each currency.
|
||||
If you choose to specify countries and prices, you must use the following syntax:</p>
|
||||
<p>"false", "<em>home_country</em>; <em>default_price_in_home_currency</em>; <em>country_2</em>;
|
||||
<em>country_2_price</em>; <em>country_3</em>; <em>country_3_price</em>; ..."</p>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="note"><strong>Note: </strong>If you use an <em>autofill</em> value of <code>false</code>
|
||||
and set country prices manually, you must incorporate country-specific
|
||||
pricing patterns, including tax rates, into the prices you provide.</p>
|
||||
</dd>
|
||||
<dt>country</dt>
|
||||
<dd>
|
||||
The country for which you are specifying a price. You can only list countries that your
|
||||
app is targeting. The country codes are two-letter uppercase
|
||||
ISO country codes (such as "US"), as defined by
|
||||
<a href="http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO 3166-2</a>.
|
||||
</dd>
|
||||
<dt>price</dt>
|
||||
<dt><code>Product ID</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
If you use this value, you shouldn't specify a value for the <em>pricing_template_id</em>.
|
||||
Setting this value in the CSV file has the same effect as entering a
|
||||
<em>Product ID</em> when creating a new in-app product.
|
||||
</p>
|
||||
<p>
|
||||
This is equivalent to the Price in the In-app Products UI. The price must be specified in
|
||||
micro-units. To convert a currency value to micro-units, you multiply the real value by
|
||||
1,000,000.
|
||||
For example, if you want to sell an in-app item for $1.99, you specify <code>1990000</code> in the
|
||||
<em>price</em> field.
|
||||
If you specify a <code>Product ID</code> assigned to an in-app product that already
|
||||
exists in a product list, and you've checked the <strong>Overwrite
|
||||
existing products</strong> checkbox in the <em>Import In-app Products</em>
|
||||
dialog, the data for the existing in-app product is overwritten with the
|
||||
values that you specify in the CSV file.
|
||||
</p>
|
||||
</dd>
|
||||
<dt>pricing_template_id</dt>
|
||||
<dt><code>Publish State</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
This value must be set to <code>published</code>
|
||||
or <code>unpublished</code>.
|
||||
</p>
|
||||
<p>
|
||||
Setting this value to <code>published</code> has the same effect as
|
||||
navigating to an item's <em>Managed Product Details</em> page and choosing
|
||||
<strong>Active</strong> in the drop-down list next to the in-app product's
|
||||
title and product ID. Setting the value to <code>unpublished</code>
|
||||
has the same effect as choosing <strong>Inactive</strong> in the same
|
||||
drop-down list.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>Purchase Type</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
This value must be set to <code>managed_by_android</code> because batch
|
||||
upload of product lists containing subscriptions is not supported.
|
||||
</p>
|
||||
<p>
|
||||
Setting this value to <code>managed_by_android</code> has the same effect
|
||||
as selecting <strong>Managed product</strong> in the <em>Add New
|
||||
Product</em> dialog when creating an in-app product.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>Auto Translate</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
This value must be set to <code>false</code> because auto-translation of
|
||||
in-app product details isn't supported.
|
||||
</p>
|
||||
<p>
|
||||
If you want to provide translations of an in-app product's title and
|
||||
description, you need to specify these translations explicitly within the
|
||||
<code>Locale</code> value.
|
||||
</p>
|
||||
</dd>
|
||||
<dt><code>Locale</code>, <code>Title</code>, and <code>Description</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
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:
|
||||
</p>
|
||||
|
||||
<pre class="no-pretty-print">
|
||||
<var>app_default_locale</var>; <var>item_default_title</var>; <var>item_default_description</var>;
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
Setting these values has the same effect as performing the following
|
||||
sequence of actions:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
Choosing a default language when you add a new app to your
|
||||
publisher account.
|
||||
</li>
|
||||
<li>
|
||||
Navigating to an in-app product's <em>Managed Product Details</em> page.
|
||||
</li>
|
||||
<li>
|
||||
Specifying the in-app product's default title and description.
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
When setting the <code>Locale</code> value, you can use any of the
|
||||
language codes that appear within the <em>Add Your Own Translations</em>
|
||||
dialog. You can access this dialog by navigating to an in-app product's
|
||||
<em>Managed Product Details</em> page and clicking <strong>Add
|
||||
translations</strong> or <strong>Manage translations</strong>.
|
||||
</p>
|
||||
<p class="note">
|
||||
<strong>Note: </strong>When specifying the <code>Title</code> and
|
||||
<code>Description</code> values, use backslashes to escape the semicolon
|
||||
(<code>\;</code>) and backslash (<code>\\</code>) characters.
|
||||
</p>
|
||||
<p>
|
||||
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 <code>en_US</code>
|
||||
(United States English) as the default locale and <code>es_ES</code>
|
||||
(Spain Spanish) as a translation:
|
||||
</p>
|
||||
<pre class="no-pretty-print">
|
||||
en_US; Invisibility Cloak; Makes you invisible.; es_ES; Capote Invisible; Se vuelven invisible.
|
||||
</pre>
|
||||
<p class="note">
|
||||
<strong>Note: </strong>An app contains a single default language, but each
|
||||
in-app product maintains its own list of translations. Therefore, although
|
||||
the first locale in each item's <code>Locale</code> value must be the same
|
||||
throughout the CSV file, the other locales can differ from one item to
|
||||
another.
|
||||
</p>
|
||||
<p>
|
||||
Providing values for multiple translations has the same effect as
|
||||
performing the following sequence of actions:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
Navigating to an in-app product's <em>Managed Product Details</em> page.
|
||||
</li>
|
||||
<li>
|
||||
Clicking <strong>Add translations</strong>.
|
||||
</li>
|
||||
<li>
|
||||
Selecting the languages for the translations and clicking
|
||||
<strong>Add</strong>.
|
||||
</li>
|
||||
<li>
|
||||
Choosing one of the languages you added in the previous step.
|
||||
</li>
|
||||
<li>
|
||||
Specifying a new title and description, which serve as translations into
|
||||
the selected language.
|
||||
</li>
|
||||
<li>
|
||||
Repeating steps 4 and 5 to add translations into all other non-default
|
||||
languages.
|
||||
</li>
|
||||
</ol>
|
||||
</dd>
|
||||
<dt><code>Auto Fill Prices</code>, <code>Country</code>, and
|
||||
<code>Price</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
You can set <code>Auto Fill Prices</code> to <code>true</code> or
|
||||
<code>false</code>.
|
||||
If an in-app product uses a <a href="#pricing-template">pricing
|
||||
template</a>, you should set <code>Auto Fill Prices</code> to
|
||||
<code>false</code>, and you shouldn't set a value for the
|
||||
<code>Price</code>.
|
||||
</p>
|
||||
<p class="note">
|
||||
<strong>Note: </strong>When you specify an item's price in a CSV file, you
|
||||
provide a price in <em>micro-units</em>, where 1,000,000 micro-units is
|
||||
equivalent to 1 unit of real currency.
|
||||
</p>
|
||||
<p>
|
||||
The following sections describe how the value of
|
||||
<code>Auto Fill Prices</code> affects the syntax and meaning of the
|
||||
<code>Country</code> and <code>Price</code> values.
|
||||
</p>
|
||||
<h5>Using auto-filled prices</h5>
|
||||
<p>
|
||||
If you set <code>Auto Fill Prices</code> to <code>true</code>, you specify
|
||||
only the item's default price; you don't include a <code>Country</code>
|
||||
value. Setting <code>Auto Fill Prices</code> to <code>true</code> has the
|
||||
same effect as performing the following sequence of actions:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
Navigating to an in-app product's <em>Managed Product Details</em> page.
|
||||
</li>
|
||||
<li>
|
||||
Selecting <strong>Edit</strong> in the <em>Price</em> section.
|
||||
</li>
|
||||
<li>
|
||||
Entering a default, tax-exclusive price. Auto-filled prices include tax.
|
||||
</li>
|
||||
<li>
|
||||
Clicking the checkbox next to <em>COUNTRY</em> in the <em>Edit Local
|
||||
Prices</em> dialog that appears.
|
||||
</li>
|
||||
<li>
|
||||
Selecting <strong>Refresh exchange rates</strong>.
|
||||
</li>
|
||||
<li>
|
||||
Selecting <strong>Apply</strong>.
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
For example, under the following conditions:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Your app's default locale is <code>en_US</code>.</li>
|
||||
<li>An in-app product's default, tax-exclusive price is $1.99.</li>
|
||||
<li>You want the prices for other countries auto-filled.</li>
|
||||
</ul>
|
||||
<p>
|
||||
...you'd set the values of <code>Auto Fill Prices</code> and
|
||||
<code>Price</code> at the end of a row in the CSV file as follows:
|
||||
</p>
|
||||
|
||||
<pre class="no-pretty-print">
|
||||
true,1990000,
|
||||
</pre>
|
||||
|
||||
<h5>Not using auto-filled prices</h5>
|
||||
<p>
|
||||
If you set <code>Auto Fill Prices</code> to <code>false</code> instead,
|
||||
you specify a series of <code>Country</code> and <code>Price</code>
|
||||
values for all countries where you distribute your app, including the country corresponding to your app's default locale.
|
||||
Each <code>Country</code> value is the two-letter uppercase <a
|
||||
class="external-link"
|
||||
href="https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2">ISO country
|
||||
code</a> that represents a country where your app is distributed.
|
||||
</p>
|
||||
<p class="note">
|
||||
<strong>Note: </strong>You must provide a country code and price for each
|
||||
country that your app is targeting. To view and edit the list of countries
|
||||
that your app targets, open your app's <em>Pricing & Distribution</em>
|
||||
page.
|
||||
</p>
|
||||
<p>
|
||||
Each <code>Price</code> value represents the cost of the item in
|
||||
micro-units of the currency used in that country. Setting <code>Auto Fill
|
||||
Prices</code> to <code>false</code> has the same effect as performing
|
||||
the following sequence of actions:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
Navigating to an in-app product's <em>Managed Product Details</em> page.
|
||||
</li>
|
||||
<li>
|
||||
Selecting <strong>Edit</strong> in the <em>Price</em> section.
|
||||
</li>
|
||||
<li>
|
||||
Explicitly setting tax-inclusive prices for different countries in the
|
||||
<em>Edit Local Prices</em> dialog that appears.
|
||||
</li>
|
||||
<li>
|
||||
Selecting <strong>Apply</strong>.
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
For example, if you're offering your app for the following prices (all
|
||||
taxes included) in other countries:
|
||||
</p>
|
||||
<ul>
|
||||
<li>R$6.99 in Brazil.</li>
|
||||
<li>129 ₽ in Russia.</li>
|
||||
<li>₹130 in India.</li>
|
||||
<li>Rp 27,000 in Indonesia.</li>
|
||||
<li>$37 in Mexico.</li>
|
||||
</ul>
|
||||
<p>
|
||||
...you'd set the values of <code>Auto Fill Prices</code>,
|
||||
<code>Country</code>, and <code>Price</code> at the end of a row in the
|
||||
CSV file as follows:
|
||||
</p>
|
||||
|
||||
<pre class="no-pretty-print">
|
||||
false, BR; 6990000; RU; 129000000; IN; 130000000; ID; 27000000000; MX; 37000000;
|
||||
</pre>
|
||||
|
||||
</dd>
|
||||
<dt><code>Pricing Template ID</code></dt>
|
||||
<dd>
|
||||
<p>
|
||||
If you use this value, you should set <em>autofill</em> to
|
||||
<code>false</code> and leave the <em>price</em> column empty.
|
||||
If an item is linked to a pricing template, you should set <code>Auto Fill
|
||||
Prices</code> to <code>false</code>, and you shouldn't set a value for the
|
||||
<code>Price</code> column. If the item isn't linked to a pricing template,
|
||||
you shouldn't set a value for the <code>Pricing Template ID</code>; instead,
|
||||
you should set <code>Auto Fill Prices</code>, <code>Country</code>, and
|
||||
<code>Price</code> based on how you want to set the in-app product's prices.
|
||||
</p>
|
||||
<p>
|
||||
This value represents the ID of the pricing template that you've linked to
|
||||
the in-app product. This ID appears under a pricing template's name
|
||||
on the <strong>Pricing template</strong> page. If an in-app product isn't
|
||||
linked to a pricing template, its <em>pricing_template_id</em> value is
|
||||
empty.
|
||||
Setting this value has the same effect as navigating to an in-app product's
|
||||
<em>Managed Product Details</em> page and linking the product's price to the
|
||||
pricing template that has the same pricing template ID as the one specified
|
||||
in the CSV file. This pricing template ID appears underneath a pricing
|
||||
template's name on the <em>Pricing template</em> page.
|
||||
</p>
|
||||
<p>
|
||||
If you import a CSV file and choose to overwrite the product list, you can
|
||||
update the links between in-app products and pricing templates by changing
|
||||
the value of an in-app product's <em>pricing_template_id</em>. Leave the
|
||||
value empty to unlink an in-app product from all pricing templates.
|
||||
If you import a CSV file, and you've checked the <strong>Overwrite existing
|
||||
products</strong> checkbox in the <em>Import In-app Products</em> dialog,
|
||||
you can update the links between in-app products and pricing templates. To
|
||||
link the product to a specific pricing template, set the <code>Pricing
|
||||
Template ID</code> value to that pricing template's ID. To unlink an in-app
|
||||
product from all pricing templates, don't set a value for its <code>Pricing
|
||||
Template ID</code>.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Note: </strong>You can link up to 100 app prices or in-app product
|
||||
prices with a particular pricing template. Therefore, don't specify the same
|
||||
<em>pricing_template_id</em> value in more than 100 rows of your CSV file.
|
||||
You can link up to 100 app prices or in-app product prices to a particular
|
||||
pricing template. Therefore, don't specify the same <code>Pricing Template
|
||||
ID</code> value in more than 100 rows of a CSV file.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="table-caption" id="language-table"><strong>Table 1.</strong> Language codes you can use
|
||||
with the <em>locale</em> field.</p>
|
||||
|
||||
<table>
|
||||
|
||||
<tr>
|
||||
<th>Language</th>
|
||||
<th>Code</th>
|
||||
<th>Language</th>
|
||||
<th>Code</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Chinese</td>
|
||||
<td>zh_TW</td>
|
||||
<td>Italian</td>
|
||||
<td>it_IT</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Czech</td>
|
||||
<td>cs_CZ</td>
|
||||
<td>Japanese</td>
|
||||
<td>ja_JP</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Danish</td>
|
||||
<td>da_DK</td>
|
||||
<td>Korean</td>
|
||||
<td>ko_KR</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dutch</td>
|
||||
<td>nl_NL</td>
|
||||
<td>Norwegian</td>
|
||||
<td>no_NO</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>English</td>
|
||||
<td>en_US</td>
|
||||
<td>Polish</td>
|
||||
<td>pl_PL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>French</td>
|
||||
<td>fr_FR</td>
|
||||
<td>Portuguese</td>
|
||||
<td>pt_PT</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Finnish</td>
|
||||
<td>fi_FI</td>
|
||||
<td>Russian</td>
|
||||
<td>ru_RU</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>German</td>
|
||||
<td>de_DE</td>
|
||||
<td>Spanish</td>
|
||||
<td>es_ES</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Hebrew</td>
|
||||
<td>iw_IL</td>
|
||||
<td>Swedish</td>
|
||||
<td>sv_SE</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Hindi</td>
|
||||
<td>hi_IN</td>
|
||||
<td>--</td>
|
||||
<td>--</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h2 id="pricing-template">
|
||||
Pricing Templates
|
||||
</h2>
|
||||
@@ -466,7 +612,8 @@ with the <em>locale</em> field.</p>
|
||||
can apply to paid apps and in-app products. You can link the prices of up to
|
||||
100 apps and in-app products to a single pricing template.
|
||||
</p>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To add a pricing template, do the following:
|
||||
</p>
|
||||
|
||||
@@ -476,14 +623,14 @@ with the <em>locale</em> field.</p>
|
||||
account.
|
||||
</li>
|
||||
|
||||
<li>In the <strong>Settings</strong> panel, open the <strong>Pricing
|
||||
template</strong> page.
|
||||
<li>In the <em>Settings</em> panel, open the <em>Pricing
|
||||
template</em> page.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>
|
||||
If you are adding your first pricing template, the <strong>Add a Pricing
|
||||
Template</strong> banner appears. Select <strong>Add template</strong> to
|
||||
If you are adding your first pricing template, the <em>Add a Pricing
|
||||
Template</em> banner appears. Select <strong>Add template</strong> to
|
||||
create a new template. The new template's <em>Pricing</em> tab appears.
|
||||
</p>
|
||||
|
||||
@@ -544,8 +691,8 @@ with the <em>locale</em> field.</p>
|
||||
account.
|
||||
</li>
|
||||
|
||||
<li>In the <strong>Settings</strong> panel, open the <strong>Pricing
|
||||
template</strong> page. This page shows the list of pricing templates you have
|
||||
<li>In the <em>Settings</em> panel, open the <em>Pricing
|
||||
template</em> page. This page shows the list of pricing templates you have
|
||||
created for your account.
|
||||
</li>
|
||||
|
||||
@@ -605,8 +752,8 @@ with the <em>locale</em> field.</p>
|
||||
account.
|
||||
</li>
|
||||
|
||||
<li>In the <strong>All applications</strong> panel, select the app name, then
|
||||
open the <strong>In-app Products</strong> page.
|
||||
<li>In the <em>All applications</em> panel, select the app name, then
|
||||
open the <em>In-app Products</em> page.
|
||||
</li>
|
||||
|
||||
<li>Choose the in-app product that you want to link to a pricing template.
|
||||
@@ -625,7 +772,7 @@ with the <em>locale</em> field.</p>
|
||||
|
||||
<p>
|
||||
To link the price of a paid app to a pricing template, you follow a similar
|
||||
process on the app's <strong>Pricing & Distribution</strong> page.
|
||||
process on the app's <em>Pricing & Distribution</em> page.
|
||||
</p>
|
||||
|
||||
<h3 id="delete-linked-item">
|
||||
@@ -657,7 +804,7 @@ with the <em>locale</em> field.</p>
|
||||
<li>Select the app that contains the in-app product you want to delete.
|
||||
</li>
|
||||
|
||||
<li>Open the app's <strong>In-app Products</strong> page.
|
||||
<li>Open the app's <em>In-app Products</em> page.
|
||||
</li>
|
||||
|
||||
<li>Choose the in-app product that you want to delete.
|
||||
@@ -731,8 +878,8 @@ with the <em>locale</em> field.</p>
|
||||
account.
|
||||
</li>
|
||||
|
||||
<li>In the <strong>Settings</strong> panel, open the <strong>Pricing
|
||||
template</strong> page, which shows the list of pricing templates you have
|
||||
<li>In the <em>Settings</em> panel, open the <em>Pricing
|
||||
template</em> page, which shows the list of pricing templates you have
|
||||
created for your account.
|
||||
</li>
|
||||
|
||||
@@ -746,15 +893,15 @@ with the <em>locale</em> field.</p>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h2 id="billing-purchase-type">Choosing a Product Type</h3>
|
||||
<h2 id="billing-purchase-type">Choosing a Product Type</h2>
|
||||
|
||||
<p>An item's product type controls how Google Play manages the purchase of the item. The supported
|
||||
product types include "managed product" and "subscription." Since support for different product
|
||||
types can vary among versions of the In-app Billing API, make sure that you choose a product
|
||||
type that's valid for the version of the In-app Billing API that your app uses. </p>
|
||||
type that's valid for the version of the In-app Billing API that your app uses.</p>
|
||||
|
||||
<p>For details, refer to the documentation for the <a
|
||||
href="{@docRoot}google/play/billing/api.html#producttype">In-app Billing API</a>.
|
||||
href="{@docRoot}google/play/billing/api.html#producttype">In-app Billing API</a>.</p>
|
||||
|
||||
<h2 id="billing-refunds">Handling Refunds</h2>
|
||||
|
||||
@@ -782,9 +929,10 @@ you at the conclusion of the purchase flow, as the value of the
|
||||
intent.</p>
|
||||
|
||||
<p class="note">
|
||||
<strong>Note:</strong> Test purchases don't have an <code>orderId</code>
|
||||
field. To track test transactions, you use the <code>purchaseToken</code>
|
||||
field instead. For more information about working with test purchases, see <a
|
||||
<strong>Note:</strong> When a user completes a test purchase, the
|
||||
<code>orderId</code> field remains blank. To track test transactions, use
|
||||
the <code>purchaseToken</code> field instead. For more information about
|
||||
working with test purchases, see <a
|
||||
href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app
|
||||
Billing</a>.
|
||||
</p>
|
||||
@@ -799,14 +947,14 @@ assigned and managed by Google.</p>
|
||||
|
||||
<p>For transactions dated 5 December 2012 or later, Google payments assigns a
|
||||
Merchant Order Number (rather than a Google Order Number) and reports the Merchant
|
||||
Order Number as the value of <code>orderId</code>. Here's an
|
||||
Order Number as the value of <code>orderID</code>. Here's an
|
||||
example:</p>
|
||||
|
||||
<pre>"orderId" : "GPA.1234-5678-9012-34567"</pre>
|
||||
|
||||
<p>For transactions dated previous to 5 December 2012, Google checkout assigned
|
||||
a Google Order Number and reported that number as the value of
|
||||
<code>orderId</code>. Here's an example of an <code>orderId</code> holding a
|
||||
<code>orderID</code>. Here's an example of an <code>orderID</code> holding a
|
||||
Google Order Number:</p>
|
||||
|
||||
<pre>"orderId" : "556515565155651"</pre>
|
||||
@@ -853,8 +1001,8 @@ app.</p>
|
||||
|
||||
<p>To locate the key for an app, follow these steps:</p>
|
||||
<ol>
|
||||
<li>Open the <strong>All applications</strong> panel.</li>
|
||||
<li>Click on the app name, then open the <strong>Services & APIs</strong>
|
||||
<li>Open the <em>All applications</em> panel.</li>
|
||||
<li>Click on the app name, then open the <em>Services & APIs</em>
|
||||
page.</li>
|
||||
<li>Scroll down to the section of the page labeled Your License Key for This
|
||||
Application, as shown in figure 5.</li>
|
||||
@@ -869,7 +1017,7 @@ for apps that depend on the (former) developer key. </p>
|
||||
width="700" alt="">
|
||||
<figcaption>
|
||||
<b>Figure 5. </b>You can find the license key for each app on the
|
||||
<strong>Services & APIs</strong> page.
|
||||
<em>Services & APIs</em> page.
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user