GooglePlayConsoleから課金アイテムを一括アップロードする

#はじめに
この記事ではGooglePlayConsoleからアプリ内課金アイテムを
CSVによる一括アップロードする方法を主に載せています。

現状は定期購入のアイテムに関してはCSVではサポートされておりませんので
消耗型・非消耗型アイテムに関しての説明となります。

#手順
1.GooglePlayConsoleにログイン
2.左メニュー「すべてのアプリ」を選択
3.任意のアプリを選択する
4.左メニュー「ストアでの表示」の「アプリ内サービス」を選択
5.「インポート/エクスポート」のプルダウンから「管理対象アイテムをCSVファイルからインポート」を選択
6.作成したCSVファイルをインポートする

#CSVファイルを作成する
以下はサンプルで作成しましたcsvの.txtデータになります。
最初の行は列名で以降はアイテム1件ごとの情報になります。この場合だとアイテムは2件登録されます。
下記を丸ごとコピーして.csvファイルに変更すれば確認可能です。

`Product ID,Published State,Purchase Type,Auto Translate,Locale; Title; Description,Auto Fill Prices,Price,Pricing Template ID
item1,published,managed_by_android,false,ja_JP; item1; item1,false,JP; 100000000; JP; 100000000,
item2,published,managed_by_android,false,ja_JP; item2; item2,false,JP; 100000000; JP; 100000000,`

#CSVファイルの値の詳細
以下は各値の詳細になります。
Googleの公式サイトにも記載されている内容ですが、分かりにくい部分があるので一部改変しております。

■product_id
アイテム毎のID。
重複するアイテムIDは登録出来ずユニークなIDを設定する

■publish_state
アイテムの公開状態の設定

 published または unpublished を指定します。

■purchase_type
商品タイプ設定

管理対象に相当するmanaged_by_android、または 
非管理対象に相当する managed_by_publisher を指定します。

※In-app Billing Version 3 APIでは「非管理対象」のアイテムの設定は無い為
常に「managed_by_android」を設定する
参考サイト
https://android.stackexchange.com/questions/35703/what-is-the-difference-between-unmanaged-vs-managed-in-app-product

■autotranslate
自動翻訳の設定
true または false　を指定します。

※詳細は下部のlocateを参照

■locale
言語設定

デフォルトのロケールへのエントリーが必要です。 デフォルトのロケールをロケール リストの最初のエントリーにして、title と description を含める必要があります。 デフォルトのローケルに加えて翻訳版の title と description も提供したい場合は、次の構文ルールを使う必要があります。

autotranslate が true の場合は、デフォルトのロケール、タイトル、説明、その他のロケールを次の形式で指定する必要があります。
"true,"default_locale; default_locale_title;default_locale_description; locale_2;locale_3, ..."
autotranslate が false の場合は、デフォルトのロケール、タイトル、説明のほかに、翻訳したタイトル、説明を次の形式で指定する必要があります。
"false,"default_locale; default_locale_title; default_locale_description; locale_2; locale_2_title;local_2_description; locale_3; locale_3_title;locale_3_description; ..."
locale フィールドに使用できる言語コードのリストは、表 1 をご覧ください。

![スクリーンショット 2017-11-01 16.46.06.png](https://qiita-image-store.s3.amazonaws.com/0/207972/7cf3b0f8-6e2d-342d-45a7-4da29f585944.png)


■title
アイテムのタイトルの設定

title にセミコロンが含まれる場合、バックスラッシュを使ってエスケープする必要があります（例：\;）。 また、バックスラッシュは、バックスラッシュでエスケープする必要があります（例：\\）。

■description
アイテムの説明の設定

description にセミコロンが含まれる場合、バックスラッシュを使ってエスケープする必要があります（例：\;）。 また、バックスラッシュは、バックスラッシュでエスケープする必要があります（例：\\）。

■autofill
通貨の設定
True or false

これは In-app Products UI で [Auto Fill] をクリックするのと同じです。true または false を指定します。 country と price を指定する構文は、autofill の設定次第で変わります。

autofill が true に設定されている場合は、以下の構文で自国通貨での既定の価格を指定するだけです。
"true","default_price_in_home_currency"
autofill が false に設定されている場合は、それぞれの通貨に対して以下の構文で country と price を指定する必要があります。
"false", "home_country; default_price_in_home_currency; country_2; country_2_price; country_3; country_3_price; ..."
注: autofill の値を false にして、手動で各国の価格を設定する場合は、税率を含めた国ごとの価格設定パターンを提示価格に取り入れる必要があります。

■country
価格を指定する国です。指定できるのはアプリの対象国のみです。 国コードとは、大文字 2 文字の ISO 国コード（「US」など）のことで、ISO 3166-2 で定義されています。

■price
これは In-app Products UI での価格に相当します。価格はマイクロ単位で指定する必要があります。 通貨の値をマイクロ単位に変換するには、実際の値に 1,000,000 をかけます。 たとえば、アプリ内アイテムを 1.99 US ドルで販売したい場合、price フィールドで 1990000 を指定します。


参考サイト
http://ishiitakeru-programing-memo.blogspot.jp/2015/04/androidgooglecsv.html
https://developer.android.com/google/play/billing/billing_admin.html