APIのタスクフロー


APIのタスクフロー

以下のセクションでは、アプリ申請APIの一般的な使用法に関するAPIフローについて説明します。

APIの前提条件

アプリ申請APIを使用するにあたり、まずアプリIDキーとアプリ用のオープンなEditのIDを取得します。手順は以下のとおりです。

  1. 開発者コンソールにログインします。
  2. [アプリ&サービス] に移動して対象のアプリをクリックします。
  3. [一般情報] タブを開き、[アプリ申請APIキー] パネルのアプリIDキーをコピーします。

ETagについて

アプリ申請APIでは、APIの同時呼び出しによってリソースの更新が上書きされないようにするメカニズムが採用されています。リソースを更新する場合は、GETリクエストを送信してリソースの現行値を取得してから、PUTリクエストを送信して値を更新してください。GETレスポンスには、リソースの現行値に固有のETagが含まれ、PUTリクエストでそのETagを返す流れになります。ETagの値がサーバー上の値と一致しない場合、PUTリクエストは失敗します。この不一致は、GETリクエストが発行されてからリソースの値が変更されたことを意味するためです。

また、DELETEリクエストを送信する際にもETagが必要になります。

Editについて

Amazonアプリストアでアプリ情報を変更する場合、Editを作成します。次期バージョンを保存するコンテナとして機能するEditを使用すれば、アプリのさまざまな変更に備え、すべての変更点を同時にデプロイすることができます。たとえば、次期バージョン向けに [アプリの説明] フィールドを更新し、新しいリソース(APKファイルや画像など)をアップロードすることが可能です。このような変更は、1つのEditで行います。変更をコミットするまで、Editは下書き状態のままです。

初めて作成したEditには、現在デプロイされているアクティブなアプリの情報がコピーされるので、修正を加える場合はAPIメソッドを呼び出します。変更を申請する準備ができたら、Editをコミットして次期バージョンをAmazonアプリストアに申請してください。Editはいつでも削除可能です。削除すると変更が破棄されるので、アプリは元の状態のままになります。

: アプリごとに開けるEditは、常に1つだけです。アクティブなEditが存在する状態でEditの作成リクエストを送信しても、エラーメッセージが返されてしまいます。

Editのライフサイクル

このセクションでは、Edit経由でアプリ情報を更新する際の一般的な流れを説明します。新しいEditを作成する場合も、オープンなEditを取得する場合も、流れは同じです。

  1. 新しいEditを作成するか、既存EditIDを取得します。

  2. 必要に応じてEditの各フィールドに変更を加えます。APIリクエストのパスパラメーターには、EditのappIdとeditIdが含まれます。

    アプリ申請APIは、PATCHではなくPUTをサポートしているため、フィールド更新時は以下のパターンを使用してください。

    1. フィールドの現行値を取得するため、GETリクエストを送信し、レスポンスのヘッダーからETagも取得します。
    2. 必要に応じてフィールドのデータを変更します。
    3. PUTリクエストを使用して、フィールド全体を更新します。その際は、PUTリクエストのヘッダーにETagを含めてください。
  3. 必要に応じてリソースをアップロードします。リソースタイプによっては、このアクションによってリストに新しいリソースが追加されたり、既存のリソースが上書きされたりする可能性があります。以下のセクションにある説明を参照してください。

  4. 新しいアプリバージョンをデプロイする準備ができたら、Editをコミットします。

Editの新規作成

まず、変更するアプリのappIdを利用して、createEditを呼び出します。

そうすることで、指定したアプリ用の新しいEditが作成されます。フィールド値とアセット(APK、ストアリスティング、画像など)には、デプロイされているアプリの情報がコピーされます。

このリクエストが成功した場合、レスポンスからEditのeditIdを取得できるので、今後のリクエストではこのIDを使用してEditのフィールドを更新してください。リソースのアップロード時も同様です。

オープンなEditの取得

getActiveEditを呼び出して、対象アプリ用オープンなEditのeditIdを取得します。

APKファイルの管理方法

リクエスト構文の詳細については、APIリファレンスのEdits.apksセクションを参照してください。

既存のAPKを置き換える

既存のAPKを置き換え、既存のAPKデバイスターゲティング情報を保持する場合は、REPLACEメソッドを使用します。

  1. listApksを呼び出して、APKのリストを取得します。
  2. replaceApkを呼び出して、APKを置き換え、既存のデバイスターゲティング情報を保持します。

既存のAPKを削除する

APKを削除するには、DELETEメソッドを使用します。

APKを置き換え、既存のデバイスターゲティング情報も削除する場合は、既存のAPKを削除してから新バージョンのAPKをアップロードします。

  1. listApksを呼び出して、APKのリストを取得します。
  2. deleteApkを呼び出して、特定のAPKを削除します。
  3. (オプション)uploadApkを呼び出して、APKの新バージョンをアップロードします。

新しいAPKを追加する

新しいAPKを追加するには、uploadApkを呼び出します。

サイズの大きいAPKをアップロードする

APKのファイルサイズが300MBを超える場合は、以下のメソッドを呼び出してアップロードを行います。

  1. uploadLargeAPKを呼び出して、ファイルをアップロードします。
  2. attachAPKを呼び出して、APKをEditにアタッチします。

リスティング、詳細情報、APKのターゲット

新しいEditオブジェクトには、各ロケールのリスティングが含まれています。新しいロケールの情報を追加したり、既存ロケールのストアリスティングを変更したりする場合は、以下の手順に従ってください。

  1. getListingを呼び出します。
  2. リスティングを更新し、getListingレスポンスからETagをコピーします。
  3. updateListingを呼び出し、そのリクエストヘッダーにETagを追加します。

Editの内容を修正する場合も手順は同じです。まずGetメソッドを呼び出し、必要に応じて詳細情報を更新してください。次に、変更内容を保存するためにmodifyDetailsを呼び出します。

APKターゲットデバイスを変更する場合も手順は同じです。まずGetメソッドを呼び出し、必要に応じてデバイスターゲット情報を追加・更新してください。次に、変更内容を保存するためにmodifyTargetingを呼び出します。アプリ申請APIのエンドポイントを参照してください。

画像のアップロード

新しい画像をアップロードするには、uploadImageを呼び出します。画像タイプでサポートされる画像が1つの場合(例:アイコン)、古い画像は新しい画像に置き換えられます。複数の画像をサポートするフィールドの場合(例:スクリーンショット)、アップロードする画像は既存の画像セットに追加されます。不要になった画像は削除可能です。

有効なimageTypeの値は以下のとおりです。

  • small-icons
  • large-icons
  • screenshots
  • promo-images
  • firetv-screenshots
  • firetv-icons
  • firetv-backgrounds
  • firetv-featured-backgrounds
  • firetv-featured-logos

画像サイズの詳細については、画像アセットのガイドラインを参照してください。

動画のアップロード

新しい動画をアップロードするには、uploadVideoを呼び出します。

公開日の設定

Editのデフォルト設定では、公開日はnullになっています。Editをコミットすると、Amazonアプリストアで新しいアプリバージョンの公開手続きが開始されます。

公開日を設定する場合は、putAvailabilityを呼び出します。リクエスト本文のdateTime値とzoneId値を入力して、公開日時を指定してください。

dateTime値にはUTC形式を用いて、 YYYY-MM-DDThh:mm:ss.s(例:2017-07-16T19:20:30.45)と指定します。

zoneId値には、サポート対象のタイムゾーンを入力します。

Editのコミット

変更をAmazonアプリストアに申請するには、commitEditを呼び出します。

検証エラーがなければ、Editで記した変更内容が公開中のアプリに反映されます。反映には数時間かかる場合があります(Google Play Consoleで変更を行う場合と同様です)。

サポート対象の言語

languageパラメーターでサポートされている値は、以下の表のとおりです。

ロケール 言語
zh_CN 中国語
de_DE ドイツ語
en_AU 英語(オーストラリア)
en_GB 英語(英国)
en_IN 英語(インド)
en_US 英語(米国)
es_ES スペイン語
fr_FR フランス語
it_IT イタリア語
ja_JP 日本語
pt_BR ポルトガル語(ブラジル)

サポート対象のタイムゾーン

zoneIdパラメーターでサポートされている値は、以下の表のとおりです。

北米
US_Alaska
US_Arizona
US_Central
US_East
US_Eastern
US_Hawaii
US_Mountain
US_Pacific
Canada_Eastern
Canada_Newfoundland
Canada_Saskatchewan
ヨーロッパ
Europe_Athens
Europe_Belgrade
Europe_Berlin
Europe_Brussels
Europe_Helsinki
Europe_London
Europe_Madrid
Europe_Minsk
Europe_Moscow
Europe_Paris
Europe_Rome
Europe_Warsaw
Atlantic_Azores
Atlantic_Cape_Verde
Atlantic_South_Georgia
アフリカ
Africa_Algiers
Africa_Cairo
Africa_Casablanca
Africa_Harare
Africa_Nairobi
Africa_Windhoek
アジア
Asia_Amman
Asia_Baghdad
Asia_Baku
Asia_Bangkok
Asia_Beirut
Asia_Calcutta
Asia_Colombo
Asia_Dhaka
Asia_Irkutsk
Asia_Jerusalem
Asia_Kabul
Asia_Karachi
Asia_Katmandu
Asia_Kolkata
Asia_Krasnoyarsk
Asia_Kuala_Lumpur
Asia_Kuwait
Asia_Magadan
Asia_Muscat
Asia_Novosibirsk
Asia_Rangoon
Asia_Seoul
Asia_Shanghai
Asia_Taipei
Asia_Tbilisi
Asia_Tehran
Asia_Tokyo
Asia_Vladivostok
Asia_Yakutsk
Asia_Yekaterinburg
Asia_Yerevan
オーストラリア
Australia_Adelaide
Australia_Brisbane
Australia_Darwin
Australia_Hobart
Australia_Perth
Australia_Sydney
太平洋および南米
Pacific_Auckland
Pacific_Fiji
Pacific_Guam
Pacific_Midway
Pacific_Tongatapu
America_Bogota
America_Buenos_Aires
America_Caracas
America_Chihuahua
America_Godthab
America_Guatemala
America_Los_Angeles
America_Manaus
America_Mexico_City
America_Montevideo
America_Santiago
America_Tijuana
Brazil_East