diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd index ff7acc92b7d15..2203f71678f38 100644 --- a/docs/html/google/play/billing/billing_admin.jd +++ b/docs/html/google/play/billing/billing_admin.jd @@ -8,10 +8,11 @@ parent.link=index.html

In this document

  1. Creating a Product List
  2. +
  3. Pricing Templates
  4. Choosing a Product Type
  5. -
  6. Setting up Test Accounts
  7. Handling Refunds
  8. Working with Order Numbers
  9. +
  10. Setting up Test Accounts
  11. Where to Get Support
@@ -44,7 +45,19 @@ Developer Console.

The Google Play Developer Console provides a product list for each of your published applications. You can sell an item using Google Play's in-app billing feature only if the item is listed on an application's product list. Each application has its own product list; you cannot sell -items that are listed in another application's product list.

+items that appear on another application's product list.

+ +
+
+ The Mythical Journey app lists two in-app products, Invisibility Potion and Sleeping Potion. +
+ Figure 1. You can access an application's product list by + selecting the In-app Products link in the main Apps + navigation. +
+
+

You can access an application's product list by clicking the In-App Products link in applications listed in your developer account (see @@ -58,25 +71,17 @@ product description, and price. The product list stores only metadata about the you are selling in your application. It does not store any digital content. You are responsible for storing and delivering the digital content that you sell in your applications.

-
- -

- Figure 1. You can access an application's product list by clicking the - In-App Products link in the main Apps navigation. -

-
-

You can create a product list for any published application, or any application in the alpha or beta channels, that's been uploaded and saved to the Developer Console. However, you must have a Google payments merchant account and the application's manifest must include the com.android.vending.BILLING permission. If an application's manifest does not include this permission, you will be able to edit -existing items in the product list but you will not be able to add new items to the list. For more +existing items in the product list, but you won't be able to add new items to the list. For more information about this permission, see Updating Your Application's Manifest.

-

Note: Previously you could test an app by +

Note: Previously, you could test an app by 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 -

Note: Batch upload of product lists containing subscriptions is not yet supported.

+

Note: Batch upload of product lists containing subscriptions is not yet supported. +Also, you cannot perform a batch upload containing changes to in-app products that are linked to a +pricing template.

Adding items one at a time to a product list

@@ -107,39 +114,67 @@ number of in-app items.

  • Log in to your publisher account.
  • In the All Applications panel, click on the app name, then select In-app Products.
  • -
  • Click Add new product (see figure 2) and provide details about the item you are - selling and then click Save or Publish.
  • +
  • Click Add new product (see figure 2) and provide the product type and ID for the item you are + selling. Click Continue.
  • +
  • Enter additional information about the item, then click Save or Publish. -
    - -

    - Figure 2. The Add New Product page lets you add items to an - application's product list. -

    +
    +
    + Adding a managed product with a Product ID of basic_sleeping_potion. +
    + Figure 2. The Add New Product page lets you + provide basic information about a paid app or in-app product. +
    +
    -

    You must enter the following information for each item in a product list:

    +
    +
    + +
    + Figure 3. The New Managed Product page lets you finish + adding items to an app’s product list. +
    +
    +
    + +
    +
    + An item that costs 1.99 in USD usually costs a different amount in AUD,
+    EUR, or BOB. Some countries also add tax to the price. +
    + Figure 4. Specifying additional currencies for an in-app product. +
    +
    +
    + +

    You must enter the following information for each item in a product list (see + figures 2 and 3):

    -
    - -

    - Figure 3. Specifying additional currencies for an in-app product. -

    -
    - -

    For more information about product IDs and product lists, see -Creating In-App Product IDs. For more information about pricing, see -In-App Billing Pricing.

    - -

    Note: Be sure to plan your product ID namespace. You cannot reuse -or modify product IDs after you save them.

    -

    Adding a batch of items to a product list

    To add a batch of items to a product list using a CSV file, you first need to create your CSV @@ -203,17 +221,48 @@ file. The data values that you specify in the CSV file represent the same data v manually through the In-app Products UI (see Adding items one at a time to a product list). -

    If you are importing and exporting CSV files with in-app products, please -keep tax-inclusive 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 +

    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.

    Note: Batch upload of product lists containing -subscriptions is not yet supported.

    +subscriptions is not yet supported. Also, you cannot perform a batch upload +containing changes to in-app products that are linked to a +pricing template.

    -The CSV file uses commas (,) and semi-colons (;) to separate data values. -Commas are used to separate primary data values, and semi-colons are used to separate subvalues. For -example, the syntax for the CSV file is as follows:

    + + +

    To import the items that are specified in your CSV file, do the following:

    + +
      +
    1. Log in to your publisher account.
    2. +
    3. In the All Applications panel, click on the app + name, then select In-app Products.
    4. +
    5. On the In-app Products List page, click Import/Export + > Import in-app products from CSV file, then select your + CSV file. +

      The CSV file must be on your local computer or on a local disk that is connected to your + computer.

      +
    6. +
    7. Select the Overwrite checkbox if you want to overwrite existing items in + your product list. +

      This option overwrites values of existing items only if the value of the product_id + 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.

      +
    8. +
    + +

    You can also export an existing product list to a CSV file by clicking Export to CSV + 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.

    + +

    Formatting batches of items

    + +

    The CSV file uses commas (,) and semi-colons (;) to separate data values. +Commas are used to separate primary data values, and semi-colons are used to +separate subvalues. For example, the syntax for the CSV file is as follows:

    "product_id","publish_state","purchase_type","autotranslate ","locale; title; description","autofill","country; @@ -266,36 +315,39 @@ example, the syntax for the CSV file is as follows:

  • title

    This is equivalent to the Title setting in the In-app Products UI. If the title contains a semicolon, it must be escaped with a backslash (for example, "\;"). A backslash - should also be escaped with a backslash (for example, "\\">.

    + should also be escaped with a backslash (for example, "\\").

  • description

    This is equivalent to the Description in the In-app Products UI. If the description contains a semicolon, it must be escaped with a backslash (for example, "\;"). A backslash - should also be escaped with a backslash (for example, "\\">.

    + should also be escaped with a backslash (for example, "\\").

  • autofill

    This is equivalent to clicking Auto Fill in the In-app Products UI. Can be true or false. The syntax for specifying the country and price varies depending on which autofill setting you use.

    If autofill is set to true, you need to specify only the default - price in your home currency and you must use this syntax:

    + price in your home currency, and you must use this syntax:

    "true","default_price_in_home_currency"

    If autofill is set to false, you need to specify a country - and a price for each currency and you must use the following syntax:

    + and a price for each currency, and you must use the following syntax:

    "false", "home_country; default_price_in_home_currency; country_2; country_2_price; country_3; country_3_price; ..."

    +

    Note: If you use an autofill value of false + and set country prices manually, you must incorporate country-specific + pricing patterns, including tax rates, into the prices you provide.

  • country

    The country for which you are specifying a price. You can only list countries that your application is targeting. The country codes are two-letter uppercase - ISO country codes (such as "US") as defined by + ISO country codes (such as "US"), as defined by ISO 3166-2.

  • price

    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 1990000 in the + For example, if you want to sell an in-app item for $1.99, you specify 1990000 in the price field.

  • @@ -373,32 +425,352 @@ with the locale field.

    -

    To import the items that are specified in your CSV file, do the following:

    +

    + Pricing Templates +

    + +

    + If you sell multiple apps at the same price—or multiple in-app products at + the same price across one or more apps—you can add pricing + templates. These templates make it easier to manage shared prices. +

    + +

    + Adding a pricing template +

    + +

    + When creating a template, you can provide new pricing information, or you can + apply pricing information from an existing paid app or in-app product. +

    + +
    +
    + A template with the name Basic inventory uses a price of
+    USD 0.99. +
    + Figure 5. The Pricing template page, where you add pricing + details for the new template you're creating. +
    +
    +
    + +

    + To add a pricing template, do the following: +

      -
    1. Log in to your publisher account.
    2. -
    3. In the All Applications panel, click on the app - name, then select In-app Products.
    4. -
    5. On the In-app Products List page, click Import/Export - > Import in-app products from CSV file, then select your - CSV file. -

      The CSV file must be on your local computer or on a local disk that is connected to your - computer.

      +
    6. + Log in to your publisher + account.
    7. -
    8. Select the Overwrite checkbox if you want to overwrite existing items in - your product list. -

      This option overwrites values of existing items only if the value of the product_id - in the CSV file matches the In-app Product ID for an existing item in the product list. - Overwriting does not delete items that are on a product list but not present in the CSV - file.

      + +
    9. In the Settings panel, select Pricing + template. +
    10. + +
    11. +

      + If you are adding your first pricing template, the Add a Pricing + Template banner appears. Select Add template to + create a new template. The Pricing Template page + appears. +

      + +

      + Otherwise, you see a list of your pricing templates. Select New + pricing template. The Pricing Template page + appears. +

      +
    12. + +
    13. +

      + Provide details about the template. These details include the name, the + price, and whether to include tax as part of your country-specific + prices. +

      +

      + Based on the price and tax option you provide, the Developer Console + generates prices for international currencies using today's exchange + rates and country-specific pricing patterns. +

      +
    14. +
    15. Select Create template to finish adding the template.
    -

    You can also export an existing product list to a CSV file by clicking Export to CSV - 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.

    + -

    Choosing a Product Type

    +

    + You can link shared prices across paid apps or in-app products to a pricing + template. To complete the linking process, use either the template's + Linked Items tab or the Price section within a paid app or in-app + product's pricing page. +

    + +

    + Note: Since a subscription within your app has a constant + price, you cannot link a subscription with a pricing template. You can, + however, import the prices from a template and apply them to a new + subscription. +

    + +

    + Linking a pricing template or paid app to an in-app product +

    + +

    + After you create a pricing template, you can link the prices of in-app + products and paid apps to that template. After completing this linking + process, any changes you make to the pricing template are applied to the + prices of items that you've linked to the template. +

    + +
    +
    + The Sleeping Potion in-app product is linked to the Basic
+    Inventory item, but the Invisibility Potion is not. +
    + Figure 6. Use the Linked Items tab of the + Pricing Template page to change which in-app products and paid + apps are linked to a pricing template. +
    +
    +
    + +

    + To link a pricing template to an in-app product, do the following: +

    + +
      +
    1. + Log in to your publisher + account. +
    2. + +
    3. In the Settings panel, select Pricing + template. The Pricing Template page appears, + showing the list of pricing templates you have created for your account. +
    4. + +
    5. Choose the pricing template that you want to link to an in-app product, + then select the Linked Items tab. A page appears, showing options to + link your pricing template to in-app products and paid apps. +
    6. + +
    7. In the Link In-App Products section of the page, enter or choose the name + of an app. This app should contain the in-app product that you want to link + to your pricing template. +
    8. + +
    9. Based on the app that you selected, you see a list of in-app products + that are active and are not yet linked to a pricing template. Select the + in-app product that you want to link to the pricing template by selecting the + Link button that appears in the same row as the in-app + product. +
    10. + +
    11. The price of the in-app product is now linked to your pricing template. + Any changes you make to the prices within your pricing template affect the + prices of the linked in-app product. +
    12. +
    + +

    + To link a pricing template to the price of a paid app, you follow a similar + process. On the pricing template's Linked Items tab, choose a paid + app in the Link Paid Apps section. +

    + +

    + Linking an in-app product or paid app with a pricing template +

    + +

    + After you create a paid app or in-app product, you can link its pricing + information to a pricing template. +

    + +
    +
    + +
    + Figure 7. Choosing a pricing template to link to a particular + in-app product or paid app. +
    +
    +
    + +

    + To link an in-app product to a pricing template, do the following: +

    + +
      +
    1. + Log in to your publisher + account. +
    2. + +
    3. In the All Applications panel, choose the app that + contains the in-app product that you want to link to a pricing template. +
    4. + +
    5. Within the app's panel, choose the In-app Products + sub-panel. +
    6. + +
    7. Choose the in-app product that you want to link to a pricing template. + The Managed Product Details page appears. +
    8. + +
    9. In the Pricing section, choose the pricing template that you want to link + to the price of this in-app product (see figure 7). +
    10. + +
    11. The price of the in-app product is now linked to the pricing template you + selected. Any changes you make to the prices within your pricing template + affect the prices of this in-app product. +
    12. +
    + +

    + To link the price of a paid app to a pricing template, you follow a similar + process within the app's Pricing & Distribution + sub-panel. +

    + +

    + Deleting an item that is linked to a pricing template +

    + +

    + As your app evolves, you may find it useful to remove older versions of + in-app products or apps, some of which may be linked to pricing templates. To + delete an in-app product or app that is linked to a pricing template, simply + remove it by completing the following steps. You don't need to unlink the + in-app product or app from the pricing template beforehand. +

    + +

    + Deleting an in-app product that is linked to a template +

    + +
    +
    + +
    + Figure 8. Deleting an in-app product that is linked to a pricing + template. +
    +
    +
    + +

    + To delete an in-app product that is linked to a template, do the following: +

    + +
      +
    1. + Log in to your publisher + account. +
    2. + +
    3. In the Google Play Developer Console, navigate to the app that contains + the in-app product you want to delete. +
    4. + +
    5. Open the app's In-app Products page. +
    6. + +
    7. Choose the in-app product that you want to delete. +
    8. + +
    9. Select the button that indicates whether the in-app product is active or + inactive (enclosed in a box within figure 8). The drop-down menu includes a + Delete option. +
    10. +
    11. Select Delete, then select Yes in the + confirmation dialog that appears. +
    12. +
    + +

    + Deleting a paid app that is linked to a template +

    + +
    +
    + +
    + Figure 9. Unpublishing an app that has already been published and is + linked to a pricing template. +
    +
    +
    + +

    + To delete a paid app that is linked to a template, do the following: +

    + +
      +
    1. + Log in to your publisher + account. +
    2. + +
    3. In the Google Play Developer Console, choose the app that you want to + delete. +
    4. + +
    5. Choose either Unpublish app (enclosed in a box within + figure 9) if you have already published the app, or + Delete app if your app is still in the "draft" state. +
    6. +
    7. Confirm your choice in the dialog that appears. +
    8. +
    + +

    + Deleting a pricing template +

    + +

    + If you no longer need a pricing template, you can delete it by completing the + following steps: +

    + +
      +
    1. + Log in to your publisher + account. +
    2. + +
    3. In the Settings panel, select Pricing + template. The Pricing Template page appears, + showing the list of pricing templates you have created for your account. +
    4. + +
    5. Select the pricing template that you wish to delete. +
    6. + +
    7. In the Linked Items tab on the pricing template details page, + unlink the pricing template from all in-app products and paid apps. +
    8. + +
    9. Select Delete template. +
    10. +
    + +

    Choosing a Product Type

    An item's product type controls how Google Play manages the purchase of the item. There are several product types, including "managed per user account", "unmanaged," and "subscription." However, @@ -408,8 +780,7 @@ version of In-app BIlling that your app uses.

    For details, refer to the documentation for In-app Billing Version -3 or In-app -Billing Version 2. +3.

    Handling Refunds

    @@ -496,26 +867,31 @@ accounts yourself and distribute the credentials to your developers or testers.<

    Getting an app's license key

    The Google Play Developer Console provides a public licensing key for each -app. To get the key for an app, follow these steps:

    +app.

    + +
    +
    + +
    + Figure 10. You can find the license key for each app in the + Services & APIs panel. +
    +
    +
    + +

    To get the key for an app, follow these steps:

    1. Open the All Applications panel.
    2. Click on the app name, then select Services & APIs.
    3. Scroll down to the Your License Key for this Application -field to locate the key for the app, as shown in the figure below.
    4. +field to locate the key for the app, as shown in figure 10.

    Previously, the Developer Console provided a single public key per developer account. To transition apps to the new per-app public key, the Developer Console set the app-specific key as the former developer key. This ensures compatibility for apps that depend on the (former) developer key.

    -
    - -

    - Figure 4. You can find the license key for each app in the - Services & APIs panel. -

    -
    -

    Where to Get Support

    If you have questions or encounter problems while implementing In-app Billing, contact the diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd index cc564689b5cd5..2954a833f442a 100644 --- a/docs/html/google/play/billing/billing_overview.jd +++ b/docs/html/google/play/billing/billing_overview.jd @@ -122,7 +122,7 @@ the product types supported by In-app Billing Version 3.

    Google Play Developer Console

    The Developer Console is where you can publish your -In-app Billing application, and manage the various in-app products that are +In-app Billing application and manage the various in-app products that are available for purchase from your application.

    You can create a product list of digital goods that are associated with your application, including items for @@ -130,6 +130,14 @@ one-time purchase and recurring subscriptions. For each item, you can define information such as the item’s unique product ID (also called its SKU), product type, pricing, description, and how Google Play should handle and track purchases for that product.

    +

    If you sell several of your apps or in-app products at the same price, you +can add pricing templates to manage these price points from a +centralized location. When using pricing templates, you can include the local +tax within the prices you provide, or you can provide prices and have the system +add local taxes to these prices. You can make changes to the prices in your +templates—such as refreshing the exchange rates for certain +countries—and your changes are applied to the apps and in-app products +that you link to the template.

    You can also create test accounts to authorize access for testing applications that are unpublished.

    To learn how to use the Developer Console to configure your in-app diff --git a/docs/html/google/play/billing/billing_reference.jd b/docs/html/google/play/billing/billing_reference.jd index 45ec7854b59d1..95ab8e57efbc0 100644 --- a/docs/html/google/play/billing/billing_reference.jd +++ b/docs/html/google/play/billing/billing_reference.jd @@ -139,7 +139,8 @@ does not include tax. {@code price_amount_micros} Price in micro-units, where 1,000,000 micro-units equal one unit of the currency. For example, if {@code price} is {@code "€7.99"}, {@code - price_amount_micros} is {@code "7990000"}. + price_amount_micros} is {@code "7990000"}. This value represents the + localized, rounded price for a particular currency. {@code price_currency_code} diff --git a/docs/html/google/play/billing/index.jd b/docs/html/google/play/billing/index.jd index b2e9fe4369d44..795aceb502eca 100644 --- a/docs/html/google/play/billing/index.jd +++ b/docs/html/google/play/billing/index.jd @@ -14,6 +14,16 @@ and features, and more. You can use In-app Billing to sell products as

    @@ -101,5 +91,5 @@ Products training class.

    implementation.
    Administering In-app Billing
    -
    Learn how to set up your product list, register test accounts, and handle refunds.
    +
    Learn how to set up your product list, add pricing templates, register test accounts, and handle refunds.
    diff --git a/docs/html/images/in-app-billing/add_new_product.png b/docs/html/images/in-app-billing/add_new_product.png new file mode 100644 index 0000000000000..2281ec0a87afa Binary files /dev/null and b/docs/html/images/in-app-billing/add_new_product.png differ diff --git a/docs/html/images/in-app-billing/billing_add.png b/docs/html/images/in-app-billing/billing_add.png deleted file mode 100644 index 1ca448d7c7edf..0000000000000 Binary files a/docs/html/images/in-app-billing/billing_add.png and /dev/null differ diff --git a/docs/html/images/in-app-billing/billing_app_key.png b/docs/html/images/in-app-billing/billing_app_key.png index bff8500286a50..4c5300e7c282c 100644 Binary files a/docs/html/images/in-app-billing/billing_app_key.png and b/docs/html/images/in-app-billing/billing_app_key.png differ diff --git a/docs/html/images/in-app-billing/billing_list_form_2.png b/docs/html/images/in-app-billing/billing_list_form_2.png deleted file mode 100644 index 33f17c9b16265..0000000000000 Binary files a/docs/html/images/in-app-billing/billing_list_form_2.png and /dev/null differ diff --git a/docs/html/images/in-app-billing/billing_product_list.png b/docs/html/images/in-app-billing/billing_product_list.png deleted file mode 100644 index dabdcb927c566..0000000000000 Binary files a/docs/html/images/in-app-billing/billing_product_list.png and /dev/null differ diff --git a/docs/html/images/in-app-billing/delete_iap.png b/docs/html/images/in-app-billing/delete_iap.png new file mode 100644 index 0000000000000..bbaea9ebebbf5 Binary files /dev/null and b/docs/html/images/in-app-billing/delete_iap.png differ diff --git a/docs/html/images/in-app-billing/edit_local_prices.png b/docs/html/images/in-app-billing/edit_local_prices.png new file mode 100644 index 0000000000000..2b765484f8b02 Binary files /dev/null and b/docs/html/images/in-app-billing/edit_local_prices.png differ diff --git a/docs/html/images/in-app-billing/in_app_products.png b/docs/html/images/in-app-billing/in_app_products.png new file mode 100644 index 0000000000000..04031cc3f4207 Binary files /dev/null and b/docs/html/images/in-app-billing/in_app_products.png differ diff --git a/docs/html/images/in-app-billing/link_pricing_template.png b/docs/html/images/in-app-billing/link_pricing_template.png new file mode 100644 index 0000000000000..cf762a8f33c0d Binary files /dev/null and b/docs/html/images/in-app-billing/link_pricing_template.png differ diff --git a/docs/html/images/in-app-billing/new_managed_product.png b/docs/html/images/in-app-billing/new_managed_product.png new file mode 100644 index 0000000000000..bdccc96022701 Binary files /dev/null and b/docs/html/images/in-app-billing/new_managed_product.png differ diff --git a/docs/html/images/in-app-billing/new_pricing_template.png b/docs/html/images/in-app-billing/new_pricing_template.png new file mode 100644 index 0000000000000..852578767e8fa Binary files /dev/null and b/docs/html/images/in-app-billing/new_pricing_template.png differ diff --git a/docs/html/images/in-app-billing/new_pricing_template_2x.png b/docs/html/images/in-app-billing/new_pricing_template_2x.png new file mode 100644 index 0000000000000..ce4094b999276 Binary files /dev/null and b/docs/html/images/in-app-billing/new_pricing_template_2x.png differ diff --git a/docs/html/images/in-app-billing/select_pricing_template.png b/docs/html/images/in-app-billing/select_pricing_template.png new file mode 100644 index 0000000000000..fa8c7b6bc75d7 Binary files /dev/null and b/docs/html/images/in-app-billing/select_pricing_template.png differ diff --git a/docs/html/images/in-app-billing/unpublish_paid_app.png b/docs/html/images/in-app-billing/unpublish_paid_app.png new file mode 100644 index 0000000000000..a36d8ce6b8843 Binary files /dev/null and b/docs/html/images/in-app-billing/unpublish_paid_app.png differ