Engage SDK に関するよくある質問

公開に関するよくある質問

コンテンツ公開ジョブを管理するのは誰ですか?

アプリ デベロッパーがコンテンツ公開ジョブを管理し、Engage サービスにリクエストを送信します。そうすることで、デベロッパー パートナーは、ユーザーにコンテンツを公開するタイミングや方法をより細かく制御できます。これにより、コンテンツを公開するためにパートナー アプリを頻繁に起動する必要がなくなります。

デベロッパーはすべてのクラスタタイプを公開する必要がありますか?

技術的には、クラスタを 1 つだけ公開する形でも問題ありませんが、複数追加することを強くおすすめします。複数追加しないと、コンテンツをアピールする機会を逃すことになります。各カテゴリのすべてのクラスタタイプを公開することを強くおすすめします

デベロッパー パートナーは、アプリの実行中、ワーク マネージャーを使用してデータをどのくらいの頻度で公開する必要がありますか?

この点はデベロッパー パートナーが判断します。一般的なおすすめコンテンツの場合は 1 日に 1 ~ 2 回公開し、ショッピング カート、再注文、その他の連続コンテンツの場合はイベントドリブン手法を使用することをおすすめします(たとえば、ユーザーがカートに商品を追加したときや、映画を途中で停止したときのカタバックとしてワーカーを開始します)。ソーシャル アプリの場合は、アプリの使用後に更新されたおすすめコンテンツ クラスタを公開することが重要です。ソーシャル アプリのユーザーは最新のおすすめに興味があり、投稿は 1 回まで表示されることを求めています。

デベロッパーが削除 API を呼び出すタイミングはいつですか?

削除 API は、公開するコンテンツがない場合にのみ呼び出す必要があります。コンテンツを置き換えるために、削除 API と公開 API を後から呼び出すことはしないでください。公開 API は以前のコンテンツを自動的に削除します。

ブロードキャスト インテントに関するよくある質問

Android アプリのデベロッパーがブロードキャスト インテントに登録する必要があるのはなぜですか?

ユーザーに最新のコンテンツを提供するには、ユーザーがそのアプリを頻繁に使用していない場合でもデータ同期をトリガーできるよう、ブロードキャスト インテントを使用する必要があります。

バックグラウンド実行が許可されていません

ブロードキャスト インテントの登録中に、次のようなエラーが発生することがあります。

Background execution not allowed: receiving Intent
{ act=com.google.android.engage.action.PUBLISH_RECOMMENDATION .. }

ブロードキャスト レシーバを動的に登録する必要があります。

class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast
// is received
}

public static void registerBroadcastReceivers(Context context) {

context = context.getApplicationContext();

// Register Recommendation Cluster Publish Intent
context.registerReceiver(new AppEngageBroadcastReceiver(),
new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION));
...

}

ワークフローに関するよくある質問

SDK との統合中に、次のようなエラーが発生することがあります。

ディープリンクはパッケージ名と関連付けられています。ディープリンクをテストするには、adb ツールの使用をおすすめします。

adb shell am start -W -a android.intent.action.VIEW -d <DEEPLINK URI> <PACKAGE NAME>

ディープリンクは、アトリビューションをトラッキングするのに最適な方法です。ユーザーをアプリに誘導するディープリンク URL は、追加のトラッキング パラメータに配置できます(例: http://xx/deeplink?source_tag=engage)。

デベロッパーは、独自のトラッキング パラメータを追加し、影響を計算するためのアトリビューションを指定できます。

Engage for TV 2.0 に関するよくある質問

一般的な質問

続きを見る 2.0 とは

連続再生 2.0(Video Discovery API)は、「視聴を中断したところから再開」機能をさらに進化させました。これは、視聴者が幅広いデバイスでコンテンツをシームレスに再開できるようにする重要なアップグレードです。Google TV で映画を開始し、通勤中にスマートフォンで簡単に続きを視聴できるとしたらどうでしょう。これが [続きを見る] 2.0 のパワーです。

この新しいシステムは、Google エコシステム全体でスムーズでストレスのないエクスペリエンスを提供することで、視聴者のエンゲージメントと維持率を高めることを目的としています。

連続再生 2.0 を使用するメリットは何ですか?

回答: 連続再生 2.0 により、視聴者はどのデバイスを使用していても、コンテンツの続きをこれまで以上に簡単に視聴できるようになります。仕組みは次のとおりです。

  • Google の各種サービスとのシームレスな連携: Google TV で視聴を開始したら、Android スマートフォン、iPhone、Android タブレットでシームレスに視聴を続けられます。アプリをまだインストールしていないデバイスでも動作します。
  • エンゲージメントと維持率の向上: 連続再生 2.0 により、新しいデバイスでもユーザーがアプリに戻ってくるようになります。ユーザーがお気に入りの番組を再開できるようにすることで、視聴を継続する可能性が高まります。
  • リーチの拡大: [続きを見る] 2.0 は、Google TV 以外にも、Google Play キューブやその他の Google メディアアプリなど、他の Android メディア エクスペリエンスでも機能します。
  • 下位互換性: 以前の [次に見る] 機能をすでに使用している場合は、問題ありません。連続再生 2.0 は下位互換性があるため、既存の統合は引き続き機能します。

重要な注意事項: 新しい連続視聴の統合では、連続視聴 2.0 を使用する必要があります。古い「クロスデバイスの次のおすすめ」システムは段階的に廃止されます。

連続視聴 2.0 に対応しているサーフェス

  1. Google TV
  2. Android TV(オンデバイスのみ、Engage SDK をサポート)
  3. Google TV Android モバイルアプリ
  4. Google TV iOS モバイルアプリ
  5. Play Cubes
  6. Google エンターテイメント スペース
  7. iOS デバイス(REST API 統合あり)。

Engage SDK は「続きを見る」2.0 に対応していますか?

はい。Engage SDK は [視聴中の動画] 2.0 用です。連続視聴 2.0 と統合する必要があります。

続きを見る 2.0 はすべてのユーザーが利用できますか?

連続再生 2.0 は段階的にリリースされています。

  • 早期アクセス: 最初は、早期アクセス プログラム(EAP)を通じて一部のパートナー グループにアクセス権を付与します。
  • アクセスの拡大: 引き続き視聴 2.0 をすべてのデベロッパーが利用できるように、現在取り組んでおります。

スムーズで成功につながるリリースを実現するため、リリースを管理するための安全対策が講じられています。これには、Continue Watching 2.0 側の許可リストと、Engage SDK 内の個別のチェックの両方が必要です。EAP パートナーである場合や、まもなくオンボーディングを希望される場合は、Engage SDK の統合を開始する前にアクセス権を設定できるよう、Google までご連絡ください。

エンティティを作成する」セクションで、画像の要件を更新しました。

この新しい API ドキュメントでは、Google サーバーがクライアントから「続きを見る」データを取得し、すべてのデバイスに反映されるようになりますか?

新しい API には、次のような「続きを見る」機能のメリットがあります。

  • Google TV 間でシームレスに利用できる: 1 台の Google TV で視聴を開始し、同じアカウントでログインしている他の Google TV で再開できます。この機能は、古いバージョンの Android TV でも動作します。

  • モバイルアプリとの連携: [続きを視聴] は、Android 版と iOS 版の Google TV モバイルアプリで利用できます。これにより、テレビとモバイル デバイスをシームレスに切り替えることができます。

  • ユーザー維持の向上: アプリがインストールされていないデバイスや、ユーザーがログインしていないデバイスでも、[続きを見る] によってユーザーにアプリの再エンゲージメントを促すメッセージが表示されるため、維持率が向上します。

  • 他のプラットフォームへの拡大: この統合により、[続きを見る] が Android、Google Play キューブ、タブレット、Android のその他の Google メディアアプリやサーフェスなどの他の Google メディア プラットフォームに拡張され、デバイス間でのユーザー エンゲージメントが最大化されます。

連続性クラスタに公開できるエンティティの数の上限はありますか?

各デベロッパー パートナーは、連続性クラスタ内で最大 5 個のエンティティに制限されます。この制限により、複数のメディア プロバイダが共有するスペースである Google TV の [続きを見る] 行にコンテンツが公平に分散されます。

5 個を超えるエンティティを公開しようとするとどうなりますか?

エンティティ数が 5 個を超えると、EngageSDK は公開リクエストを拒否します。正常に公開するには、リクエスト内のエンティティの数を減らす必要があります。ユーザーが視聴を中断したエンティティのみを含める必要があります。そのため、ほとんどの場合、そのようなエンティティはごく少数です。このようなエンティティが 5 つを超える場合は、より新しいエンティティを選択して公開できます。

エンティティの数に上限があるのはなぜですか?

Google TV の [続きを見る] 行には、さまざまなメディア プロバイダのコンテンツが表示されます。プロバイダあたりのエンティティ数を制限することで、ユーザーがお気に入りのすべてのソースから多様なコンテンツを閲覧できるようにし、公平でバランスの取れたユーザー エクスペリエンスを促進します。

確認アプリに関する質問

送信前に検証アプリでアプリをテストすることは必須ですか?

はい。APK を送信する前に、検証アプリでアプリをテストすることが不可欠です。

実装に自信がある場合でも、連続視聴 2.0 のインテグレーションには複雑なコンポーネントが多数含まれています。検証アプリはセーフティ ネットとして機能し、潜在的な問題を早期に発見して、長期的には貴重な時間と労力を節約できます。

スムーズなリリースと優れたユーザー エクスペリエンスを保証するための簡単なチェックアップと考えてください。

事前に問題を特定して対処することで、不承認や再送信のストレスを回避できます。

APK を送信するには、アプリが検証プロセスに合格したことを示すスクリーンショットを含める必要があります。

#### 統合時に注意すべき一般的な間違いにはどのようなものがありますか?

検証用アプリは、連続視聴 2.0 の統合に関する潜在的な問題を検出するように設計されています。デベロッパーがよく犯す一般的なミスには、次のようなものがあります。

すべてのコンテンツ タイプ(映画、テレビ番組、ライブ配信、動画クリップ):

  • リンクがない: コンテンツに有効なプラットフォーム固有の URI(リンク)が指定されていることを確認してください。これらのリンクは、各プラットフォームでコンテンツを見つける場所をシステムに伝えます。
  • タイトルがない: すべてのコンテンツにタイトルを追加してください。これにより、ユーザーは視聴していたコンテンツを特定できます。
  • 画像のアスペクト比: コンテンツに関連付けられているすべての画像のアスペクト比が 16:9 に近いことを確認します。これにより、さまざまな画面で画像が正しく表示されます。

テレビ番組のエピソードの場合:

  • エピソードの詳細を入力する: 番組のタイトル、エピソード番号、シーズン番号を必ず含めてください。これにより、エピソードを整理し、ユーザーがシリーズ内を移動できるようになります。
  • 正確な再生位置: 前回の再生位置がエピソードの合計時間以下であることを再確認します。これにより、ユーザーは正しい場所から再開できます。

映画の場合:

  • 正確な再生位置: テレビのエピソードと同様に、前回の再生位置が正確であることを確認します。

ライブ配信動画の場合:

  • ブロードキャスター情報: ライブ配信の場合はブロードキャスターの名前を入力します。

動画クリップの場合:

  • クリエイター情報: 動画クリップのクリエイターを指定します。

なお、検証アプリはこれらの問題を報告するため、アプリを送信する前に修正できます。これにより、時間を節約し、ユーザーにとってスムーズなエクスペリエンスを提供できます。

アカウントとプロフィールに関する質問

アプリで匿名ユーザーのログインを使用しています。続きを見る 2.0 では引き続き AccountProfile が必要ですか?

AccountProfile は、個々のユーザー アカウントを使用するアプリ向けに設計されています。ただし、お客様のアプリのように、匿名ログインに依存しているアプリもあると承知しています。このシナリオで [次の続きを見る] 2.0 がどのように機能するかは次のとおりです。

  • 技術的には AccountProfile が必要ですが、アプリにユーザー アカウント システムがない場合でも、引き続き視聴 2.0 を統合できます。
  • デバイス上の使用に限定: 連続視聴 2.0 のクロスデバイス機能は、さまざまなデバイスでユーザーを識別することに依存しています。匿名ログインではこの情報が提供されないため、この機能はユーザーの現在のデバイスに限定されます。
  • 設定方法: この設定を行うには、クロスデバイス同期を無効にする必要があります。これにより、コンテンツの再生を開始した特定のデバイスにのみ [続きを見る] エントリが表示されます。

まとめ: 連続再生 2.0 を匿名ログインと統合することはできますが、ユーザーは同じデバイスでのみコンテンツを再開できます。

アプリが accountId と profileId の両方をサポートしている場合でも、accountId のみを使用して AccountProfile を使用できますか?

AccountProfile が正しく機能するには、accountId と profileId の両方が必要です。その理由は次のとおりです。

  • 一貫した識別: accountId はユーザーを識別し、profileId はそのユーザーのアカウント内の異なるプロフィールを区別します(該当する場合)。両方を提供すると、[続きを見る] で個々のプロファイルのコンテンツが正確に追跡、表示されます。
  • エラーの防止: 異なる API 呼び出しで accountId と profileId を一貫して使用しないと、予期しない動作やエラーが発生する可能性があります。たとえば、[次のおすすめ] にコンテンツを追加するときに両方を含めて、コンテンツを削除するときに accountId のみを使用すると、目的のアイテムを正しく特定して削除できない場合があります。

続きを見る 2.0 では profileId が必要ですか?

  • accountId は必須です。これにより、デバイス間でユーザーを識別できます。
  • profileId は、優れたユーザー エクスペリエンスを実現するうえで非常に重要です。技術的には省略可能ですが、サービスが複数のプロフィールをサポートしている場合は(多くのストリーミング サービスがそうであるように)、profileId を強くおすすめします。なぜそれほど重要なのでしょうか?profileId がないと、[続きを見る] に同じアカウントの他のプロフィールのコンテンツが表示される可能性があります。これにより、ユーザーに混乱や不満が生じる可能性があります。
  • 要約: profileId を指定すると、[続きを見る] に各ユーザーの視聴履歴が正確に反映されます。アプリがアカウント内のプロフィールのコンセプトをサポートしていない場合を除き、プロフィールを提供する必要があります。

Google は profileId をどのように使用しますか?

サービスでコンテンツを視聴するためのプロファイルが複数提供されている場合は、accountId と profileId を使用して、デバイスで視聴されたコンテンツを、デバイスでログインしている Google アカウントに関連付けます。Google は、accountId と profileId の組み合わせに対して ContinueWatching データを記録します。同じ Google アカウントにログインしているすべての Google デバイスは、同じ関連付けられた accountId-profileId の [続きを見る] 行で最新の更新データを取得します。

連続再生 2.0 を実装するには、アカウントのリンクが必要ですか?

アカウントのリンクは必要ありません。優先度が下げられ、関連するすべてのユースケースは新しい Device Entitlements API でカバーされます。

デバイス間での同期に関する質問

ユーザーが「デバイス間で同期」に同意すると、視聴中のコンテンツが Google TV サーバーに保存され、ログインしているどのデバイスでも中断したところからシームレスに視聴を再開できます。同意がない場合、視聴履歴は現在のデバイスにローカルに保存されます。

[デバイス間で同期する] を false に設定できますか?

UserConsentToSyncAcrossDevices フラグは、ユーザーの ContinuationCluster データがデバイス(テレビ、スマートフォン、タブレットなど)間で同期されるかどうかを制御します。このフラグが false に設定されている場合、連続視聴は同じデバイスでのみ行われます。

クロスデバイス機能を最大限に活用するには、ユーザーの同意を得て SyncAcrossDevices を true に設定することを強くおすすめします。

デバイスに影響しますか?Android 以外のデバイスからサードパーティ サーバーに共有されるデータポイント

同意はユーザー単位(プロフィールまたはアカウント単位)で収集されます。同意が得られると、エンゲージメントに基づく連続視聴ペイロードを任意の場所に送信できるため、ユーザーが部分的なエンゲージメントまたは次のエンゲージメントを行ったすべてのエンティティ(任意のデバイス)で、ユーザーのユビキタス再開ステータスを反映できます(すべてのデバイスまたはプラットフォームで同意を再度尋ねる必要はありません)。パートナーは、(Android に保存された)プロフィール ID に関連付けられた、ユーザーの最新の「続きを見る」ステータス(仕様に基づく)を送信します。

REST API に関する質問

REST API のドキュメントはありますか?

REST API の予定時期は 2025 年 3 月です。これは、連続再生 2.0 デベロッパー ドキュメントに記載されています。

以前の「次に見る」に関する質問

Video Discovery API は Watch Next API に代わるものですか?

Video Discovery API は、Watch Next API をサポートするすべての Android TV デバイスで下位互換性があります。すべてのデベロッパーは、Video Discovery API(連続再生 2.0)を使用して、[連続再生] 行に公開する必要があります。

テストと統合に関する質問

LastPlayBackPositionTimeMillis と duration の違いは何ですか?

LastPlayBackPositionTimeMillis には、ユーザーが視聴を停止した再生時間(ミリ秒単位)を反映する必要があります(例: 10 分 5 秒の場合は 605,000 ミリ秒)。エンティティの合計時間を超えないようにしてください。

一方、LastEngagementTime は、ユーザーがコンテンツを最後に使用したとき刻のタイムスタンプです。

実施すべきテストケース

以下は、Google TV の QA が実施するテストケースです。同様のテストケースは、他のサーフェスでも実行できます。

  1. 20 分を超える動画を 5 分ほど視聴します。アプリを終了します。動画カードが [引き続き視聴] 行に表示されます。注: CW では、サードパーティ製アプリごとに 5 つのカードのみが表示されます。
  2. [続きを見る] 行に新たに表示されたカードを選択すると、動画の適切な位置から動画の再生が再開されます。注: 新しいコンテンツや古いコンテンツは、最後に中断したところから再生が再開されます。
  3. GTV デバイスでアカウントを変更すると、[続きを見る] 行のカードが変更されます。現在のアカウントの動画のみが表示されます。最新の順に並べ替えられます。サードパーティ製アプリ プロファイルの CW は混在します。注: GoogleAccount2 の CW には、GoogleAccount2 が視聴したサードパーティのコンテンツが表示されます。
  4. [戻る] ボタンでアプリを終了 > [続きを見る] 行にカードが表示されていることを確認します
  5. [続きを見る] 行で動画を非表示にします。非表示にしたコンテンツが 24 時間経過しても、24 時間後にアプリを開いた後も非表示のままであるかテストします。1 つのアイテムを非表示にしても、複数のアイテムが非表示にならないことを確認します。
    1. [続きを見る] のコンテンツの可用性(完全なメタデータ: カード画像、アプリ名、タイトル、テレビ コンテンツのシーズン エピソード番号)
  6. 進行状況バーに [Check Progress] と表示されます
  7. ユーザーがコンテンツをエンディング クレジットまで視聴したが、[続きを見る] にコンテンツが表示されない
  8. 未視聴のアイテムが [続きを見る] 行に表示されないことを確認する
  9. アプリが最後に開かれた日や前日ではなく、動画再生アクティビティが発生した日に基づいて、CW アイテムが時系列で並べられていることを確認します。
  10. CW カードのエピソードとシーズンの詳細が、エピソード コンテンツで視聴されたものと一致していることを確認します。
  11. 完了した(クレジット以降の)アイテムが [続きを見る] に表示されないことを確認する
  12. エピソード、映画、番組の途中でデバイスの電源をオフにします。「エピソード、映画、番組の途中でデバイスの電源を切った。デバイスの電源を入れ、他のテレビで CW が正しいカードを正しい位置に表示し、進行状況バーが表示されることを確認します。」
  13. エピソード 1 をすべて視聴した後、デバイスの電源を切って、次の点を確認します。
    1. エピソード 1 が削除され、[続きを見る] 行に再び表示されなくなる [2 台目のデバイスとテストデバイスの電源を入れたとき]
    2. エピソード 2(利用可能な場合)が [引き続き視聴] 行に表示されます [2 台目のデバイスとテストデバイスの電源を入れたとき]
  14. シナリオ 1: TV1: GoogleAccount: mom、サードパーティ アカウント / プロフィール: account 1 / profile_1。コンテンツを視聴し、CW データにサードパーティのアカウント_1/プロファイル_1 が視聴したコンテンツが表示されることを確認します。

    1. TV2: GoogleAccount: mom. 最初のシナリオの CW データを確認します。別のアカウントとしてサードパーティ製アプリにログインします。サードパーティのアカウント / プロフィール: account_2 / profile_2。コンテンツを視聴し、CW データにサードパーティのアカウント_2/プロファイル_2 が視聴したコンテンツが表示されることを確認します。
  15. GoogleAccount: mom. 新しいデバイスケース /サードパーティ製アプリがインストールされていない。新しいデバイス(デバイスを FDR)で、CW に Google アカウントで最後に使用したサードパーティ製アプリのデータが表示されることを確認します。注: GAIA が他のデバイスのサードパーティ プロフィールにまだ関連付けられていない場合、CW 行にサードパーティ コンテンツが表示されてはなりません。

    1. GoogleAccount: mom. 新しいデバイスの場合 /サードパーティ製アプリがインストールされているがログインしていない場合。新しいデバイス(デバイスを FDR)で、CW に Google アカウントで最後に使用したサードパーティ製アプリのデータが表示されることを確認します。
    2. 注: アプリがインストールされ、ログインされている場合、CW の状態は、サードパーティ製アプリにログインしているアクティブなサードパーティ ユーザーを反映します。
    3. 注: Google アカウントがサードパーティ プロフィールにまだ関連付けられていない場合、[続きを見る] 行にサードパーティのコンテンツが表示されないようにします。

Google TV iOS アプリに [続きを視聴] が表示されません。どうすればよいですか?

iOS デバイスに [続きを見る] を表示するには、iOS ディープリンクを送信する必要があります。

[続きを見る] 情報を更新する頻度はどのくらいですか?[続きを見る] 情報を 15 秒ごとに頻繁に更新する必要がありますか?

いいえ。頻繁な更新はおすすめしません。その理由は次のとおりです。

  • パフォーマンスへの影響: アップデートを継続的に送信すると、サーバーに不要な負荷がかかり、すべてのユーザーのシステムが遅くなる可能性があります。
  • 不要なデータ: ユーザーが視聴中に再生位置が絶えず変化します。数秒ごとに更新を送信すると、再生の再開に役立たない冗長なデータが大量に作成されます。

再生中のコンテンツの情報を更新するタイミング:

ユーザーの視聴状況の有意な変化をキャプチャすることに重点を置きます。主なシナリオは次のとおりです。

  • 再生の一時停止または停止: ユーザーが視聴を一時停止または停止したときに、更新を送信して現在の位置を保存します。
  • アプリが閉じられたかバックグラウンドに移行された場合: ユーザーが動画の視聴中にアプリを終了したり、別のアプリに切り替えたりした場合は、更新を送信して進行状況を保存します。
  • ユーザーがアプリ内の [続きを見る] 行からアイテムを削除したとき

効率的に更新する方法:

時間ベースの更新ではなく、動画プレーヤーまたはアプリのライフサイクル内のイベントを使用して更新をトリガーします。次に例を示します。

  • onPause、onStop: 動画の再生が一時停止または停止したとき。
  • onAppClose、onAppBackgrounded: アプリが閉じられたとき、またはバックグラウンドに移動したとき。

これらのガイドラインに沿って対応することで、リソースを効率的に使用しながら、ユーザーにシームレスな [続きを見る] エクスペリエンスを提供できます。