開発者コンソール

Fire TVのTV入力フレームワーク

Fire TVのTV入力フレームワーク

リニアTVの統合は、TV入力サービスの開発に関するAndroidドキュメントに基づいています。Fire TV固有の技術要件を理解するには、以下のリンクや説明が役立ちます。

予備知識と用語

Fire TVのライブTV機能の詳細に立ち入る前に、予備知識と基本の理解が必要になります。統合を進める前に、以下のドキュメントを参照してください。

リニアTVの統合は、Androidドキュメントの テレビ入力サービスを開発するに基づいています。

統合の詳細

ライブリニアチャンネルを統合するには、ユーザーのチャンネル権限へのアクセスに加え、Fire TVでコンテンツが閲覧および検索されやすくするためのメタデータを提供する必要があります。

ライブチャンネル権限

視聴権限のあるチャンネルのみを(TV入力フレームワーク(TIF)によって提供されている)デバイスのローカルチャンネルデータベースにプッシュするには、アプリを更新する必要があります。チャンネルを更新(または追加/削除)するには、INITIALIZE_PROGRAMSアクションを使用してブロードキャストレシーバーを登録します。この視聴権限メタデータは、アプリが最初にインストールされたときに確実に更新されるようにします。これは、アプリがバックグラウンドで実行されている間でも実行できます。

チャンネルの編集については、チャンネルデータを利用するを参照してください。

このデータベースにチャンネルがある場合、ユーザーはチャンネルを視聴できます。チャンネルの追加や削除はこのデータベースからいつでも行うことができ、変更は即座にUIに反映されます。これは、このデータベースが、ライブコンテンツの操作時に表示されるすべてのチャンネルの情報源として使用されているためです。

TvContract.Channelsのチャンネル列は、可能な限り埋めてください。GracenoteチャンネルIDがわかっている場合や、再生のディープリンクを指定する場合は、Channels#COLUMN_INTERNAL_PROVIDER_DATAにその情報を含めることができます(コード例のセクションを参照してください)。

番組メタデータの取得

ライブTVのメタデータを提供する方法は2つあります。

  • GracenoteチャンネルIDを使用する(推奨)
  • チャンネルメタデータを自分で挿入する

どちらの方法を使用するかは、チャンネルごとに選択する必要があります。つまり、Gracenote IDを使用するチャンネルと、自分でチャンネルのメタデータを挿入するチャンネルが存在する可能性があります。

TIF+Gracenote TIFのみ
専用カルーセルの閲覧
[ライブプロバイダー]
App Peak
混合カルーセルの閲覧
[視聴履歴]
[ホーム][放映中のチャンネル]
[ジャンル]
閲覧
電子番組表
検索
チャンネル
番組
音声
チャンネル変更
番組変更(新着/ライブのみ)
更新方法(メタデータ)
Gracenoteによる自動
手動(開発者側で定期的な情報更新が必要)

Gracenote IDの指定(推奨される方法)

GracenoteチャンネルID(onTVまたはGVD(グローバルビデオデータ))を指定すると、ライブTVアプリを通じて情報が毎日クラウドと同期されます。Gracenote IDが見つかった場合は、最大14日間の番組情報を含むFire TVカタログ内でチャンネルを検索する際に使用されます。この情報は、[ホーム] タブ、[ライブ] タブのほか、番組表にも表示されます。この情報は自動的に更新され、常に最新の状態に保たれます。また、検索機能やAlexaからも検出可能になります。

Gracenote IDがない場合

チャンネルのGracenoteチャンネルIDを指定しない場合は、ロゴなどのすべてのChannelメタデータを挿入し、該当する全チャンネルの今後の番組情報をTvContract.Programsに定期的に挿入する必要があります。ライブTV対応サンプルアプリには、その方法の例が記載されています。

指定できるフィールドは次のとおりです。

UXフィールド 説明 認定に必須 関連付けられたTIFフィールド
番組名 番組の名前。画面の左上に表示される大きなテキストです。 Title
再生時間 放送時間(例: 午後11:00~午前12:00)。番組名のすぐ下に表示されます。 Start_time_utc_millis
End_time_utc_millis
エピソード名 放映中のエピソードの名前。再生時間とバッジの下に太字で表示されます。 Episode_title
エピソードの説明 エピソードの説明。エピソード名の後に続くセクションに、表示可能な範囲で表示されます。この詳細説明はAmazonで使用されますが、簡潔な説明にフォールバックされます。 short_descriptionにフォールバックされるlong_description
シーズンとエピソードの情報 シリーズに共通の情報(ホームコメディなど)。この放送に関して提供されるシーズンとエピソードの情報です。この情報は、エピソード名の後に続くミニ詳細に含まれます。 × Season_display_number
Episode_display_number
レーティング エピソードの地域のレーティング(バッジ形式)。再生時間と同じ行に表示されます。 × content_rating
クローズドキャプション 放送がクローズドキャプションをサポートしているかどうかを示すバッジ。再生時間と同じ行に表示されます。 × 未サポート(近日サポート予定)
HD 放送がHDで撮影されているかどうかを示すバッジ。再生時間と同じ行に表示されます。 × 未サポート(近日サポート予定)
ライブ 放送が収録と同時に「リアルタイム」で行われていることを示す、カルーセルタイル上のバッジ。 × 未サポート(近日サポート予定)
新着 放送が初回放送である(ただしリアルタイムではない)ことを示す、カルーセルタイル上のバッジ。 × 未サポート(近日サポート予定)
番組画像 カルーセルタイルに表示される16:9の番組/映画の画像。解像度は768x432以上である必要があります。 Thumbnail_uri
背景画像 ミニ詳細セクションの隣にある右上隅のセクション全体に表示される16:9の番組/映画の画像。解像度は1280x720以上である必要があります。 Poster_art_uri
チャンネル名 カルーセル内でタイル表示されるチャンネルの名前。表示名の制限に関するガイダンスについては、ベストプラクティスを参照してください。 Display_name
チャンネルロゴ EPG(電子番組表)で使用される透明なモノクロロゴ。チャンネルロゴがない場合は、(マーキー内の)チャンネル名にフォールバックされます。 logo

チャンネルの順序

チャンネルの順序によって、Fire TVデバイスのUIに表示されるチャンネルのランクが決まります。基本の順序はプロバイダーが決定します。ユーザーはコンテキストメニューやチャンネルマネージャーを使用して、チャンネルをお気に入りとして設定できます。こうすると、そのチャンネルが最も高い優先順位で表示されます。したがって、優先順位はお気に入り>チャンネルの順序オプションとなります。Fire TVでは、開発作業のレベルが異なる2つのオプションが用意されています。

  1. 表示名順は、開発時間を必要としない、従来の最も一般的な順序です。この順序を使用すると、Fire TV UIのチャンネルは、displayNameに従ってUnicodeで表示されます。たとえば、チャンネルリスト{“XYZ”, “1BC”, and “1 BK”}は、{“1 BK”, “1BC”, “XYZ”}という順序で表示されます。

  2. もう1つのオプションは、カスタムのチャンネル順です。この順序を使用すると、プロバイダーのチャンネルは、tv.dbの「_id」と一致する順序で表示されます。この「_id」は、挿入された順に割り当てられます。tv.dbでこれらのチャンネルを更新する場合は、チャンネルの順序を維持する必要があります。これは、ライブTVアプリでもFire TV UIと同じ順序が使用されるためです。

一貫性のあるエクスペリエンスを提供するために、アプリ内での順序に最も近いチャンネル順序を選択することを強くお勧めします。オンボーディングプロセスの一環として、Amazonの担当者と協力し、チャンネル順序の決定方法を選択してください。

全画面再生

次の2つの実装方法があります。

  1. ディープリンク(特定のアプリで開くリンク)
  2. ネイティブTVアプリ

ディープリンク。Fire TVでは、独自のアプリで全画面再生を実行できる機能が提供されています。この機能を使用するには、ディープリンクインテントをチャンネル情報の一部としてチャンネルデータベースに挿入します。閲覧または検索中にチャンネルが選択されると、このインテントが起動されます。インテントがアクティブになるたびに、リクエストされたチャンネルの全画面再生が開始されます。詳細については、コードサンプルのセクションを参照してください。

ネイティブTVアプリ。全画面再生を実装するもう1つの方法として、ネイティブのライブTVアプリを使用する方法があります。これを行うには、TvInputService.Sessionを使用します。この例については、ライブTV対応サンプルアプリを参照してください。

ライブプレビュー

ディープリンクインテントが提供されている場合でも、TvInputService.Sessionを実装する必要があります。ユーザーが閲覧の行にあるいずれかのタイルにフォーカスすると、onTuneが呼び出されます。このとき、アプリの名前またはロゴを含むスプラッシュ画面を表示した後で、リクエストされたチャンネルの再生を、指定のセキュアなSurfaceにレンダリングする必要があります。これにより、エンゲージメントが向上します。onTuneリクエストに基づいて、指標を取得したり、ライブコンテンツの読み込みを開始したりすることで、パフォーマンスを高めることもできます。

スプラッシュ画面のガイドライン

  • ユーザーがタイルにフォーカスを置いた後、スプラッシュ画面が開始されるまでにかかる時間は、最大で3秒です。
  • フォーカスされたコンテンツのビデオプレビューの再生は、スプラッシュ画面が読み込まれてから2秒後に開始する必要があります。

機能制限

TvInputServiceで指定されているサーフェスにアプリでコンテンツをレンダリングする場合(チャンネルのディープリンクがない場合やライブプレビューの場合)は、機能制限が適切に実装されている必要があります。機能制限が有効になっている場合、アプリはコンテンツを表示する前に、エンドユーザーにPINの入力を要求します。ブロックされるべきコンテンツが要求されるたびに、TvInputServiceでフォアグラウンドのアプリに通知する必要があります。推奨されるフローについては、コードサンプルのセクションを参照してください。

プロバイダーのアトリビューション

次の3つのアイテムを必ずカスタマイズしてください。

1.ラベル

デフォルトでは、アプリのlabelは、ユーザーがチャンネルを閲覧する際にヘッダーとして使用されます。このラベルは、12文字以下の全角文字または24文字以下の英数字にする必要があります。別の名前を使用したくてもlabelを変更できない場合は、Amazon担当者と相談してオーバーライドされるようにしてください。

アプリのブランドを表すモノクロロゴ(白い画像、透明な背景)を1つ指定してください。ロゴは番組アートの上にオーバーレイされます。この画像ファイルの高さは最大34px、幅は最大でオーバーレイ画像の幅の25%までとする必要があります。

詳細については、Amazonの担当者にお問い合わせください。

3.バナー

パッケージマネージャーでアプリバナーを指定します。例については、コードサンプルのセクションを参照してください。

認定チェックリスト

Amazonは、以下のチェックリストを使用して、ライブTVが統合されたアプリを認定します。アプリの実装が直接関係する動作ポイントは次のとおりです。また、認定の例外は、状況に応じた対応となります。

権限状態の変更

  • ユーザーが次のいずれかを実行すると、視聴権限のあるチャンネルがFire TVのUIに表示されます([放送中のチャンネル] 行、チャンネルガイドなど)。 (1)アプリを開いてサインインする。(2)[設定] > [ライブTV] > [チャンネル提供元を同期] > <アプリ名>からアプリの設定ページにアクセスする。開発者はこれら両方の条件を確認する必要があります。
  • ユーザーのメンバーシップ期限が切れた場合(つまり、「視聴権限がなくなった」場合)、ユーザーがチャンネルにアクセスしてペイウォールに到達し、オファーをキャンセルまたは拒否するまで、チャンネルはFire TVのUIに表示され続けます。
  • チャンネルは、アプリがアンインストールされたとき、またはチャンネルの視聴権限が無効になったときに、Fire TVのUIから削除されます。

最大ロールアウトレート

ユーザーに対するチャンネルの段階的ロールアウトは、1時間あたり最大50万のレートで実行されます。

この値は、チャンネルの視聴権限があるユーザーのFire TVデバイスの数を示します。チャンネルの視聴権限がある状態とは、Fire TV内のリニアTV統合のUXからワンクリックで全画面再生を行うことができる状態を指します。

例:

  • ABCアプリはビデオオンデマンドを提供していますが、プレミアムアドオンとしてライブTV機能も備えています。この場合、ライブTVのアドオンを利用しているABCユーザーのみがロールアウトの対象となります。
  • XYZアプリには、無料の基本チャンネルパッケージに加えて、さらに多くのチャンネルを視聴できる有料プランが用意されています。この有料プランのチャンネル編成が更新された場合、ロールアウトの対象となるのはその有料プランのユーザーのみです。

閲覧と再生

  • ユーザーがチャンネルにフォーカスすると、詳細なメタデータが提供されます。リニアTVガイドに表示されるチャンネルには、チャンネルのロゴ、チャンネル番号(オプション)、今後14日間のスケジュール情報が含まれます。番組のメタデータには、番組名、再生時間、エピソード名、エピソードの詳細な説明、シーズンとエピソードの情報、字幕、レーティング、番組画像(16:9)、背景画像(16:9)が含まれます。このメタデータ情報は、Gracenoteのマッチング、またはTVコントラクトの一部としてプッシュされるメタデータから提供されます。
  • ユーザーが [放映中のチャンネル] 行のチャンネルにフォーカスすると、背景画像に代わってライブチャンネルのプレビューが表示されます。
  • ユーザーは、視聴権限のあるこのチャンネルの提供元を把握できる必要があります。このため、背景画像(モノクロ、高さ34px)の一部として、またはライブチャンネルプレビューの再生前のスプラッシュ画面として、プロバイダーアトリビューションを追加します。
  • ユーザーがチャンネルを選択すると、全画面再生が開始されます。[戻る] ボタンを1~2回押すとFire TVのUIに戻ります。
  • 機能制限(PCON)が有効になっている場合、再生前にPINの入力を求めるプロンプトが表示されます。PCONが有効になっている場合は、ライブチャンネルプレビューを無効にする必要があります。
  • Alexaにアクセスする場合は、再生するライブコンテンツの音量を下げます(ビデオは続行されます)。
  • (任意)ジャンルをチャンネルに割り当てることができます。この場合、Fire TV UIの追加入力ポイントでチャンネルが表示されます。

開発、ステージング、デプロイ

  • 本番環境に進む前に、Amazonが特定のアカウントを許可リストに登録して、統合されたエクスペリエンスを確認および認定できる必要があります。
  • 視聴権限のあるチャンネルのみが、両者がリリースに同意したマーケットプレイスのFire TV UIに追加されます。その後、別のマーケットプレイスでリリースする際には、新しい認定レビューとして扱われ、許可リストへの登録が必要となります。
  • リリース後に追加または削除されるチャンネルはすべて、Amazonが把握する必要があります。追加されるチャンネルの上限については、両者の合意が必要です。
  • (強く推奨)アプリのダウンロードページとリリースノートには、ユーザーがFire TVで利用可能な新機能を把握できるように、ライブTVの統合について記載してください。

更新の実行

アプリを更新する場合は、更新を実行する前に、認定チェックリストの項目を再度確認してください。

チャンネル編成を更新する場合は、認定チェックリストの項目を再度確認し、さらに以下も実行してください。

  • 公開の2週間以上前に、Fire TVの担当者に公開タイムラインを通知してください。
  • 編成内容に10%以上の増減がある場合は、Fire TVの担当者から明示的な承認を受けてください。

Last updated: 2022年10月10日