开发者控制台

使用亚马逊额外信息自定义推荐

使用亚马逊额外信息自定义推荐

亚马逊允许您在推荐时发送额外的值。这些额外信息让您能够自定义推荐,使其更适合Fire TV平台。可以阅读以下Fire TV一般文档,了解亚马逊额外信息: 发送包含亚马逊额外信息的推荐

目前,Fire TV无法使用您可以发送的部分亚马逊额外信息。(不过,未来可能会使用。) 在其他情况下,Fire App Builder会发送亚马逊额外信息的默认值(无法更改)。

亚马逊额外信息

下表列出了可用的亚马逊额外信息。该清单与Fire TV中的亚马逊额外信息列表相同。列表后面的部分介绍了如何在Fire App Builder中提交亚马逊额外信息

下表列出了可以添加到PreviewProgram对象的额外信息。

额外项名称 数据类型 详情
com.amazon.extra.DISPLAY_NAME 字符串 Launch(启动)菜单中显示的较短应用名称(在选择推荐时按菜单按钮会显示该名称)。长度限制为15个字符。其他字符将被截断,且被截断字符不会显示为省略号。
com.amazon.extra.ACTION_OPTION 整数 确定为每个推荐显示的上下文菜单选项。支持并可配置一个上下文菜单操作。当用户单击推荐磁贴或其第一个上下文菜单选项后,亚马逊Fire TV会使用随推荐传递的相应内容意图数据启动应用。注意:​ 如果您的应用提供了操作数组列表,则必须提供com.amazon.extra.DISPLAY_NAME(如上所述)。ACTION_OPTION包含的可能值如下所示:

1: Watch with <应用名称>(使用<应用名称>观看)
2: Watch(观看)
3: Resume with <应用名称>(使用<应用名称>继续)
4: Resume(继续)
5: Switch <应用名称> Profile(切换<应用名称>配置文件)
6: Change <应用名称> Settings(更改<应用名称>设置)
7: Change Settings(更改设置)
8: View with <应用名称>(使用<应用名称>查看)
9: View(查看)
10: Play with <应用名称>(使用<应用名称>播放)
11: Play(播放)
12: Listen with <应用名称>(使用<应用名称>收听)
13: Listen(收听)

如果未提供任何值,则默认操作将为Open(打开),下面是Launch <应用名称>(启动<应用名称>)。
com.amazon.extra.CONTENT_CAPTION_AVAILABILITY 整数 内容的字幕可用性:
0: 内容没有字幕可用。
1: 内容有字幕可用。

如何在Fire App Builder中提交亚马逊额外信息

下表说明了Fire App Builder如何处理每个标签、如何将信息提要中的亚马逊额外信息映射到Fire App Builder的内容模式标签,以及有关数据类型的任何特别备注。对于大多数亚马逊额外信息标签,需要使用内容配方将信息提要中的元素映射到这些标签名称。

内容配方10 如果内容带有字幕,则会自动检测内容字幕是否可用。无需在中映射该元素。如果内容带有隐藏式字幕,则Fire App Builder会在发送推荐时传递。如果未带有隐藏式字幕,则传递。
额外项名称 如何在Fire App Builder中使用
com.amazon.extra.DISPLAY_NAME 不要在每个信息提要项目中映射DISPLAY_NAME,而是要在应用的strings.xml文件中设置该值。有关详细信息,请参阅自定义推荐中的应用显示名称
com.amazon.extra.MATURITY_RATING 映射到内容配方中的maturityRating标签。
com.amazon.extra.RANK 无法更改。Fire App Builder会为每个内容项目发送排名0(最高优先级)。
com.amazon.extra.ACTION_OPTION Fire App Builder会发送一个空列表,并接受来自Fire TV的默认值。默认情况下,Fire TV会在启动上下文菜单中使用术语OpenLaunch <应用名称>。要自定义Fire App Builder发送的内容,请映射到内容配方中的actions标签。注意:​ 如果您的应用提供了操作数组列表,则必须提供com.amazon.extra.DISPLAY_NAME(如上所述)。
com.amazon.extra.LIVE_CONTENT 将此元素映射到内容配方中的live标签。另请注意,live的值必须为布尔值(truefalse),而不是整数01(Fire TV额外信息要求数据类型为整数)。发送推荐时,Fire App Builder实际上会将布尔值转换为整数。有关更多详细信息,请参阅配置直播流。对于直播内容,媒体播放屏幕上会省略Watch from Beginning(从头开始观看)按钮。
com.amazon.extra.CONTENT_RELEASE_DATE 映射到内容配方中的availableDate标签。
com.amazon.extra.CONTENT_CAPTION_AVAILABILITY
com.amazon.extra.IMDB_ID 映射到内容配方中的imdbId标签。
com.amazon.extra.CONTENT_START_TIME 映射到内容配方中的startTime标签。仅对直播内容有效。
com.amazon.extra.CONTENT_END_TIME 映射到内容配方中的endTime标签。仅对直播内容有效。
com.amazon.extra.TEXT_EMBEDDED_IMAGE 不支持
com.amazon.extra.LONG_DESCRIPTION Fire App Builder将常规description传递给该额外项。
com.amazon.extra.LAST_WATCHED_DATETIME Fire App Builder通过查看其数据库中的内容记录来自动获取该值。Fire App Builder会存储每项内容的上次观看时间。无需在内容配方中映射该值。
com.amazon.extra.PREVIEW_URL 映射到内容配方中的videoPreviewUrl标签。
genres genres不是亚马逊额外信息,而是常规Android推荐API的组成部分。将此元素映射到内容配方中的genres标签。genres应指向字符串数组,而不是单个字符串。例如:"genres": ["COMEDY", "ARTS", "EDUCATION"]。请使用标准Android类型术语

如何在Fire App Builder推荐中加入额外信息

您可以在信息提要中加入包含项目详细信息的额外信息(但不能在recommendations标签中加入——recommendations标签应仅列出内容ID数组)。Fire App Builder构建相关推荐时,也会包含与亚马逊额外信息相匹配的任何其他信息。

以下是信息提要中包含所有额外信息的项目示例:

{
     "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"
     ],
     "maturityRating": "PG",
     "live": true,
     "startTime": 1490393748,
     "endTime": 1490397347,
     "videoPreviewUrl": "http://mywebsite.com/some/url/to/the/video.mp4",
     "imdbId": "tt2417148",
     "genres": ["DRAMA"],
     "actions": [1, 101]
}

在内容配方中,映射这些额外信息的方式与映射其他信息提要属性的方式相同,但没有m。例如:

{
  "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",
    "channel_id@mChannelId",
    "recommendations@mRecommendations",
    "maturityRating@maturityRating",
    "live@live",
    "startTime@startTime",
    "endTime@endTime",
    "videoPreviewUrl@videoPreviewUrl",
    "imdbId@imdbId",
    "genres@genres",
    "actions@actions"
  ]
}

@符号左侧是信息提要中的属性名称;@符号右侧是Fire App Builder内容模式的值。上表列出了要映射的名称。

自定义推荐中的应用显示名称

在Fire TV主屏幕上显示的推荐中,Fire TV会截断应用标题中长度超过15个字符后的部分。这可能会导致应用名称看起来有点奇怪。例如,“Fire App Builder”被截断为“Fire App Builde”。

要为15个字符的推荐空间设置较短的标题,可以自定义显示名称。以下是自定义名称的示例:

要自定义推荐详细信息中的应用名称,请执行以下操作:

  1. 打开应用的strings.xml文件(位于res > values > strings.xml内)。

    请注意,根据目标语言,会有多个strings.xml文件。对于美国英语,使用strings.xml (en)

  2. 在此文件中,添加以下元素指定想要的应用名称:

    <string name="app_name_short">FireAppBuilder</string>
    

Fire App Builder构建推荐时,它会使用此处包含的值并将其作为com.amazon.extra.DISPLAY_NAME传递。

后续步骤

您已完成构建和配置应用的所有步骤。准备就绪后,向亚马逊应用商店提交应用


Last updated: 2017年4月6日