as

Settings
Sign out
Notifications
Alexa
Amazonアプリストア
AWS
ドキュメント
Support
Contact Us
My Cases
開発
設計と開発
公開
リファレンス
サポート

ウォッチリスト

ウォッチリスト

ここでは、ユーザーのウォッチリストのコンテンツを追加および削除する手順を説明します。Fire TVは、ウォッチリスト情報を使用してユーザーのユニバーサルウォッチリストを更新する場合があります。

送信する内容

トリガーごとに(「送信するタイミング」を参照)、以下のフィールドを含むイベントを送信します。送信するデータをフィルタリングしたり、重複をチェックしたりする必要はありません。これは必要に応じてAmazonが行います。

フィールド名 必須(○/×) 説明
コンテンツID カタログ統合を通じてFire TVに提供されたコンテンツIDに対応します。
追加日 ユーザーがウォッチリストにエントリを追加したときのタイムスタンプ。
内部プロフィールID Fire TVがアクティビティを正しいアプリユーザーに関連付けることができるようにするための、難読化されたプロフィールID。

送信するタイミング

  • アプリの初回起動時とログイン時。
  • ユーザーのウォッチリストのアイテムを追加または削除するとき。このアクションはデバイス外でも実行できます。
  • Fire TVのオンデバイスサービスから更新するように求められたとき
  • 新しいプロフィールに切り替えるとき

送信方法

ユーザーがウォッチリストに追加した最新のタイトルを共有するには、次のTypeScriptコードを使用します。

クリップボードにコピーしました。

// ユーザーがコンテンツの視聴を開始したときに生成されるユーザー入力イベントの例

const customerListEntry: ICustomerListEntry = new CustomerListEntryBuilder()
    .addedTimestampMs(Date.now())
    .contentId(
    new ContentIdBuilder()
        .id('string')
        .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
        .build(),
    )
    .profileId(
    new ProfileIdBuilder()
        .id('myProfileId1')
        .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
        .build(),
    )
    .build();

// イベントを送信します
ContentPersonalizationServer.reportNewCustomerListEntry(
    CustomerListType.WATCHLIST,
    customerListEntry,
);

ユーザーのウォッチリスト全体の送信

次のTypeScriptコードは、コンテンツパーソナライゼーションデータサービスから要求された場合に、ユーザーのウォッチリスト全体を送信する方法を示しています。

クリップボードにコピーしました。

const customerListEntriesHandler: ICustomerListEntriesHandler = {
    getAllCustomerListEntries: (
      listType: CustomerListType,
      customerListEntriesProvider: ICustomerListEntriesProvider,
    ) => {
        let listEntries: ICustomerListEntry[] = [];

        const customerListEntry1: ICustomerListEntry = new CustomerListEntryBuilder()
            .addedTimestampMs(Date.now())
            .contentId(
                new ContentIdBuilder()
                    .id('content1_CDF_ID')
                    .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
                    .build(),
            )
            .profileId(
                new ProfileIdBuilder()
                .id('myProfileId')
                .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
                .build(),
            )
            .build();
        listEntries.add(customerListEntry1);

        const customerListEntry2: ICustomerListEntry = new CustomerListEntryBuilder()
            .addedTimestampMs(Date.now())
            .contentId(
                new ContentIdBuilder()
                    .id('content2_CDF_ID')
                    .idNamespace(ContentIdNamespaces.NAMESPACE_CDF_ID)
                    .build(),
            )
            .profileId(
                new ProfileIdBuilder()
                .id('myProfileId')
                .idNamespace(ProfileIdNamespaces.NAMESPACE_APP_INTERNAL)
                .build(),
            )
            .build();
        listEntries.add(customerListEntry2);

        customerListEntriesProvider.addCustomerListChunk(listType,listEntries);
        customerListEntriesProvider.commit();
    }
};

// HeadlessServiceのonStart関数でユーザーリスト入力ハンドラーを設定することを忘れないでください
ContentPersonalizationServer.setCustomerListEntriesHandler(
        customerListEntriesHandler,
);

Last updated: 2025年9月30日