发送相关推荐
和全局推荐类似,Fire App Builder会从您的媒体信息提要中获取相关推荐。全局推荐是在应用启动时发送的,而相关推荐是在用户观看媒体项目详细信息中包含推荐的视频时发送的。本文提供了设置相关推荐的分步说明。
总之,您将为信息提要中的每个项目添加一个recommendations
元素,其中列出内容ID。现有的内容配方已经将项目详细信息作为目标。因此,只需在matchList
参数中映射recommendations
元素即可。
有关推荐的更多基本信息,请参阅Fire App Builder中的推荐。
配置相关推荐
-
在您的信息提要中,在要发送推荐的每个项目内添加
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>2016年10月26日星期三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中添加自定义命名空间的说明超出了本文档的范围。)
- 在应用的assets > recipes文件夹中,打开应用的内容配方文件。(您很可能在设置内容配方时重命名了该文件。该文件最初名为LightCastContentsRecipe.json。)
-
在
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元素命名为其他名称,例如
related_recommendations
,则可以按如下所示的方式与该元素进行匹配:related_recommendations@mRecommendations
@
左侧包含了信息提要中的属性名称;@
右侧包含了Fire App Builder的内容模式。为了构建其模式(和应用的用户界面),Fire App Builder要求将内容映射到以下查询:
mTitle
、mId
、mDescription
、mUrl
、mCardImageUrl
和mBackgroundImageUrl
。发送推荐时,Fire App Builder会使用其中一些基本标签来构建推荐。这些标签与标准Android推荐API要求的内容相对应(请参阅ContentRecommendation.Builder)。但是,您可以发送其他信息(如有需要),以更好地自定义Fire TV的推荐。有关更多信息,请参阅亚马逊额外信息。 -
(可选)如果想限制应用发送的相关推荐数量,可以在Navigator.json中使用
numberOfRelatedRecommendations
属性(位于config
内)来指定上限,如下所示:"config": { "showRelatedContent": true, "useCategoryAsDefaultRelatedContent": true, "searchAlgo": "basic", "numberOfGlobalRecommendations": 3, "numberOfRelatedRecommendations": 3 }
此数字限制了应用可以发送的相关推荐数量。达到这一推荐数量后,应用必须等到刷新期才会再次发送相关推荐。
请注意,Fire TV必须收到所有应用的共计至少5条推荐,才会向用户显示Recommended By Your Apps行。如果未在此处指定相关推荐的数量,则使用5作为默认值。
测试您的相关推荐
要测试您的相关推荐,请参阅Fire TV文档中的一般说明: 测试您的推荐
请记住,Fire TV上的Recommended By Your Apps行不在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条推荐。
后续步骤
您已经集成了全局推荐和相关推荐。亚马逊允许您在推荐时发送额外的值。这些额外信息让您能够自定义推荐,使其更适合Fire TV主屏幕。前往下一步:使用亚马逊额外信息自定义推荐。
Last updated: 2017年4月6日