開発者コンソール

関連のおすすめを送信する


関連のおすすめを送信する

共通のおすすめと同様に、Fire App Builderは関連のおすすめをメディアフィードから取得します。共通のおすすめはアプリの起動時に送信されますが、関連のおすすめは、メディアアイテムの詳細におすすめが設定されているビデオをユーザーが視聴したときに送信されます。この記事では、関連のおすすめを設定する手順について詳しく説明します。

簡単にまとめると、フィード内の各アイテムにrecommendations要素を追加して、コンテンツIDのリストを指定します。作成済みのコンテンツレシピでは、既にアイテムの詳細がターゲットになっています。後は、matchListパラメーターでrecommendations要素をマッピングするだけです。

おすすめに関する全般的な情報については、おすすめ機能の概要を参照してください。

  1. フィード内で、おすすめを送信する各アイテムにrecommendationsプロパティを追加します。recommendationsプロパティには、コンテンツID文字列のリストを指定する必要があります。

    たとえば、フィードがJSON形式の場合、関連のおすすめを含むメディアアイテムは次のようになります。

    ...
    
     {
          "id": "162270",
          "title": "Thai Recipes - Thai Chicken Noodles Recipe",
          "description": "Thai Recipes - Thai Chicken Noodles Recipe",
          "duration": "355",
          "thumbURL": "http:\/\/l2.cdn01.net\/_thumbs\/0000162\/0162270\/0162270__015f" type="jpg",
          "imgURL": "http:\/\/l2.cdn01.net\/_thumbs\/0000162\/0162270\/0162270__015f" type="jpg",
          "videoURL": "http:\/\/media.cdn01.net\/802E1F\/process\/encoded\/video_1880k\/0000162\/0162270\/D8HFLX0AC.mp4?source=firetv&channel_id=6341",
          "categories": [
            "International Cuisine"
          ],
          "channel_id": "6341",
          "recommendations": [
            "162269",
            "162266",
            "162265",
            "162264"
          ]
      },
    
    ...
    

    フィードがXML形式の場合は、次のようになります。

    ...
        <item>
            <title>サンプルタイトル</title>
            <pubDate>Wed, 26 Oct 2016 20:34:22 PDT</pubDate>
            <link>https://example.com/myshow/episodes/110</link>
            <author>サンプル作者名</author>
            <category>テクノロジー</category>
            <category>ガジェット</category>
            <recommendations>
              <guid>162269</guid>
              <guid>162266</guid>
              <guid>162265</guid>
              <guid>162264</guid>
            </recommendations>
         </item>
    ...
    

    アイテムごとに固有のおすすめが送信されるため、関連のおすすめは、個別のアイテムの詳細に含める必要があります。おすすめのIDは、テーマ、ジャンル、エピソード、その他のつながりによってアイテムと関連している必要があります。

    recommendationsプロパティは、アイテムの詳細の内部であればどこにでも記述でき、recommendations以外の名前を使用することもできます。次の手順では、レシピにクエリを記述して、recommendations要素に含まれる値をターゲットに指定します。

    iTunesの仕様に準拠するMRSSフィードでは、XMLで使用するカスタム名前空間を定義する必要があるため、カスタム要素を追加するには、より多くのコーディングが必要になる可能性があります(XMLにカスタム名前空間を追加する手順については、このドキュメントでは説明しません)。

  2. アプリのassets > recipesフォルダで、アプリのコンテンツレシピファイルを開きます(このファイルの名前は、コンテンツレシピをセットアップしたときに変更されている可能性があります。元のファイル名はLightCastContentsRecipe.jsonでした)。
  3. matchListパラメーターに、recommendations要素とマッチさせる要素を追加します。たとえば、matchListパラメーターは次のようになります。

    {
      "cooker": "DynamicParser",
      "format": "json",
      "model": "com.amazon.android.model.content.Content",
      "translator": "ContentTranslator",
      "modelType": "array",
      "query": "$.items[?(@.categories[0] in [$$par0$$])]",
      "matchList": [
        "title@mTitle",
        "id@mId",
        "description@mDescription",
        "videoURL@mUrl",
        "imgURL@mCardImageUrl",
        "imgURL@mBackgroundImageUrl",
        "recommendations@mRecommendations"
      ]
    }
    

    queryパラメーターの詳細については、コンテンツレシピをセットアップするqueryパラメーターのセクションを参照してください。フィード内のアイテムをターゲットにするレシピは既に用意されているため、ここでは、アイテムに新しく追加したrecommendations要素をマッチさせるだけです。recommendationsをターゲットにする新しいクエリを定義する必要はありません。

    recommendations要素にrelated_recommendationsなどの名前を付けた場合は、次のように要素をマッチさせます。

    related_recommendations@mRecommendations
    

    @の左側にはフィード内のプロパティ名を指定し、@の右側にはFire App Builderのモデルを指定します。

    Fire App Builderでは、モデル(およびアプリのUI)を構築するために、開発者がコンテンツをmTitlemIdmDescriptionmUrlmCardImageUrlmBackgroundImageUrlの各クエリにマッピングする必要があります。おすすめを送信するとき、Fire App Builderはこれらの基本的なタグの一部を使用して、おすすめを作成します。これらのタグは、Android標準のおすすめAPIで必要とされるコンテンツと対応しています(ContentRecommendation.Builder(英語のみ)を参照)。ただし、(必要に応じて)追加情報を送信すると、Fire TVのおすすめをさらにカスタマイズできます。詳細については、おすすめ機能に対するAmazonエクストラを参照してください。

  4. (任意)アプリから送信する関連のおすすめの数を制限するには、次のように、Navigator.jsonでnumberOfRelatedRecommendationsプロパティ(config内)を使用して制限を指定します。

    "config": {
      "showRelatedContent": true,
      "useCategoryAsDefaultRelatedContent": true,
      "searchAlgo": "basic",
      "numberOfGlobalRecommendations": 3,
      "numberOfRelatedRecommendations": 3
    }
    

    この数が、アプリから送信できる関連のおすすめの上限になります。おすすめがこの数に達すると、更新のタイミングまで、アプリはそれ以上の関連のおすすめを送信しなくなります。

    Fire TVに [ダウンロード済みアプリからのおすすめ] 行が表示されるには、すべてのアプリを合わせて5件以上のおすすめが送信される必要があります。ここで関連のおすすめの数を指定しなかった場合は、デフォルトで5が使用されます。

関連のおすすめをテストする一般的な手順については、Fire TVのドキュメントの おすすめ機能をテストする方法を参照してください。

Fire TVの [ダウンロード済みアプリからのおすすめ] 行は、Fire App Builderアプリでは制御できません。ただし、Android Studioのログを確認すれば、アプリが関連のおすすめを作成して送信していることがわかります。

アプリを起動した後、Android Studioで画面の下部にある [Android Monitor] をクリックし、「recommendation」という単語でフィルターを適用します。関連のおすすめが作成され、送信されたことをログで確認できます。以下に例を示します。

03-24 18:39:09.365 18717-18757/com.amazon.android.calypso D/RecommendationTable: record updated in database: RecommendationRecord{mContentId='99570', mRecommendationId=4, mType='Related'}
03-24 18:39:09.368 18717-18757/com.amazon.android.calypso D/RecommendationSender: Built recommendation - Consuming Passions Chips Recipe | Belgian Style

mType='Related'は、送信されたおすすめが関連のおすすめであることを示します。

テストでは、Navigator.jsonファイルで設定した上限を超えておすすめが送信されることはありません。たとえば、Navigator.jsonで次のように指定されているとします。

"numberOfRelatedRecommendations": 3

この場合、recommendationsのリストに5つのコンテンツIDが含まれていたとしても、送信されるおすすめは3つだけです。

次のステップ

これで、共通のおすすめと関連のおすすめの両方が組み込まれました。Amazonでは、おすすめと共にエクストラの値を送信できるようになっています。これらのエクストラを使用すると、Fire TVのホーム画面に合わせておすすめをカスタマイズできます。次の手順のAmazonエクストラでおすすめをカスタマイズするに進みます。