開発者コンソール

手順2: カタログのディープリンクを検証する

手順2: カタログのディープリンクを検証する

Amazonアプリストアにアプリを申請する前に、ここに記載されているテストケースを実行して、統合を検証してください。アプリの動作が正常であることを検証することで、Amazonアプリストアに承認されやすくなります。アプリの状態(公開済みまたは未公開)と条件(ログインが必要かどうか、無料トライアル版かどうか)に応じて、アプリに適用する必要のある手順だけを実行してください。

adbを使用してComradeを開始し、送信されたインテントを確認する方法

アプリから送信されたインテントを確認するには、adbを使用してFire TVデバイスに接続し、Comradeを起動します。Comradeは、ランチャーでコンテンツを管理するFire TV APIの名前です。

  1. まず、アプリをアンインストールします。

    アプリをアンインストールするには、[設定] > [アプリケーション] > [インストール済みアプリケーションを管理] と移動します。アプリを選択し、[アンインストール] を2回クリックします。

  2. adb経由でFire TVデバイスに接続します。次に例を示します。

    adb connect 10.49.172.33:5555
    

    [設定] > [My Fire TV] > [バージョン情報] > [ネットワーク] でネットワークアドレスを確認できます(一部のモデルでは [My Fire TV] ではなく [端末] と表示されます)。

  3. adbを使用してアプリをインストールします。次に例を示します。

    adb install <path-to-apk-file>
    

    詳細については、アプリをインストールして実行する方法を参照してください。

  4. 次のようにlogcatを消去します。

    adb logcat -c
    
  5. Fire TVデバイスのOSのバージョンに応じて、以下のコマンドを実行します。

    adb logcat | grep FTVCS:ComradeActionHandler
    
  6. 送信されたインテントを監視できるようにターミナルを開いた状態で、次の開始されたアクションと送信されたインテントセクションに示すアクションを開始し、レスポンスを確認します。ターミナルに表示される出力については、後述のadbコマンドの出力例セクションに例が示されています。

開始されたアクションと送信されたインテント

このセクションでは、開始されたアクションと結果として送信される後続のインテントを示します。

開始されたアクション 送信されたインテント
初回起動時。たとえば、
  • インストール後にアプリが起動すると...
  • デバイスの再起動後にアプリが起動すると...
  • 強制停止後にアプリが起動すると...

...デフォルトでサインインインテントが送信される。

...次のいずれかの場合にのみ、この時点で再生インテントが送信される。

  • すべてのコンテンツを表示するのにサインインが不要(つまり、アカウントを無料で作成できる場合でもアカウント不要ですべてのコンテンツを無料で視聴できる)
  • アプリがSSOを使用しており、アプリに有効なSSOトークンがある
  • アプリが独自の自動検証機能を使用して、ユーザーにアクセス権があることを検証する

サインインに成功した後... ...再生インテントが送信される
サインアウトまたはログアウト時... ...サインインインテントが送信される
アプリがシングルサインオン(SSO)を使用していて、アプリがバックグラウンドで実行されている場合... ...アプリが再開され、有効なSSOトークンonResumeがあると判断されると、再生インテントが送信される(注: アプリをバックグラウンドに移動するには、アプリを起動し、リモコンのホームボタンを押します)。

adbコマンドの出力例

このセクションでは、ターミナルに表示されるインテントの出力例を示します。重要な情報がハイライトされています。ハイライトされた値は、アプリから受け取ったインテントを示します。

  • SIGN_IN: サインインインテント
  • PLAY: 再生インテント
  • PARTNER123: パートナーのカタログ名

サインインインテントの出力例

サインインインテントを受け取ると、次のような出力が表示されます。

06-11 16:09:57.448  4347 16145 I FTVCS:ComradeActionHandler: Received capability: SIGN_IN
for partner: PARTNER123 06-11 16:09:57.450  4347 16145 I FTVCS:ComradeActionHandler: Processing
capabilities Capabilities{mPartnerId='PARTNER123', mPackageName='com.yourpackagename.firetv',
mComradeApiVersion=V1, mSubscriptionIds=[],
mCapabilities={SIGN_IN=Capabilities{mCapabilityType=SIGN_IN,
mIntentPackageName='com.yourpackagename.firetv',
mIntentAction='android.intent.action.VIEW',
mIntentClassName='com.partner.android.IntegrationActivity',
mIntentDataExtraName='null', mIntentFlags=-1}}}

上記のコードでは汎用の値が使用されています。実際にはアプリ独自のパッケージ名、クラス、エクストラが表示されます。

再生インテントの出力例

再生インテントを受け取ると、次のような出力が表示されます。

06-11 16:09:57.379  4347 16145 I FTVCS:ComradeActionHandler: Received capability: PLAY for
partner: PARTNER123 06-11 16:09:57.380  4347 16145 I FTVCS:ComradeActionHandler: Processing
capabilities Capabilities{mPartnerId='PARTNER123', mPackageName='com.yourpackagename.firetv',
mComradeApiVersion=V1, mSubscriptionIds=[],
mCapabilities={PLAY=Capabilities{mCapabilityType=PLAY,
mIntentPackageName='com.yourpackagename.firetv',
mIntentAction='com.yourpackagename.amazon.catalog.ON_MESSAGE',
mIntentClassName='com.yourpackagename.MainActivity', mIntentDataExtraName='null',
mIntentFlags=268435456}}}

上記のコードでは汎用の値が使用されています。実際にはアプリ独自のパッケージ名、クラス、エクストラが表示されます。

適切なインテントが送信されることを確認するだけでなく、ディープリンクの動作もテストする必要があります。具体的には、ユーザーが選択したコンテンツを再生するとアプリが開いてビデオが直接再生されること(アプリが再生インテントを送信した場合)、またはアプリ内のサインイン画面かサインアップ画面が起動すること(アプリがサインインインテントを送信した場合)を確認します。

ディープリンクのシナリオごとに、未認証ユーザーと認証済みユーザーの2種類のユーザー状態をテストする必要があります。ディープリンクをテストするには、Fire TVのユニバーサル検索を使用してアプリのメディアを検索し、そのメディアを選択してアプリで視聴します。次の表に、予想される条件と結果を示します。

条件 結果
未認証状態: アプリでコンテンツを表示するには認証が必要であるが、ユーザーがまだサインインしていない。 ディープリンクにより、認証画面またはサインアップ画面が表示されます。認証に成功すると、ビデオの再生が開始されます。
認証済み状態: アプリでコンテンツを表示するには認証が必要であり、ユーザーが正常にサインインしている。または、アカウントを作成しなくても、すべてのコンテンツを無料で視聴できる。 ディープリンクにより、ビデオの再生が開始されます。ビデオの詳細ページには移動しません。

次のディープリンクシナリオをテストしてください。

コールドスタートからのディープリンク

「コールドスタート」とは、アプリがインストールされた後、またはアプリを強制停止した後のアプリの最初の起動を指します。アプリがコールドスタートする必要がある場合と、アプリが既にバックグラウンドにある場合とで、ディープリンクの動作は異なります。

 

コールドスタートから認証済み状態のディープリンクをテストするには、次の手順を実行します。

  1. アプリを起動します。
  2. アプリにサインインします。
  3. リモコンのホームボタンを押します。
  4. アプリを強制停止します。[設定][アプリケーション][インストール済みアプリケーションを管理] の順に移動し、対象のアプリを選択して [強制停止] を選択します。
  5. Fire TVのユニバーサル検索を使用してアプリのメディアを検索し、そのメディアを選択します。メディア詳細ページに [<アプリ名>で今すぐ観る] ボタンが表示されます。
  6. [<アプリ名>で今すぐ観る] をクリックすると、アプリでメディアが開きます。

ディープリンクにより、ビデオの再生が開始されます。ビデオの詳細ページには移動しません。

 

コールドスタートから未認証状態のディープリンクをテストするには、次の手順を実行します。

  1. アプリを起動します。
  2. 必要な場合は、アプリからサインアウトします。
  3. リモコンのホームボタンを押します。
  4. アプリを強制停止します。[設定][アプリケーション][インストール済みアプリケーションを管理] の順に移動し、対象のアプリを選択して [強制停止] を選択します。
  5. Fire TVのユニバーサル検索を使用してアプリのメディアを検索し、そのメディアを選択します。メディア詳細ページには、さまざまな定期購入オプションが表示されることがあります。アプリが [その他の視聴方法] の下に表示されることがあります。この決定方法の詳細については、Buy Boxを参照してください。
  6. アプリをクリックして起動します。アプリのサインイン画面またはサインアップ画面が表示されます。

ディープリンクにより、認証画面またはサインアップ画面が表示されます。認証に成功すると、ビデオの再生が開始されます。

バックグラウンドにあるアプリのディープリンク

 

アプリがバックグラウンドにある間に認証済み状態のディープリンクをテストするには、次の手順を実行します。

  1. アプリを起動します。
  2. アプリにサインインします。
  3. リモコンのホームボタンを押します。
  4. Fire TVのユニバーサル検索を使用してアプリのメディアを検索し、そのメディアを選択します。メディア詳細ページに [<アプリ名>で今すぐ観る] ボタンが表示されます。
  5. [<アプリ名>で今すぐ観る] をクリックすると、アプリでメディアが開きます。

ディープリンクにより、ビデオの再生が開始されます。ビデオの詳細ページには移動しません。

 

アプリがバックグラウンドにある間に未認証状態のディープリンクをテストするには、次の手順を実行します。

  1. アプリを起動します。
  2. 必要な場合は、アプリからサインアウトします。
  3. リモコンのホームボタンを押します。
  4. Fire TVのユニバーサル検索を使用してアプリのメディアを検索し、そのメディアを選択します。メディア詳細ページには、コンテンツのさまざまな視聴方法が表示されることがあります。アプリが [その他の視聴方法] の下に表示されることがあります。この決定方法の詳細については、Buy Boxを参照してください。
  5. アプリをクリックして起動します。アプリのサインイン画面またはサインアップ画面が表示されます。

ディープリンクにより、認証画面またはサインアップ画面が表示されます。認証に成功すると、ビデオの再生が開始されます。

ビデオ再生中のディープリンク

 

ビデオ再生中に認証済み状態にあるディープリンクをテストするには、次の手順を実行します。

  1. アプリを起動します。
  2. アプリにサインインします。
  3. アプリでビデオの視聴を開始します。
  4. ビデオの視聴中にリモコンのAlexaボタンを押して、動詞なしでコンテンツを音声検索します。たとえば「Friends」を検索する場合は、Alexaボタンを押してから「Friends」と発話します。
  5. ユニバーサル検索がコンテンツを表示し、アプリのオーディオとビデオの再生が停止されます。コンテンツを選択します。

コンテンツは自動再生されます。ビデオの詳細ページには移動しません。

テストケース: [戻る] ボタンでユーザーを検索結果に戻す

このテストケースでは、[戻る] ボタンの正しい動作を確認します。

  1. Fire TVのホーム画面から、アプリのメディアを検索します。
  2. コンテンツを選択してアプリで再生します。
  3. [戻る] ボタンを押します。[戻る] ボタンを押すと、最終的には検索結果に戻るはずです。

テストケース:無効なコンテンツIDの送信

もう1つ実行する必要のあるテストケースとして、無効なコンテンツIDをアプリに送信し、その条件をアプリが適切に処理することを確認します。アプリがこの条件を適切に処理できない場合は、エラー処理コードを再調査して、必要に応じて修正します。

アプリへの無効なコンテンツIDの送信をテストするには、次の手順を実行します。

  1. アプリをFire TVデバイスにダウンロードまたはサイドロードします。
  2. 必要に応じてサインインし、アプリの定期購入をアクティブ化します。
  3. テストアプリ(統合テストアプリを使用したFire TVランチャー統合のテストを参照)またはadbコマンド(ADBを使用したランチャー統合のテストを参照)のいずれかを使用して、無効なIDをアプリに送信します。
  4. 最初に、有効なIDを送信して、コンテンツが適切に起動されることを確認します。
  5. 次に示す無効なID条件をテストします。
    • 数字で構成される無効なIDを送信する。
    • 英字で構成される無効なIDを送信する。
    • 数値と文字が混在した無効なIDを送信する。
  6. 無効なIDを送信しても、アプリがインテントを適切に処理することを確認します。

アプリが起動し、アプリ内のメイン画面が表示されることを確認します。または、アプリが適切なメッセージを返す必要があります(例:「選択したコンテンツはご利用いただけません」)。 アプリ内のメイン画面が表示されない場合、またはメッセージが表示されない場合は、表示されるようにエラー処理コードを変更します。

追加のテスト

必要に応じて、次の2つのトピックに従って、カタログコンテンツに対して追加のテストを実行できます。


Last updated: 2023年3月24日