APIのタスクフロー
以下のセクションでは、アプリ申請APIの一般的な使用法に関するAPIフローについて説明します。
- APIの前提条件
- ETagについて
- Editについて
- Editのライフサイクル
- Editの新規作成
- オープンEditの取得
- 前のEditの取得
- APKファイルの管理方法
- リスティング、詳細情報、APKのターゲット
- 画像のアップロード
- 動画のアップロード
- 公開日の設定
- Editのコミット
- サポート対象の言語
- サポート対象のタイムゾーン
- エラーレスポンスのトラブルシューティング
APIの前提条件
アプリ申請APIを使用するにあたり、まずアプリのアプリIDキーとオープンEdit IDを取得します。手順は以下のとおりです。
- 開発者コンソールにログインします。
- [アプリ&サービス] に移動して対象のアプリをクリックします。
- [アプリファイルをアップロード] 画面の [関連情報] セクションで、アプリ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を取得する場合も、流れは同じです。
-
必要に応じてEditの各フィールドに変更を加えます。APIリクエストのパスパラメーターには、EditのappIdとeditIdが含まれます。
アプリ申請APIは、PATCHではなくPUTをサポートしているため、フィールド更新時は以下のパターンを使用してください。
- フィールドの現行値を取得するため、GETリクエストを送信し、レスポンスのヘッダーからETagも取得します。
- 必要に応じてフィールドのデータを変更します。
- PUTリクエストを使用して、フィールド全体を更新します。その際は、PUTリクエストのヘッダーにETagを含めてください。
-
必要に応じてリソースをアップロードします。リソースタイプによっては、このアクションによってリストに新しいリソースが追加されたり、既存のリソースが上書きされたりする可能性があります。以下のセクションにある説明を参照してください。
-
新しいアプリバージョンをデプロイする準備ができたら、Editをコミットします。
Editの新規作成
まず、変更するアプリのappIdを使用して、createEdit
を呼び出します。
そうすることで、指定したアプリ用の新しいEditが作成されます。フィールド値とアセット(APK、ストアリスティング、画像など)には、デプロイされているアプリの情報がコピーされます。
このリクエストが成功した場合、レスポンスからEditのeditId
を取得できるので、今後のリクエストではこのIDを使用してEditのフィールドを更新してください。リソースのアップロード時も同様です。
オープンEditの取得
getActiveEditを呼び出して、アプリのオープンEditのeditId
を取得します。
前のEditの取得
アクティブなEditがある状態で前のEditにアクセスする場合は、getPreviousEditを呼び出して、前のバージョンのeditId
を取得できます。前のEditは通常、現在公開中のアプリバージョンのコピーです。アクティブなEditがない場合は、getPreviousEditを呼び出すとnullが返されます。
APKファイルの管理方法
リクエスト構文の詳細については、APIリファレンスのEdits.apksセクションを参照してください。
既存のAPKの置換
既存のAPKを置き換え、既存のAPKデバイスターゲティング情報を保持する場合は、REPLACEメソッドを使用します。
- listApksを呼び出して、APKのリストを取得します。
- replaceApkを呼び出して、APKを置き換え、既存のデバイスターゲティング情報を保持します。
既存のAPKの削除
APKを削除するには、DELETEメソッドを使用します。
APKを置き換え、既存のデバイスターゲティング情報も削除する場合は、既存のAPKを削除してから新バージョンのAPKをアップロードします。
- listApksを呼び出して、APKのリストを取得します。
- deleteApkを呼び出して、特定のAPKを削除します。
- (オプション)uploadApkを呼び出して、APKの新バージョンをアップロードします。
新しいAPKの追加
新しいAPKを追加するには、uploadApkを呼び出します。
サイズの大きいAPKのアップロード
APKのファイルサイズが300MBを超える場合は、以下のメソッドを呼び出してアップロードを行います。
- uploadLargeAPKを呼び出して、ファイルをアップロードします。
- attachAPKを呼び出して、APKをEditに関連付けます。
リスティング、詳細情報、APKのターゲット
新しいEditオブジェクトには、各ロケールのリスティングが含まれています。新しいロケールの情報を追加したり、既存ロケールのストアリスティングを変更したりする場合は、以下の手順に従ってください。
- getListingを呼び出します。
- リスティングを更新し、getListingレスポンスからETagをコピーします。
- 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 |
エラーレスポンスのトラブルシューティング
Amazonが審査を行っている間は、アプリを更新することができません。アプリ申請APIを使用してアプリを更新する際にHTTP 412(Precondition Failed)のレスポンスが返された場合は、アプリのステータスが保留中で、審査が実施中の状態になっている可能性があります。アプリのステータスを確認するには、開発者コンソールにログインし、ダッシュボードで [アプリ一覧] をクリックしてから、対象のアプリを選択して [App status] 画面を確認します。問題に対処してアプリが公開されると、HTTP 412(Precondition Failed)のエラーが発生することはなくなります。
APIのリクエストとレスポンスの詳細については、アプリ申請APIのリファレンスを参照してください。
Last updated: 2023年10月2日