クイック定期購入のセットアップ
クイック定期購入の概要については、クイック定期購入の概要を参照してください。開始する準備ができたら、Amazonの担当者に連絡して、アカウントでクイック定期購入を有効にするように依頼します。次に、このページの手順に従います。
- 前提条件
- 手順1: 開発者コンソールでクイック定期購入を構成する
- 手順2: セキュリティプロファイルを構成する
- 手順3: getPurchaseUpdatesを実装する
- 手順4: RVSと統合する
- 手順5: アイテム付与の結果をAmazonに送信する
- 手順6: RTNと統合する
- 手順7: ワンクリックアカウント情報共有を統合する
- 手順8: LATを使用してクイック定期購入をテストする
- 関連トピック
前提条件
Appstore SDKバージョン3.0.6以降と統合します。詳細については、Appstore SDKの統合を参照してください。
手順1: 開発者コンソールでクイック定期購入を構成する
ユーザーがアプリ内で購入できる定期購入型アイテムは、クイック定期購入でも購入できる必要があります。また、クイック定期購入で購入できる定期購入型アイテムは、アプリ内でも購入できる必要があります。ただし、アプリ内で購入できる定期購入型アイテムが5つ以上ある場合は除きます。4つの定期購入型アイテムを選択し、クイック定期購入で提供する必要があります。
アプリのクイック定期購入を設定するには、次の手順を実行します。
- 開発者コンソールにログインします。
- アプリ一覧で、クイック定期購入を設定するアプリを探します。
- [アプリ内課金(IAP)アイテム] 列内のリンクをクリックして、[アプリ内課金(IAP)アイテム] 画面を開きます。
- [クイック定期購入を作成] を選択します。
- 次の画像のようなオーバーレイポップアップが表示されます。
[デフォルトの定期購入型アイテムを選択] ドロップダウンに、既存のアプリ内課金(IAP)定期購入型アイテムが表示されます。クイック定期購入を有効にする定期購入型アイテムを選択します。
- [期間を選択] ドロップダウンで、クイック定期購入の期間を選択します。
- クイック定期購入でほかの定期購入型アイテムを提供する場合は、[別のクイック定期購入を追加] を選択します。クイック定期購入は最大4つまで追加できます。
- クイック定期購入の対象デバイスを、チェックボックスをオンにして選択します。
- ライブアプリテスト(LAT)用にのみクイック定期購入を作成するか、LATと公開アプリの両方のためにクイック定期購入を作成するかを選択します。
- LAT用にのみクイック定期購入を作成するには、[テスト用のクイック定期購入を作成] をクリックします。
- LATと公開中のアプリの両方のためにクイック定期購入を作成するには、[テスト・公開用のクイック定期購入を作成] をクリックします。
注: LATを使用してクイック定期購入をテストする方法の詳細については、LATを使用してクイック定期購入をテストするを参照してください。
クイック定期購入の作成後、アイテムを削除または変更する場合は、そのクイック定期購入アイテムの横にある [アクション] をクリックします。
手順2: セキュリティプロファイルを構成する
アプリのセキュリティプロファイルを設定するには、次の手順を実行します。
- 開発者コンソールにログインします。
- アプリ一覧を開き、アプリを選択します。
- [アプリサービス] をクリックし、[セキュリティプロファイル] セクションまでスクロールします。
- [既存のセキュリティプロファイルを選択、または新規作成する] をクリックしてオプションを展開します。
- ドロップダウンを使用して、このアプリにマップするセキュリティプロファイルを選択し、[セキュリティプロファイルを有効化] をクリックします。または、[セキュリティプロファイルを新規作成] をクリックして新しいセキュリティプロファイルを作成することもできます。
手順3: getPurchaseUpdatesを実装する
onResume()
メソッド内でgetPurchaseUpdates()
を呼び出す必要があります。getPurchaseUpdates()
メソッドを使用すると、ユーザーのレシートを取得できます。クイック定期購入は、getPurchaseUpdates()
の情報を使用してユーザーの購入ステータスを検証し、使用権限のあるコンテンツにユーザーがアクセスできるようにします。
getPurchaseUpdates()
は、onResume()
メソッド内で呼び出します。getPurchaseUpdates()
メソッドは、reset
というブール型のパラメーターを1つ受け取ります。reset
をfalse
に設定すると、前回の呼び出し以降に発行された新しいレシートのみが返されます。reset
をtrue
に設定すると、このユーザーのレシートがすべて返されます。
@Override
protected void onResume() {
super.onResume();
//...
PurchasingService.getUserData();
//...
PurchasingService.getPurchaseUpdates(false);
}
getPurchaseUpdates()
メソッドの統合方法の詳細については、IAP APIに関する次のテクニカルドキュメントを参照してください。
- Android - getPurchaseUpdatesメソッドの実装
- ウェブアプリ - getPurchaseUpdates(reset)
実装要件
getPurchaseUpdates()
メソッドを正しく実装するには、以下の要件に従ってください。
- Androidアクティビティの
onResume()
ライフサイクルメソッドで、getPurchaseUpdates()
を呼び出す必要があります。 onResume()
でgetPurchaseUpdates()
を呼び出すときは、常にfalse
フラグを使用して最新のレシートを取得します。true
フラグを使用すると、レシートのすべての履歴が返されるため、レスポンスを処理するためのフィルタリングロジックを追加することが必要になります。- アプリに [購入タイトルを復元] オプションを追加します。ユーザーがこのオプションを選択したら、
getPurchaseUpdates()
をtrue
フラグと共に呼び出します。 getPurchaseUpdates()
を通じて受け取ったレシートは常に保持し、アプリのログインIDにマッピングする必要があります。このマッピングを使用して、ユーザーがアプリを開いたときに定期購入済みのコンテンツのロックを解除します。
手順4: RVSと統合する
レシート検証サービス(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 |
文字列 | 定期購入でのアイテム付与のステータス。有効な値は次のとおりです。
|
gracePeriodEndDate |
長整数 | 定期購入が猶予期間中であることを示します。定期購入の猶予期間の終了日をエポック(ミリ秒)単位で提供します。定期購入が猶予期間中でない場合、このフィールドはnullになります。 |
parentProductId |
文字列 | null。将来使用するために予約されています。 |
productId |
文字列 | アプリ内でこのアイテムに対して定義したSKU。 |
productType |
文字列 | 購入された商品のタイプ。有効な商品タイプは、CONSUMABLE (消費型アイテム)、SUBSCRIPTION (定期購入型アイテム)、ENTITLED (非消費型アイテム)です。 |
promotions |
List<Promotion> | 定期購入型アイテムのプロモーション価格またはリテンションオファーの詳細。プロモーションがない場合はnullになります。RVSのプロモーションを参照してください。 |
purchaseDate |
長整数 | 購入日。エポックからのミリ秒数として格納されます。定期購入型アイテムの場合、purchaseDate は最初の購入日を表します。それ以降の更新日を表すものではありません。 |
purchaseMetadataMap |
Map <String, String> | 購入がクイック定期購入を通じて開始された場合、値は{"QuickSubscribe":"true"} になります。それ以外の場合はnullになります。 |
quantity |
整数 | 購入された数量。常にnullまたは1になります。 |
receiptId |
文字列 | 購入のグローバルに一意の識別子。 |
renewalDate |
長整数 | 定期購入型アイテムの更新が必要となる日付。エポックからのミリ秒で計算されます。 |
term |
文字列 | 定期購入型IAPアイテムの有効期間(期間は購入日から始まります)。数字と期間(日、週、月、年)で構成されます(「1週間」、「2か月」など)。 |
termSku |
文字列 | 定期購入期間に対応する一意のSKU。 |
testTransaction |
ブール型 | この購入が、Amazonによる公開・テストプロセスの一部として実行されたものかどうかを示します。 |
RVSの詳細については、 Appstore SDK IAP用レシート検証サービスを参照してください。
手順5: アイテム付与の結果をAmazonに送信する
アイテム付与の結果を送信すると、ユーザーが購入したコンテンツにアクセスできるかどうかをAmazon側で確認できるようになります。必ずアイテム付与の結果をAmazonに送信してください。これには、Appstore SDKに含まれているnotifyFulfillment()
メソッドを使用します。
ユーザーがサインインした後、定期購入型アイテムが付与されたら、ステータスをFULFILLED
としてnotifyFulfillment()
を呼び出します。ユーザーが既に定期購入型アイテムを所有している場合は、ステータスをUNAVAILABLE
としてnotifyFulfillment()
を呼び出して、ユーザーはサインインしているものの購入は適用できないことを通知します。notifyFulfillment()
メソッドの詳細については、Amazonへのアイテム付与の結果の送信とユーザーへのアイテム付与を参照してください。
既にAcknowledge Receipt APIを統合している場合は、引き続きnotifyFulfillment()
メソッドの代わりに使用できます。アイテム付与の結果をAmazonに通知するには、アプリ内でnotifyFulfillment()
メソッドかAcknowledge Receipt APIのいずれかを使用する必要があります。
実装要件
notifyFulfillment()
メソッドを正しく実装するには、以下の要件に従ってください。
- ユーザーがアプリを開いてコンテンツにアクセスしようとするたびに、
notifyFulfillment()
を呼び出す必要があります。 - 正常にユーザーをレシートにマッピングし、ユーザーの定期購入済みコンテンツのロックを解除した場合は、
FULFILLED
ステータスを指定してnotifyFulfillment()
を呼び出す必要があります。 - ユーザーが既に定期購入型アイテムを所有している場合は、
UNAVAILABLE
ステータスを指定してnotifyFulfillment()
を呼び出す必要があります。 - 問題が発生したために
UNAVAILABLE
を指定してnotifyFulfillment()
を呼び出した場合は、ユーザーとレシートのマッピングに成功し、ユーザーの定期購入済みコンテンツのロックを解除したときに、FULFILLED
ステータスを指定してnotifyFulfillment()
を呼び出す必要があります。
Acknowledge Receipt API
notifyFulfillment()
メソッドを使用してください。Acknowledge Receipt APIを既に統合している場合は、引き続き使用できます。手順6: RTNと統合する
クイック定期購入では、ユーザーはアプリからではなくAmazonを通じてアプリを定期購入します。そのため、ユーザーの購入ステータスに関する情報の一部がアプリに保存されない可能性があります。getPurchaseUpdates()
メソッドは、アプリが開かれている場合にのみデータを送信します。
リアルタイム通知(RTN)は、アプリの外部で発生するトランザクションも含め、すべてのトランザクションの購入情報を提供します。AmazonのRTNサーバーから購入通知を受信したら、Appstore SDK IAP用レシート検証サービス(RVS)を使用してレシートを検証します。
RTNの設定方法の詳細については、リアルタイム通知(RTN)を使用する方法を参照してください。
手順7: ワンクリックアカウント情報共有を統合する
以下のガイドを使用して、アプリにワンクリックアカウント情報共有機能を統合します。
アプリのマニフェストの更新
アプリがワンクリックアカウント情報共有機能をサポートしていることをAmazonアプリストアに示すために、次のコードを使用してアプリのマニフェストを更新します。
<uses-feature android:name="amazon.lwa.quicksignup.supported"/>
getUserDataの変更の実装
ユーザーがAmazonアカウントの詳細をアプリと共有することに明示的に同意したかどうかを判断するには、アプリの初期化時に次のプロセスを実装する必要があります。
アプリのメインアクティビティのonCreate ()
メソッドで、
- 新しい
UserDataRequest
オブジェクトを作成し、ユーザーのプロファイル同意ステータス情報をリクエストするように設定します。同意ステータスをリクエストするようにUserDataRequest
オブジェクトを設定するには、setFetchUserProfileAccessConsentStatus()
メソッドをtrueに設定します。 getUserData()
メソッドを呼び出し、設定されたUserDataRequest
オブジェクトをそのメソッドに渡します。
次の例は、UserDataRequest
オブジェクトを作成して getUserData()
に渡す方法を示しています。
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//...
// 登録するPurchasingListenerの参照を渡します。
PurchasingService.registerListener(this.getApplicationContext(), purchasingListener);
// 登録するUserProfileAccessListenerの参照を渡します
PurchasingService.registerUserProfileAccessListener(this.getApplicationContext(), userProfileAccessListener);
// isLoggedIn()内には、ユーザーのログインステータスを特定するロジックを実装します。
if (!isLoggedIn()) {
PurchasingService.getUserData(UserDataRequest.newBuilder().setFetchUserProfileAccessConsentStatus(true).build());
}
//...
}
onUserDataResponse ()
コールバックメソッドを実装して、ユーザーの同意データを含むUserDataResponse
オブジェクトを取得します。次のコードは、UserDataResponse
オブジェクトから受け取った同意データを処理する方法を示しています。
@Override
public void onUserDataResponse(final UserDataResponse response) {
UserDataResponse.RequestStatus status = response.getRequestStatus();
switch (status) {
case SUCCESSFUL:
if (UserProfileAccessConsentStatus.CONSENTED.equals(response.getUserData().getUserProfileAccessConsentStatus())) {
// カスタムローダー画面またはスピナーを起動します。
PurchasingService.requestUserProfileAccess();
}
break;
case FAILED:
case NOT_SUPPORTED:
// 失敗時の処理を適切に行います。
break;
}
}
ユーザーが同意した場合、UserData
オブジェクトのuserProfileAccessConsentStatus
のステータスはCONSENTED
になります。ユーザーが同意していない場合、または同意トークンの有効期限が切れている場合、userProfileAccessConsentStatus
のステータスはUNAVAILABLE
になります。
ユーザーが同意した場合、アプリはrequestUserProfileAccess()
メソッドを呼び出し、レスポンスオブジェクトにある認可コードでサーバーを更新する必要があります。次に、Appstore SDKが提供するREST APIを使用して、アクセストークンとユーザープロフィールを取得します。共有されたユーザー情報を使用して、システムにアカウントを作成します。
次のコードは、UserProfileAccessResponse
オブジェクトからユーザープロフィールのアクセス認可コードを抽出する方法を示しています。
@Override
public void onUserProfileAccessResponse(final UserProfileAccessResponse response) {
UserProfileAccessResponse.RequestStatus status = response.getRequestStatus();
switch (status) {
case SUCCESSFUL:
// ここでuserProfileAccessAuthCodeを使用してサーバーを更新し、
// Appstore SDK REST APIとさらに連携して、アクセストークンとユーザープロフィールを取得する必要があります。
final String userProfileAccessAuthCode = response.getUserProfileAccessAuthCode();
break;
case FAILED:
case NOT_SUPPORTED:
// 失敗時の処理を適切に行います。
break;
}
}
ユーザーが同意しない場合は、独自のサインイン画面を表示します。これにより、ユーザーはキーボードで認証情報を入力してアプリにサインインできます。
Get Access Token API
Appstore SDKには、アクセストークンを取得するためのGet Access Token REST APIが用意されています。このセクションでは、リクエスト、レスポンス、エラーについて説明します。
アクセストークンリクエスト
認可レスポンスと有効な認可コードを受け取ったアプリは、そのコードを使用してアクセストークンを取得できます。アクセストークンがあれば、クライアントはユーザープロフィールを読み取ることができます。
Get Access Token APIは、次の例に示すように、GETリクエストではなくPOSTリクエストを使用する必要があります。
POST https://appstore-sdk.amazon.com/version/1.0/auth/o2/token?
grant_type=authorization_code
&code=SplxlOBezQQYbYS6WxSbIA
&client_id=foodev
&client_secret=foosecret
次の表では、アクセストークンリクエストのパラメーターについて説明します。
リクエストパラメーター | 説明 |
---|---|
grant_type | 必須。リクエストされたアクセスグラントのタイプ。authorization_code を指定する必要があります。 |
code | 必須。requestUserProfileAccess() メソッドから返された認可コード。 |
client_id | 必須。クライアント識別子。 |
client_secret | 必須。登録時にクライアントに割り当てられたシークレット値。クライアントシークレットはウェブページに確実に保存できないため、ブラウザベースのアプリではクライアントシークレットを使用しないでください。 |
アクセストークンレスポンス
ユーザーデータにアクセスするには、Appstore SDKのGet User Profile APIにアクセストークンを提供する必要があります。アクセストークンは350文字以上の英数字のコードで、最大サイズは2,048バイトです。アクセストークンはAtza|
という文字列で始まります。
レスポンスパラメーターは、application/json
メディアタイプを使用してエンコードされます。詳細については、RFC4627(英語のみ)を参照してください。以下は、アクセストークンリクエストからのレスポンスの例です。
{
"access_token":"Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSR...",
"token_type":"bearer",
"expires_in":3600,
"refresh_token":"Atzr|IQEBLzAtAhRPpMJxdwVz2Nn6f2y-tpJX2DeX..."
}
次の表では、アクセストークンレスポンスのパラメーターについて説明します。
アクセストークンはBearerトークンであり、別のクライアントでも使用できます。詳細については、The OAuth 2.0 Authorization Framework: Bearer Token Usage(英語のみ)を参照してください。
アクセストークンエラー
エラーによっては、認可サービスがHTTP 401 (Unauthorized)
のステータスコードを返す場合があります。これには、クライアントが認可ヘッダーでclient_id
とclient_secret
の値を渡したものの、クライアントが認証されなかった場合などが該当します。
次の表では、失敗したレスポンスのエラーパラメーターについて説明します。
エラーパラメーター | 説明 |
---|---|
error | エラーコード値を表すASCIIエラーコード。 |
error_description | クライアント開発者が判読できる形でエラーに関する情報を記載したASCII文字列。 |
request_id | アクセストークンリクエストに関連付けられたID。 |
errorの値として次のエラーコードが返される可能性があります。
Get User Profile API
Appstore SDKには、ユーザープロフィールデータを取得するためのGet User Profile REST APIが用意されています。このセクションでは、リクエスト、レスポンス、エラーについて説明します。
ユーザープロフィールのリクエスト
承認されたユーザープロフィールデータにアクセスするには、Get User Profile APIを使用してアクセストークンをAmazonアプリストアに送信します。Get User Profile APIは、HTTPS GETリクエストで、Get Access Token APIから受け取ったアクセストークンを唯一のパラメーターとして使用します。
次の例は、ユーザープロフィールデータを取得するGETリクエストを示しています。
GET https://appstore-sdk.amazon.com/version/1.0/user/profile?
access_token=Atza|IQEBLjAsAhRmHjNgHpi0U-Dme37rR6CuUpSR...
リクエストパラメーター | 説明 |
---|---|
access_token | 必須。Get Access Token APIから受け取ったアクセストークン。 |
ユーザープロフィールのレスポンス
アクセストークンが有効な場合は、次の例のように、HTTPレスポンスとしてユーザーのプロフィールデータがJSONで返されます。
{
"user_id": "amznl.account.K2LI23KL2LK2",
"email":"mhashimoto-04@plaxo.com",
"name" :"Mork Hashimoto",
"postal_code": "98052"
}
プロフィールリクエストを処理できない場合は、HTTPエラーが返されます。このとき、次の例のように、詳細情報を含むJSONペイロードが返されることがあります。
{
"error": "コンピューターで解読できるエラーコード",
"error_description": "human-readable error description",
"request_id": "bef0c2f8-e292-4l96-8c95-8833fbd559df"
}
次の表に、ユーザープロフィールリクエストが失敗した場合に返される可能性のあるエラーコードを示します。
フロー図
次の図は、ワンクリックアカウント情報共有を使用したクイック定期購入のコードフローを示しています。
アカウント設定に関するベストプラクティス
ユーザーのアカウントを設定するときは、以下のベストプラクティスに従ってください。
getUserData()
レスポンスのUserProfileAccessConsentStatus
の値がCONSENTED
の場合は、次の操作を行います。- Appstore SDKのGet User Profile APIからユーザー情報を取得します。この情報を使用して、一時パスワードでログインアカウントを作成します。パスワードのリセットや追加情報をユーザーに要求することなく、ユーザーをアプリにサインインさせます。
- 後で、パスワードをリセットするようにEメールでユーザーに通知します。
UserProfileAccessConsentStatus
がUNAVAILABLE
の場合は、アプリのデフォルトの登録エクスペリエンスをユーザーに表示します。
手順8: LATを使用してクイック定期購入をテストする
ライブアプリテスト(LAT)でクイック定期購入をテストするには、まず、開発者コンソールでクイック定期購入を構成するの手順を使用して、開発者コンソールでLAT用のクイック定期購入を構成します。クイック定期購入は、次の画像に示すように、LAT用にのみ構成することも、公開アプリとLATアプリの両方のために構成することもできます。
LAT用にのみクイック定期購入を構成した場合でも、次の画像に示すように [アクション] > [公開中へ昇格] を選択すると、後から構成を公開中のアプリに昇格できます。
LATアプリ用のクイック定期購入の構成が公開アプリ用と異なる場合は、次の画像に示すように、LATアプリ用のクイック定期購入の詳細に [テスト] というラベルが表示されます。
クイック定期購入フローは、AmazonのECサイトまたはFireデバイスでテストできます。ライブアプリテストを開始するときに、テスターに招待Eメールを送信できます。テスターは、Amazonウェブサイトへのリンクが記載されたEメールを受信します。このサイトには、LATバージョンのアプリが登録されています。
ウェブサイトでのクイック定期購入のテスト
LATの招待Eメールから、対象のマーケットプレイスのAmazonウェブサイトを選択します。アプリの詳細ページで、定期購入オプションを選択します。これは、月額20.00 USDのように、定期購入型アイテムの期間に対する有料オプションとして表示されます。次に、配信先のデバイスを選択し、[Get App] をクリックします。
デバイスでのクイック定期購入のテスト
デバイスでクイック定期購入のテストを開始するには、LATの招待Eメールまたはデバイスの通知を使用できます。
LATの招待Eメールからテストするには:
- 招待Eメールに記載されているリンクを使用して、Amazonウェブサイトのアプリの詳細ページに移動します。
- [App Only] オプションをクリックします。
- [配信先:] ドロップダウンメニューで、[Cloud Only] をクリックします。
- [Get App] をクリックします。
- Amazonアカウントに関連付けられているFire TVデバイスで、[マイアプリ・チャンネル] のアイコンをクリックします(アイコンはナビゲーションバーに3つの四角形とプラス記号で表示されます)。
- アプリアイコンにTESTバナーが表示されているLATバージョンのアプリを探します。アプリを表示するには、[アプリライブラリ] をクリックする必要のある場合があります。
- デバイスで、アプリアイコンをクリックしてアプリの詳細ページを開きます。
- [Subscription Options] をクリックし、アプリをダウンロードします。
通知からテストするには:
LATの招待Eメールを送信すると、テスターEメールに関連付けられているテストデバイスに通知が届きます。通知が表示されたときに開くと、LATアプリの詳細ページに移動します。この通知は5~10秒間表示されます。通知が最初に表示されたときに見逃した場合は、設定アイコン(歯車アイコン)をクリックし、[通知] をクリックすることで確認できます。ここで通知を読み、アプリの詳細ページに移動できます。[Subscription Options] をクリックし、アプリをダウンロードします。
重要
- LATによるクイック定期購入のテストは、以下の場合はサポートされません。
- 配信先の特定のデバイスを選択するときに、ウェブサイトで [App Only] オプションを使用した場合。
- デバイスで [App Only] オプションを使用した場合。
-
クイック定期購入以外の目的でLATを使用してアプリをテストする場合は、[App Only] オプションを使用して、アプリを配信する特定のデバイスを選択できます。
-
クイック定期購入のテスト中は、タイムラインが短縮された定期購入型アイテムをオフにしてください。
-
テストアカウントのクイック定期購入をリセットするには、開発者コンソールにアクセスしてLAT用の定期購入型アイテムをリセットします。詳細については、アプリ内課金(IAP)アイテムのリセット(LAT内の全テスターを対象)または個々のテスターの管理を参照してください。
- 30日間のキャンセル期間をテスト用に1日に短縮する必要がある場合は、Amazonの担当者にお問い合わせください。
関連トピック
Last updated: 2024年12月18日