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:
Kevin Hufnagle
2016-10-11 06:20:50 +00:00
committed by android-build-merger

View File

@@ -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 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> 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 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 account and the app's manifest includes the
<code>com.android.vending.BILLING</code> permission. For more information about this <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"> 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 supported; instead, you must publish it to the alpha or beta distribution
channel. For more information, see <a channel. For more information, see <a
href="{@docRoot}google/play/billing/billing_testing.html#draft_apps">Draft Apps 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 <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 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 associated with the app listing. You cannot create individual product lists for each APK if
you are using the multiple APK feature.</p> 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 <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</strong> page, or you can add a batch of items by importing the items from a 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 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 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 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> <ol>
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li> <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 <li>In the <em>All applications</em> panel, click on the
app name, then open the <strong>In-app Products</strong> page.</li> 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 <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> selling, click <strong>Continue</strong>.</p>
<dl> <dl>
<dt>Product Type</dt> <dt>Product Type</dt>
<dd> <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 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> <a href="#billing-purchase-type">Choosing a Product Type</a>.</p>
<p class="note"><strong>Note: </strong>For subscription items, you cannot change the <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 <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 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 app. You can specify target countries for your app on the
<strong>Pricing &amp; Distribution</strong> page in the Google Play <em>Pricing &amp; Distribution</em> page in the Google Play
Developer Console.</p> Developer Console.</p>
</dd> </dd>
</dl> </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> <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 <p>To add a batch of items to a product list using a CSV file, you first need to
file. The data values that you specify in the CSV file represent the same data values you specify create your CSV file. The data values that you specify in the CSV file represent
manually through the In-app Products UI (see <a href="#billing-form-add">Adding items one at a time the options that you set when adding in-app products to a product list using the
to a product list</a>). 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 <p class="note"><strong>Note:</strong> Batch upload of in-app product lists
country-specific pricing in mind. If you use auto-fill, you can provide a containing subscriptions is not supported. Also, when updating existing items in
tax-exclusive default price, and tax-inclusive prices will be auto-filled. If you a batch upload, you cannot include changes to in-app products that are linked to
do not use auto-fill, prices you provide must include tax.</p> a <a href="#pricing-template">pricing template</a>.</p>
<p class="note"><strong>Note:</strong> Batch upload of product lists containing <p>To import the in-app products that are specified in your CSV file, do the
subscriptions is not supported. Also, when updating existing items in a batch following:</p>
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>
<ol> <ol>
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li> <li>
<li>In the <strong>All applications</strong> panel, select the app <a href="http://play.google.com/apps/publish">Log in</a> to your
name, then open the <strong>In-app Products</strong> page.</li> publisher account.
<li>On the In-app Products List page, click <strong>Import/Export</strong>
&gt; <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> </li>
<li>Select the <strong>Overwrite</strong> checkbox if you want to overwrite existing items in <li>In the <em>All applications</em> panel, select the app
your product list. name, then open the <em>In-app Products</em> page.</li>
<p>This option overwrites values of existing items only if the value of the <em>product_id</em> <li>
in the CSV file matches the In-app Product ID for an existing item in the product list. <p>On the <em>In-app Products</em> page, click
Overwriting doesn't delete items that are on a product list but not present in the CSV <strong>Import/Export</strong> &gt; <strong>Import in-app products from CSV
file.</p> 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> </li>
</ol> </ol>
<p>You can also export an existing product list to a CSV file by clicking <strong>Export to CSV <p>
</strong> on the In-app Product List page. This is useful if you have manually added items to You can also export an existing product list to a CSV file by clicking
a product list and you want to start managing the product list through a CSV file.</p> <strong>Import/Export</strong> &gt; <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> <h4 id="billing-bulk-format">Formatting batches of items</h4>
<p>The CSV file uses commas (,) and semicolons (;) to separate data values. <p>
Commas are used to separate primary data values, and semicolons are used to The CSV file uses commas (<code>,</code>) and semicolons (<code>;</code>) to
separate subvalues. For example, the syntax for the CSV file is as follows:</p> 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
<p>"<em>product_id</em>","<em>publish_state</em>","<em>purchase_type</em>","<em>autotranslate</em> single line within the CSV file.
","<em>locale</em>; <em>title</em>; <em>description</em>","<em>autofill</em>","<em>country</em>; </p>
<em>price</em>", "<em>pricing_template_id</em>" <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>
<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> <dl>
<dt>product_id</dt> <dt><code>Product ID</code></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>
<dd> <dd>
<p> <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>
<p> <p>
This is equivalent to the Price in the In-app Products UI. The price must be specified in If you specify a <code>Product ID</code> assigned to an in-app product that already
micro-units. To convert a currency value to micro-units, you multiply the real value by exists in a product list, and you've checked the <strong>Overwrite
1,000,000. existing products</strong> checkbox in the <em>Import In-app Products</em>
For example, if you want to sell an in-app item for $1.99, you specify <code>1990000</code> in the dialog, the data for the existing in-app product is overwritten with the
<em>price</em> field. values that you specify in the CSV file.
</p> </p>
</dd> </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 &amp; 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&nbsp;&#8381; in Russia.</li>
<li>&#8377;130 in India.</li>
<li>Rp&nbsp;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> <dd>
<p> <p>
If you use this value, you should set <em>autofill</em> to If an item is linked to a pricing template, you should set <code>Auto Fill
<code>false</code> and leave the <em>price</em> column empty. 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>
<p> <p>
This value represents the ID of the pricing template that you've linked to Setting this value has the same effect as navigating to an in-app product's
the in-app product. This ID appears under a pricing template's name <em>Managed Product Details</em> page and linking the product's price to the
on the <strong>Pricing template</strong> page. If an in-app product isn't pricing template that has the same pricing template ID as the one specified
linked to a pricing template, its <em>pricing_template_id</em> value is in the CSV file. This pricing template ID appears underneath a pricing
empty. template's name on the <em>Pricing template</em> page.
</p> </p>
<p> <p>
If you import a CSV file and choose to overwrite the product list, you can If you import a CSV file, and you've checked the <strong>Overwrite existing
update the links between in-app products and pricing templates by changing products</strong> checkbox in the <em>Import In-app Products</em> dialog,
the value of an in-app product's <em>pricing_template_id</em>. Leave the you can update the links between in-app products and pricing templates. To
value empty to unlink an in-app product from all pricing templates. 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>
<p> <p>
<strong>Note: </strong>You can link up to 100 app prices or in-app product You can link up to 100 app prices or in-app product prices to a particular
prices with a particular pricing template. Therefore, don't specify the same pricing template. Therefore, don't specify the same <code>Pricing Template
<em>pricing_template_id</em> value in more than 100 rows of your CSV file. ID</code> value in more than 100 rows of a CSV file.
</p> </p>
</dd> </dd>
</dl> </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"> <h2 id="pricing-template">
Pricing Templates Pricing Templates
</h2> </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 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. 100 apps and in-app products to a single pricing template.
</p> </p>
</p>
<p>
To add a pricing template, do the following: To add a pricing template, do the following:
</p> </p>
@@ -476,14 +623,14 @@ with the <em>locale</em> field.</p>
account. account.
</li> </li>
<li>In the <strong>Settings</strong> panel, open the <strong>Pricing <li>In the <em>Settings</em> panel, open the <em>Pricing
template</strong> page. template</em> page.
</li> </li>
<li> <li>
<p> <p>
If you are adding your first pricing template, the <strong>Add a Pricing If you are adding your first pricing template, the <em>Add a Pricing
Template</strong> banner appears. Select <strong>Add template</strong> to Template</em> banner appears. Select <strong>Add template</strong> to
create a new template. The new template's <em>Pricing</em> tab appears. create a new template. The new template's <em>Pricing</em> tab appears.
</p> </p>
@@ -544,8 +691,8 @@ with the <em>locale</em> field.</p>
account. account.
</li> </li>
<li>In the <strong>Settings</strong> panel, open the <strong>Pricing <li>In the <em>Settings</em> panel, open the <em>Pricing
template</strong> page. This page shows the list of pricing templates you have template</em> page. This page shows the list of pricing templates you have
created for your account. created for your account.
</li> </li>
@@ -605,8 +752,8 @@ with the <em>locale</em> field.</p>
account. account.
</li> </li>
<li>In the <strong>All applications</strong> panel, select the app name, then <li>In the <em>All applications</em> panel, select the app name, then
open the <strong>In-app Products</strong> page. open the <em>In-app Products</em> page.
</li> </li>
<li>Choose the in-app product that you want to link to a pricing template. <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> <p>
To link the price of a paid app to a pricing template, you follow a similar To link the price of a paid app to a pricing template, you follow a similar
process on the app's <strong>Pricing &amp; Distribution</strong> page. process on the app's <em>Pricing &amp; Distribution</em> page.
</p> </p>
<h3 id="delete-linked-item"> <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>Select the app that contains the in-app product you want to delete.
</li> </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>
<li>Choose the in-app product that you want to delete. <li>Choose the in-app product that you want to delete.
@@ -731,8 +878,8 @@ with the <em>locale</em> field.</p>
account. account.
</li> </li>
<li>In the <strong>Settings</strong> panel, open the <strong>Pricing <li>In the <em>Settings</em> panel, open the <em>Pricing
template</strong> page, which shows the list of pricing templates you have template</em> page, which shows the list of pricing templates you have
created for your account. created for your account.
</li> </li>
@@ -746,15 +893,15 @@ with the <em>locale</em> field.</p>
</li> </li>
</ol> </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 <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 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 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 <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> <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> intent.</p>
<p class="note"> <p class="note">
<strong>Note:</strong> Test purchases don't have an <code>orderId</code> <strong>Note:</strong> When a user completes a test purchase, the
field. To track test transactions, you use the <code>purchaseToken</code> <code>orderId</code> field remains blank. To track test transactions, use
field instead. For more information about working with test purchases, see <a 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 href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app
Billing</a>. Billing</a>.
</p> </p>
@@ -799,14 +947,14 @@ assigned and managed by Google.</p>
<p>For transactions dated 5 December 2012 or later, Google payments assigns a <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 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> example:</p>
<pre>"orderId" : "GPA.1234-5678-9012-34567"</pre> <pre>"orderId" : "GPA.1234-5678-9012-34567"</pre>
<p>For transactions dated previous to 5 December 2012, Google checkout assigned <p>For transactions dated previous to 5 December 2012, Google checkout assigned
a Google Order Number and reported that number as the value of 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> Google Order Number:</p>
<pre>"orderId" : "556515565155651"</pre> <pre>"orderId" : "556515565155651"</pre>
@@ -853,8 +1001,8 @@ app.</p>
<p>To locate the key for an app, follow these steps:</p> <p>To locate the key for an app, follow these steps:</p>
<ol> <ol>
<li>Open the <strong>All applications</strong> panel.</li> <li>Open the <em>All applications</em> panel.</li>
<li>Click on the app name, then open the <strong>Services &amp; APIs</strong> <li>Click on the app name, then open the <em>Services &amp; APIs</em>
page.</li> page.</li>
<li>Scroll down to the section of the page labeled Your License Key for This <li>Scroll down to the section of the page labeled Your License Key for This
Application, as shown in figure 5.</li> Application, as shown in figure 5.</li>
@@ -869,7 +1017,7 @@ for apps that depend on the (former) developer key. </p>
width="700" alt=""> width="700" alt="">
<figcaption> <figcaption>
<b>Figure 5. </b>You can find the license key for each app on the <b>Figure 5. </b>You can find the license key for each app on the
<strong>Services &amp; APIs</strong> page. <em>Services &amp; APIs</em> page.
</figcaption> </figcaption>
</figure> </figure>