開発者コンソール

クイック定期購入のセットアップ

クイック定期購入のセットアップ

クイック定期購入を利用すると、Fire TVデバイスやアプリのECページで定期購入型アイテムを購入するために必要なクリック回数が減ります。クイック定期購入によって、ユーザーはアプリのダウンロード、定期購入型アイテムの購入、権限の作成を効率的に行うことができるようになります。

一般的なアカウント作成プロセスでは、ユーザーがアカウントを登録するためにクリックする回数は150回以上にも及びます。クイック定期購入では、アカウントの作成をワンクリックで行えるようになりました。クイック定期購入のワンクリックアカウント作成機能を使用すると、ユーザーは1回のクリックするだけで氏名、郵便番号、Eメールアドレスをアプリと共有できるため、アカウントを作成してサインインする際の手間が省けます。

Fire TV向けクイック定期購入の機能

ユーザーフローの比較

次の画像は、クイック定期購入を使用せずに、Fire TVで定期購入に登録する場合の一般的なユーザーエクスペリエンスを示しています。

1. アプリのダウンロード。2. アプリを開く。3. アカウント作成(オンスクリーンキーボードまたはウェブサイトからの認証情報の入力:150回以上のクリック)。4. 定期購入。5. 定期購入の確認。6. コンテンツの閲覧と視聴。

クイック定期購入を使用すると、ユーザーは最初の手順でアプリの詳細ページから直接定期購入できます。次の画像は、クイック定期購入のワンクリックアカウント作成を使用して、Fire TVで定期購入に登録する場合のユーザーエクスペリエンスを示しています。

1. 定期購入。2. 定期購入の確認。3. アプリとのデータ共有に同意(1回のクリック)。アプリが自動的にダウンロードされて起動。アプリはAmazonからのデータを使用して自動的にアカウントを作成。5. コンテンツの閲覧と視聴。

ワンクリックアカウント作成では、Amazonからユーザーに同意画面が表示され、ユーザーはそこで詳細情報をアプリと共有することに同意できます。ユーザーが同意すると、アプリがダウンロードされて起動し、Amazonからユーザーの詳細情報を取得してアカウントを作成します。その後、アプリは認証情報入力の手順を介さずに、自動的にユーザーのサインインを完了します。

クイック定期購入を既に統合済みで、ワンクリックアカウント作成を未使用の場合は、自動的にサインインする代わりに、ユーザーはFire TVリモコンでアカウントの認証情報を入力します。このエクスペリエンスはユーザーフレンドリーとはいえず、平均して150回以上のクリックが必要です。次の画像は、クイック定期購入のワンクリックアカウント作成を使用せずに、Fire TVで定期購入に登録する場合のユーザーエクスペリエンスを示しています。

1. 定期購入。2. 定期購入の確認。アプリの自動ダウンロード。3. アプリの起動。4. アカウントの作成(オンスクリーンキーボードまたはウェブサイトからの認証情報の入力:150回以上のクリック)。5. コンテンツの閲覧と視聴。

クイック定期購入のしくみ

次の手順では、Fireデバイス、Amazonアプリ内課金(IAP)、Login with Amazon(LWA)、アプリ、サーバーでクイック定期購入がどのように機能するかを説明します。

手順1: ユーザーがFire TVのアプリの詳細ページから定期購入型アイテムの購入を開始します。

手順2: Amazonは、ユーザーに氏名、郵便番号、Eメールアドレスをアプリと共有する権限を求める同意画面を表示します。

手順3: Amazonがユーザーに購入の完了を通知します。

手順4: アプリが自動的にダウンロードされ、ユーザーのデバイスで起動されます。

手順5: 起動時に、アプリはユーザーがサインインしているかどうかを判断します。ユーザーがサインインしていない場合、アプリはAmazon IAPからgetUserData()メソッドを呼び出し、Amazonはユーザーの同意ステータスを返します。

同意ステータスがCONSENTEDの場合、アプリは手順6~8に従います。それ以外の場合、アプリはデフォルトのサインイン操作にフォールバックします。

手順6: アプリはLWA SDKのauthorize()メソッドを呼び出してセッションを開始します。

手順7: アプリはLWAのUser.fetch()メソッドを使用して、氏名、郵便番号、Eメールアドレスなどのユーザーの詳細情報を取得します。

手順8: アプリは、ユーザーの詳細情報を使用して新しいアカウントを作成するか、既存のアカウントにマップして、自動的にユーザーをサインインします。

手順9: ユーザーがサインインすると、アプリはonResume()メソッドでAmazon IAPのgetPurchaseUpdates()メソッドを呼び出して、購入のレシートを取得します。

手順10: アプリはIAPのnotifyFulfillment()メソッドを呼び出して購入のレシートを確認し、ユーザーがコンテンツにアクセスできることを確認します。または、すでにAcknowledge Receipt APIを統合している場合、アプリはacknowledgeReceipt REST APIを呼び出して、ユーザーがコンテンツにアクセスしたことを確認します。

手順11: アプリはサーバーの購入データを更新し、verifyReceiptId REST APIを呼び出してレシート検証サービス(RVS)で検証します。

手順12: アプリはユーザーにコンテンツへのアクセスを許可します。

クイック定期購入のセットアップ

アプリでクイック定期購入をセットアップするには、次の手順を完了します。

  1. Amazonの担当者に連絡してクイック定期購入を有効にします。
  2. 開発者コンソールでクイック定期購入を設定します。
  3. 開発者コンソールでセキュリティプロファイルを設定します。
  4. IAP APIをまだ統合していない場合は統合し、アプリのonResume()メソッドでgetPurchaseUpdatesを処理します。
  5. ユーザーがクイック定期購入での注文後にアプリにサインインしたら、notifyFulfillment() APIを呼び出します。ユーザーが購入後30日以内にアプリにサインインしなかった場合、その定期購入型アイテムは自動的にキャンセルされ、ユーザーに返金されます。notifyFulfillment() APIの詳細については、ユーザーへのアイテムの付与を参照してください。
  6. リアルタイム通知(RTN)およびレシート検証サービス(RVS)と統合します。RTNとRVSを使用すると、より多くの通知が届くため、定期購入の管理を強化できます。
  7. ワンクリックアカウント作成を統合します。

必要な手順の詳細については、以下のセクションを参照してください。

開発者コンソールでクイック定期購入を設定する方法

アプリのクイック定期購入を設定するには、次の手順を実行します。

  1. 開発者コンソールにログインします。
  2. アプリ一覧で、クイック定期購入を設定するアプリを探します。
  3. [アプリ内課金(IAP)アイテム] 列内のリンクをクリックして、[アプリ内課金(IAP)アイテム] 画面を開きます。
  4. [クイック定期購入を作成] を選択します。
  5. オーバーレイのポップアップが表示されます。[デフォルトの定期購入型アイテムを選択] ドロップダウンに、既存のアプリ内課金(IAP)定期購入型アイテムが表示されます。クイック定期購入を有効にする定期購入型アイテムを選択します。
  6. [期間を選択] ドロップダウンで、クイック定期購入の期間を選択します。
  7. クイック定期購入でほかの定期購入型アイテムを提供する場合は、[別のクイック定期購入を追加] を選択します。クイック定期購入は最大4つまで追加できます。
  8. クイック定期購入の対象デバイスを、チェックボックスをオンにして選択します。
  9. [クイック定期購入を作成] を選択します。

クイック定期購入の作成後、アイテムを削除または変更する場合は、そのクイック定期購入アイテムの横にある [アクション] をクリックします。

開発者コンソールでセキュリティプロファイルを設定する方法

アプリのセキュリティプロファイルを設定するには、次の手順を実行します。

  1. 開発者コンソールにログインします。
  2. アプリ一覧を開き、アプリを選択します。
  3. [アプリサービス] をクリックし、[セキュリティプロファイル] セクションまでスクロールします。
  4. [既存のセキュリティプロファイルを選択、または新規作成する] をクリックしてオプションを展開します。
  5. ドロップダウンを使用して、このアプリにマップするセキュリティプロファイルを選択し、[セキュリティプロファイルを有効化] をクリックします。または、[セキュリティプロファイルを作成] をクリックして新しいセキュリティプロファイルを作成することもできます。

getPurchaseUpdatesの処理

getPurchaseUpdates()メソッドを使用すると、ユーザーのレシートを取得できます。クイック定期購入は、getPurchaseUpdates()の情報を使用してユーザーの購入ステータスを検証し、使用権限のあるコンテンツにユーザーがアクセスできるようにします。

getPurchaseUpdates()は、onResume()メソッド内で呼び出します。getPurchaseUpdates()メソッドは、resetというブール型のパラメーターを1つ受け取ります。resetfalseに設定すると、前回の呼び出し以降に発行された新しいレシートのみが返されます。resettrueに設定すると、このユーザーのレシートがすべて返されます。

@Override
protected void onResume() {
  super.onResume();

//...

  PurchasingService.getUserData();

//...

  PurchasingService.getPurchaseUpdates(false);
}

getPurchaseUpdates()メソッドの統合方法の詳細については、IAP APIに関する次のテクニカルドキュメントを参照してください。

Acknowledge Receipt API

Amazonでは、ユーザーが使用権限のない定期購入型アイテムの料金を払い続けなくて済むように、自動キャンセルを使用しています。ユーザーが購入後30日以内にアプリにログインしなかった場合、その定期購入型アイテムは自動的にキャンセルされ、ユーザーに返金されます。ユーザーが意図的に定期購入型アイテムを購入してアクセスした場合でも、確認通知がなかったり遅れたりすると、その定期購入型アイテムは購入日から30日後に自動的にキャンセルされ、ユーザーはアクセスできなくなります。Acknowledge Receipt APIを呼び出すと、このような状況を回避できます。

Acknowledge Receipt APIでは、acknowledgeReceiptオペレーションを使用して、定期購入型アイテムの購入でアイテムの付与が完了したことをAmazonに通知できるため、ユーザーがアクセスできなくなることはありません。

acknowledgeReceiptオペレーションは、RVSで使用されるverifyReceiptIdオペレーションとよく似たREST APIですが、GETリクエストではなくPUTリクエストを使用する必要があります。

PUT https://appstore-sdk.amazon.com/version/1.0/acknowledgeReceipt?developer={Shared_secret}&user={UserId}=&receiptId={ReceiptId}&fulfillmentResult={FulfillmentResult}

acknowledgeReceiptオペレーションのバージョン番号は1.0です。クエリパラメーターの詳細は、次の表のとおりです。

クエリパラメーター

Acknowledge Receipt APIのレスポンスでは、次のクエリパラメーターを使用します。

クエリパラメーター 説明 必須
developer リクエストを発行した開発者を識別するための共有シークレット。共有シークレットは、Amazonアプリストアの開発者アカウントの [共有キー] ページで確認できます。
user Amazonアプリストアで公開したアプリを使用する個々のAmazonユーザーを表すID (PurchaseResponse.getUserData().getUserId())。
receiptId 購入を一意に識別するID (PurchaseResponse.getReceipt().getReceiptId()またはPurchaseUpdatesResponse.getReceipts()Receipt.getReceiptId())。
fulfillmentResult アイテム付与のステータス。有効な値は次のとおりです。
  • FULFILLED: コンテンツを提供し、ユーザーがそのコンテンツを使用しました。
  • UNAVAILABLE: ユーザーにコンテンツを提供できませんでした。この値を送信しても、注文はすぐにはキャンセルされません。30日後にキャンセルされ、返金されます。

レスポンスコード

HTTPリクエストを行った後、Acknowledge Receipt APIは次のいずれかのコードで応答します。

レスポンスコード 説明
HTTP 200 成功しました。 レシートID、ユーザーID、共有シークレットがすべて有効です。定期購入型アイテムはアイテム付与済みとしてマークされます。
HTTP 400 このreceiptIdで表されるトランザクションが無効です。または、このreceiptIdに対応するトランザクションが見つかりませんでした。
HTTP 410 このreceiptIdで表されるトランザクションが無効になりました。キャンセルされたレシートとして処理されます。
HTTP 429 リクエストがスロットリングされました。呼び出しの頻度を減らして、しばらくしてから再試行してください。
HTTP 496 sharedSecretが無効です。
HTTP 497 ユーザーIDが無効です。
HTTP 500 内部サーバーエラーが発生しました。

Acknowledge Receipt APIに関するよくある質問(FAQ)

Acknowledge Receipt APIに関するよくある質問(FAQ)を以下に示します。

Q: Acknowledge Receipt APIの呼び出しは、更新のたびに必要ですか?それとも購入後にのみ必要ですか?
クイック定期購入が有効な購入の後に、Acknowledge Receipt APIを呼び出す必要があります。
Q: Acknowledge Receipt APIが確認済みの場合に、ステータスFULFILLEDで呼び出されると、どのような応答が返されますか?
Acknowledge Receipt APIをステータスFULFILLEDで何度も呼び出した場合、べき等のオペレーションであるため、毎回同じ応答が返されます。
Q: acknowledgeReceiptオペレーションを元に戻す方法はありますか? acknowledgeReceiptのステータスが既に更新されてFULFILLEDになっている場合、UNAVAILABLEに設定することはできますか?
いいえ。acknowledgeReceiptのステータスは、UNAVAILABLEからFULFILLEDへの移行はできますが、FULFILLEDからUNAVAILABLEへの移行はできません。レシートにエラーがある場合は、こちらからお問い合わせください。

RTNおよびRVSとの統合

クイック定期購入では、ユーザーはアプリからではなくAmazonを通じてアプリを定期購入します。そのため、ユーザーの購入ステータスに関する情報の一部がアプリに保存されない可能性があります。getPurchaseUpdates() APIは、アプリが開かれている場合にのみデータを送信します。

リアルタイム通知(RTN)は、アプリの外部で発生するトランザクションも含め、すべてのトランザクションの購入情報を提供します。AmazonのRTNサーバーから購入通知を受信したら、レシート検証サービス(RVS)を使用してレシートを検証します。RVSサーバーにリクエストを送信すると、返されるJSONレスポンスにはpurchaseMetadataMapフィールドが含まれます。クイック定期購入を使用して購入を開始した場合、次の例のように、purchaseMetadataMap{"QuickSubscribe":true}となります。

{
  "autoRenewing": true,
  "betaProduct": false,
  "binCountryCode": null,
  "cancelDate": 1641131573000,
  "cancelReason": 2,
  "deferredDate": null,
  "deferredSku": null,
  "freeTrialEndDate": null,
  "fulfillmentDate": 1641131345000,
  "fulfillmentResult": "FULFILLED",
  "gracePeriodEndDate": null,
  "parentProductId": null,
  "productId": "IntroFreeTrial.sku",
  "productType": "SUBSCRIPTION",
  "promotions": null,
  "purchaseDate": 1641131345000,
  "purchaseMetadataMap": {
      "QuickSubscribe": "true"
  },
  "quantity": null,
  "receiptId": "k9om1rUS7gZJIg8RMfw7AlbxA3aP56ay-vdgeLU40zw=:3:11",
  "renewalDate": null,
  "term": "1 Month",
  "termSku": null,
  "testTransaction": false
}

購入がクイック定期購入を使用して開始されたものでない場合、purchaseMetadataMapはnullになります。レスポンスオブジェクトの全フィールドについて次の表で説明します。

フィールド データ型 説明
autoRenewing ブール型 ユーザーの定期購入が自動更新されるかどうかを示します。
betaProduct ブール型 購入商品がライブアプリテスト商品かどうかを示します。
cancelDate 長整数 購入をキャンセルした日、または定期購入の期限が切れた日。購入がキャンセルされていない場合、このフィールドはnullになります。時間はミリ秒単位です。
cancelReason 整数 商品がキャンセルされた理由を示します。指定できる値は、null、0、1、2です。各整数はキャンセル理由を表します。
null - 購入がキャンセルされていない。
0 - 現時点ではキャンセル理由が特定されていないため、後で表示される。
1 - ユーザーが注文をキャンセルした。
2 - 購入がAmazonのシステムによってキャンセルされた(定期購入型アイテム購入時のユーザーの支払いが無効で、その購入が猶予期間内に完了しなかった場合など)。このコードは、Amazonカスタマーサポートがユーザーのリクエストに応じて注文をキャンセルした場合にも返されます。
freeTrialEndDate 長整数 定期購入が無料トライアル期間中であることを示します。定期購入の無料トライアル期間の終了日をエポック(ミリ秒)単位で提供します。定期購入が無料トライアル期間中でない場合、このフィールドはnullになります。
fulfillmentDate 長整数 定期購入でアイテム付与完了が通知された日付。エポックからのミリ秒数として格納されます。定期購入のアイテム付与が確認されていない場合はnullになります。消費型アイテムと非消費型アイテムでは常にnullです。
fulfillmentResult 文字列 定期購入でのアイテム付与のステータス。有効な値は次のとおりです。
  • FULFILLED: コンテンツを提供し、ユーザーがそのコンテンツを使用しました。
  • UNAVAILABLE: ユーザーにコンテンツを提供できませんでした。
定期購入のアイテム付与が確認されていない場合はnullになります。消費型アイテムと非消費型アイテムでは常にnullです。
gracePeriodEndDate 長整数 定期購入が猶予期間中であることを示します。定期購入の猶予期間の終了日をエポック(ミリ秒)単位で提供します。定期購入が猶予期間中でない場合、このフィールドはnullになります。
parentProductId 文字列 null。将来使用するために予約されています。
productId 文字列 アプリ内でこのアイテムに対して定義したSKU。
productType 文字列 購入された商品の種類。有効な商品タイプは、CONSUMABLE(消費型アイテム)、SUBSCRIPTION(定期購入型アイテム)、ENTITLED(非消費型アイテム)です。
promotions リスト<Promotion> 定期購入型アイテムのプロモーション価格の詳細です。プロモーションがない場合はnullになります。詳細については、RVSのプロモーション価格を参照してください。
purchaseDate 長整数 購入日。エポックからのミリ秒数として格納されます。定期購入型アイテムの場合、purchaseDateは最初の購入日を表します。それ以降の更新日を表すものではありません。
purchaseMetadataMap [マップ] <文字列, 文字列> 購入がクイック定期購入を通じて開始された場合、値は{"QuickSubscribe":true}になります。それ以外の場合はnullになります。
quantity 整数 購入された数量。常にnullまたは1になります。
receiptId 文字列 購入の一意の識別子。
renewalDate 長整数 定期購入型アイテムの更新が必要となる日付。エポックからのミリ秒で計算されます。
term 文字列 定期購入型IAPアイテムの有効期間(期間は購入日から始まります)。数字と期間(日、週、月、年)で構成されます(「1週間」、「2か月」など)。
termSku 文字列 定期購入期間に対応する一意のSKU。
testTransaction ブール型 この購入が、Amazonによる公開・テストプロセスの一部として実行されたものかどうかを示します。

RVSの詳細については、アプリ内課金(IAP)アプリのレシート検証を参照してください。

ワンクリックアカウント作成の統合

このガイドでは、アプリをワンクリックアカウント作成機能と統合する方法を説明します。

前提条件

アプリのマニフェストの更新

アプリがワンクリックアカウント作成機能をサポートしていることをAmazonアプリストアに示すには、次のコードでアプリのマニフェストを更新します。

<uses-feature android:name="amazon.lwa.quicksignup.supported"/>

getUserDataの変更の実装とLogin with Amazonの統合

ユーザーがAmazonアカウントの詳細情報の共有に同意したかどうかを判断するには、アプリのメインアクティビティのonCreateメソッドで、UserDataRequest オブジェクトのsetFetchLWAConsentStatus()フラグをtrueに設定してgetUserData()メソッドを呼び出します。

次の例は、Login with Amazon(LWA)が詳細情報を取得することにユーザーが同意した場合に、UserDataRequestオブジェクトを作成し、それをgetUserData()に渡す方法を示しています。

@Override
protected void onCreate(Bundle savedInstanceState) 
{
  super.onCreate(savedInstanceState);

//...

  PurchasingService.registerListener(this.getApplicationContext(), purchasingListener);
  if (!isLoggedIn()) {
     PurchasingService.getUserData(UserDataRequest.newBuilder().setFetchLWAConsentStatus(true).build());
  }
//...
}

ユーザーが同意した場合、UserDataオブジェクトのLWAConsentStatusのステータスはCONSENTEDになります。ユーザーが同意していない場合、または同意トークンの有効期限が切れている場合、LWAConsentStatusのステータスはUNAVAILABLEになります。

次のコードは、UserDataResponseオブジェクトから受け取った同意データを処理する方法を示しています。

@Override
public void onUserDataResponse( final UserDataResponse response) {

 final UserDataResponse.RequestStatus status = response.getRequestStatus();

 switch (status) {
   case SUCCESSFUL:
     if (LWAConsentStatus.CONSENTED.equals(response.getUserData().getLWAConsentStatus())) {
        lwaManager.startAutoLoginWorkflow();
     }
     break ;

   case FAILED:
   case NOT_SUPPORTED:
     // 失敗時の処理を適切に行います。
     break ;
 }
}

ユーザーが同意した場合は、LWAからauthorize()メソッドを呼び出してセッションを開始し、User.fetch()メソッドを呼び出してユーザーの詳細情報を取得します。共有されたユーザー情報を使用して、バックエンドシステムにアカウントを作成します。

次のコードは、LWAManagerを使用して、同意したユーザーの自動サインインを有効にする方法を示しています。

//..
private RequestContext requestContext;
private Context context;
//..

LWAManager(RequestContext requestContext, Context context) {
   this.requestContext = requestContext;
   this.context = context;
   requestContext.registerListener(new AuthorizeListener() {
      //..
      @Override
      public void onSuccess(AuthorizeResult authorizeResult) {
           fetchUserProfileInfo();
      }
      
      //..
   });
}

public void startAutoLoginWorkflow() {
    AuthorizationManager.authorize(
          new AuthorizeRequest.Builder(requestContext)
                  .addScopes(ProfileScope.profile(), ProfileScope.postalCode())
                  .build()
   );
           
}

private void fetchUserProfileInfo() {
    User.fetch(context, new Listener<User, AuthError>() {
      //..
      
      @Override
      public void onSuccess(User user) {
          final String name = user.getUserName();
          final String email = user.getUserEmail();
          final String zipCode = user.getUserPostalCode();
          
          // バックエンドでアカウントを作成またはマッピングし、ユーザーのサインインを処理します。
      }
      
      //..
   });

}

ユーザーが同意しない場合は、[Login with Amazon] ボタンのあるサインイン画面を表示します。これにより、ユーザーはキーボードを使用して認証情報を入力するか、[Login with Amazon] ボタンを使用してアプリにサインインできます。

フロー図

次の図は、ワンクリックアカウント作成を使用したクイック定期購入のコードフローを示しています。

説明テキストを参照してください。
クリックして拡大

LATによるクイック定期購入のテスト

ライブアプリテスト(LAT)を使用してクイック定期購入をテストできます。これを行うには、LATアプリのASINに対してクイック定期購入を有効にするようにAmazonの担当者に依頼してください。クイック定期購入フローは、AmazonのECサイトまたはFire TVデバイスでテストできます。ライブアプリテストを開始するときに、テスターに招待Eメールを送信できます。テスターは、Amazonウェブサイトへのリンクが記載されたEメールを受信します。このサイトには、LATバージョンのアプリが登録されています。

ウェブサイトでのクイック定期購入のテスト

LATの招待Eメールから、対象のマーケットプレイスのAmazonウェブサイトを選択します。アプリの詳細ページで、定期購入オプションを選択します。これは、月額20.00 USDのように、定期購入型アイテムの期間に対する有料オプションとして表示されます。次に、配信先のデバイスを選択し、[Get App] をクリックします。

デバイスでのクイック定期購入のテスト

デバイスでクイック定期購入のテストを開始するには、LATの招待Eメールまたはデバイスの通知を使用できます。

LATの招待Eメールからテストするには:

  1. 招待Eメールに記載されているリンクを使用して、Amazonウェブサイトのアプリの詳細ページに移動します。
  2. [App Only] オプションをクリックします。
  3. [配信先:] ドロップダウンメニューで、[Cloud Only] をクリックします。
  4. [Get App] をクリックします。
  5. Amazonアカウントに関連付けられているFire TVデバイスで、[マイアプリ・チャンネル] のアイコンをクリックします(アイコンはナビゲーションバーに3つの四角形とプラス記号で表示されます)。
  6. アプリアイコンにTESTバナーが表示されているLATバージョンのアプリを探します。アプリを表示するには、[アプリライブラリ] をクリックする必要のある場合があります。
  7. デバイスで、アプリアイコンをクリックしてアプリの詳細ページを開きます。
  8. [Subscription Options] をクリックし、アプリをダウンロードします。

通知からテストするには:

LATの招待Eメールを送信すると、テスターEメールに関連付けられているテストデバイスに通知が届きます。通知が表示されたときに開くと、LATアプリの詳細ページに移動します。この通知は5~10秒間表示されます。通知が最初に表示されたときに見逃した場合は、設定アイコン(歯車アイコン)をクリックし、[通知] をクリックすることで確認できます。ここで通知を読み、アプリの詳細ページに移動できます。[Subscription Options] をクリックし、アプリをダウンロードします。

重要

  • LATによるクイック定期購入のテストは、以下の場合はサポートされません。
    • 配信先の特定のデバイスを選択するときに、ウェブサイトで [App Only] オプションを使用した場合。
    • デバイスで [App Only] オプションを使用した場合。
  • クイック定期購入以外の目的でLATを使用してアプリをテストする場合は、[App Only] オプションを使用して、アプリを配信する特定のデバイスを選択できます。

  • クイック定期購入のテスト中は、タイムラインが短縮された定期購入型アイテムをオフにしてください。

  • テストアカウントのクイック定期購入をリセットするには、Amazonの担当者に連絡するか、開発者コンソールにアクセスしてLATの定期購入型アイテムをリセットしてください。詳細については、アプリ内課金(IAP)アイテムのリセット(LAT内の全テスターを対象)または個々のテスターの管理を参照してください。

  • 30日間のキャンセル期間をテスト用に1日に短縮する必要がある場合は、Amazonの担当者にお問い合わせください。

クイック定期購入に関するよくある質問(FAQ)

クイック定期購入に関するよくある質問(FAQ)を以下に示します。

Q: Amazonでクイック定期購入を利用する場合、開発者はアプリのアカウント作成を省く必要がありますか?

いいえ。クイック定期購入の初回起動では、アプリでのアカウント作成のスキップはサポートされません。

Q: 無料体験を提供している場合、クイック定期購入も提供できますか?
はい。1つの定期購入型商品でクイック定期購入と無料体験の両方を提供できます。ただし、クイック定期購入は60日間の無料体験に対応していません。
Q: ユーザーが以前に無料体験を利用していた場合はどうなりますか?

クイック定期購入では、以前にAmazonアプリストアで作成された無料体験を検出できます。これにより、ユーザーが追加の無料体験期間を開始することはできません。ただし、ユーザーがAmazon以外でトライアルを開始していた場合、クイック定期購入ではこの情報を検出できないため、ユーザーは追加の無料トライアルを開始できます。

Q: ユーザーがクイック定期購入で定期購入型アイテムを購入し、アプリを2台目のデバイスにダウンロードするにはどうすればよいですか?

定期購入型アイテムは、クイック定期購入で購入した後、ユーザーのアカウントに追加されます。「アプリのみ」のオプションを使用すると、ユーザーはアプリをほかのデバイスにダウンロードできます。これで、ユーザーが各デバイスで定期購入型アイテムにアクセスできるようになります。

Q: プロモーション価格を提供している場合、クイック定期購入も提供できますか?

はい。1つの定期購入型商品でクイック定期購入とプロモーション価格の両方を提供できます。ただし、クイック定期購入は、週単位または隔週単位のプロモーション価格に対応していません。

ワンクリックアカウント作成に関するよくある質問(FAQ)

Q: OAuth用にサーバーをLogin with Amazon(LWA)と統合する必要はありますか?
いいえ、アプリ内でLWAと統合するだけで済みます。アプリが取得したデータを使用して、ユーザーアカウントを作成します。その後のユーザーのサインインは、開発者側のアカウント管理システムで管理します。
Q: Acknowledge Receipt APIとnotifyFulfillment() APIの違いは何ですか? 両方と統合する必要がありますか?
notifyFulfillment()メソッドは、Appstore SDKに含まれているクライアント側のAPIで、アイテムの付与を確認します。Acknowledge Receipt APIも同じ目的を達成しますが、これはacknowledgeReceiptオペレーションを使用するサーバー間の呼び出しによって行われます。Amazonアプリストアでは、アプリにnotifyFulfillment() APIを実装することを推奨しています。notifyFulfillment()を実装していない場合は、バックアップオプションとしてサーバー側でAcknowledge Receipt APIを使用できます。
Q: 携帯電話番号だけでLogin with Amazon(LWA)を使用するユーザーのエクスペリエンスはどのようになりますか?
ユーザーが携帯電話番号のみでLWAを使用している場合、LWAは空のEメールを返すため、アプリはデフォルトのサインインエクスペリエンスにフォールバックする必要があります。
Q: アカウントを作成するために、Eメールアドレス、名前、郵便番号以外の情報が必要な場合はどうすればよいですか?
追加情報が必要な場合、アプリは必要な情報をユーザーにリクエストする必要があります。
Q: IAP SDK v2.0はワンクリックアカウント作成をサポートしていますか?
いいえ。ワンクリックアカウント作成を使用するには、Appstore SDKと統合する必要があります。アプリがIAP SDK v2.0でクイック定期購入を使用している場合は、Appstore SDKにアップグレードする必要があります。ワンクリックアカウント作成は、Appstore SDK v3.0.5以降でサポートされています。
Q: ライブアプリテスト(LAT)でワンクリックアカウント作成をテストできますか? LATテスターの同意をリセットして、テストを再び開始することはできますか?
はい、LATでワンクリックアカウント作成をテストできます。同意をリセットするには、LATテスターがAmazonログインを管理するに移動して、[接続の管理] 列の [アクセスを削除] をクリックする必要があります。同意ステータスを一括で取り消すオプションはありません。
Q: App Testerを使用してワンクリックアカウント作成をテストできますか?
App Testerを使用すると、getUserData() APIの同意ステータス属性を模擬的に設定できます。統合をテストするには、同意ステータスのレスポンスを CONSENTEDまたはUNAVAILABLEに設定します。返されたステータスがCONSENTEDの場合、アプリはLogin with Amazon APIを呼び出してユーザーデータを取得し、自動的にサインインする必要があります。返されたステータスがUNAVAILABLEの場合、アプリはデフォルトのサインインエクスペリエンスにフォールバックする必要があります。

Last updated: 2023年12月6日