媒体 Feed 是一个 JSON 对象,其中包含一系列实体,这些实体代表您目录中的媒体内容,例如电视连续剧、电影、歌曲、专辑等。新手入门流程的第一步是开始开发 Feed。文件准备就绪后,您需要使用其中一种受支持的托管方法托管 Feed,以便 Google 定期提取。
Feed 文件格式要求
以下是 Feed 文件的要求:
- Feed 文件的文件扩展名必须为
.json。 - 请勿加密 Feed 文件。
使用 UTF-8 对 Feed 文件进行编码(检查文件编辑器设置)。

如果 Feed 文件大于 1 GB(未压缩),请将其拆分为多个文件。
我们建议您为每种实体类型(例如
tvseries.json、tvseasons.json、tvepisodes.json、movies.json等)创建一个文件。- 如果其中任何文件超过 1GB,请将其中的实体拆分到多个文件中(例如
tvepisodes_01.json、tvepisodes_02.json等)。 - 只要文件大小不超过 1 GB,单个文件中可包含的实体数量就没有限制。
- 如果其中任何文件超过 1GB,请将其中的实体拆分到多个文件中(例如
确保文件编码不含 BOM,如 JSON 规范中所述。如需在 Linux 操作系统上进行检查,
hexdump file.json | head -n 1不得在地址 0x00 处以BBEF开头。
Feed 类型
正式版 Feed
- 这表示一组 JSON Feed 文件,这些文件共同代表您要在 Google 上发布的整个目录。您可以在下文中了解如何创建 Feed。
- 如果您是首次与 Google 集成,则只需提供此 Feed。
- 将此 Feed 提交给 Google 后,我们会对其进行全面分析并多次迭代,以确保在最终提取和发布之前,所捕获的信息量和准确性达到更高的质量标准。
预演 Feed
- 在某些用例中,需要扩展商品 Feed。下面是此类场景的一些示例:
- 扩展 Feed 以包含之前未发布的新实体类型。
- 扩展 Feed,以包含大量要在新语言区域发布的新实体/元数据。
- 将 Feed 扩展到新的平台类型。例如,当商品 Feed 仅在 Google 搜索上发布,而您现在希望将发布范围扩大到 Google TV 时。
- 在这种情况下,需要使用预演 Feed。此 Feed 是正式版 Feed 的副本,但包含额外的元数据,例如新平台的深层链接、新语言区域的元数据等。
- 与商品 Feed 类似,此 Feed 将经过广泛分析和多次迭代,以在捕获的信息量和正确性方面达到更高的质量标准。达到质量标准后,此 Feed 将取代当前的生产 Feed,成为新的生产 Feed。
- 借助此 Feed,我们可以将初始发布与后续发布分开,执行所有必要的测试,而不会影响正式版 Feed。这样可以确保最终用户体验不会中断。
如果您对上述内容有任何疑问,请与您的 Google 代表联系。
创建 Feed 文件
创建 Feed 时,请遵循以下最佳实践:
-
在构建包含目录中所有内容的 Feed 之前,我们建议您先创建一个仅包含少量实体的示例 Feed。在处理 Feed 时,您可能会遇到问题。通过限制实体集的大小,您可以更轻松地调试这些错误和警告。
-
我们提供了一些工具,可确保您的 Feed 符合规范。我们建议您使用这些工具来解决在示例 Feed 中发现的所有错误和警告。
-
在验证少量实体具有良好的结构后,请为整个目录开发 Feed。
创建示例 Feed
- 从您的目录中选择一个代表性实体。选择一个结构相对复杂但仍属于目录中典型实体的实体。
- 使用 JSON 架构验证工具检查是否存在语法错误和缺少必需属性。(如需了解详情,请参阅下一部分。)
包含单个
Movie实体的 Feed 示例{ "@context": "http://schema.org", "@type": "DataFeed", "dateModified": "2018-07-20T00:44:51Z", "dataFeedElement": [ { "@context": ["http://schema.org", {"@language": "en"}], "@type": "Movie", "@id": "http://www.example.com/my_favorite_movie", "url": "http://www.example.com/my_favorite_movie", "name": "My Favorite Movie", "potentialAction": { "@type": "WatchAction", "target": { "@type": "EntryPoint", "urlTemplate": "http://www.example.com/my_favorite_movie?autoplay=true", "inLanguage": "en", "actionPlatform": [ "http://schema.org/DesktopWebPlatform", "http://schema.org/MobileWebPlatform", "http://schema.org/AndroidPlatform", "http://schema.org/AndroidTVPlatform", "http://schema.org/IOSPlatform", "http://schema.googleapis.com/GoogleVideoCast" ] }, "actionAccessibilityRequirement": { "@type": "ActionAccessSpecification", "category": "subscription", "requiresSubscription": { "@type": "MediaSubscription", "name": "Example Package", "commonTier": true, "@id": "[partner determined string]" }, "availabilityStarts": "2018-07-21T10:35:29Z", "availabilityEnds": "2019-10-21T10:35:29Z", "eligibleRegion": [ { "@type": "Country", "name": "US" }, { "@type": "Country", "name": "CA" } ] } }, "sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie", "releasedEvent": { "@type": "PublicationEvent", "startDate": "2008-01-20", "location": { "@type": "Country", "name": "US" } }, "description": "This is my favorite movie.", "actor": [ { "@type": "Person", "name": "John Doe", "sameAs": "https://en.wikipedia.org/wiki/John_Doe" }, { "@type": "Person", "name": "Jane Doe", "sameAs": "https://en.wikipedia.org/wiki/Jane_Doe" } ], "identifier": [ { "@type": "PropertyValue", "propertyID": "IMDB_ID", "value": "tt0123456" } ] } ] }
验证示例 Feed
您可以使用以下工具,根据 Google 的媒体 Feed 结构化数据规范验证示例 Feed:
JSON 架构验证工具
JSON 架构验证工具会在上传前在本地验证 Feed 中的所有文件。在开发 Feed 期间使用此工具,可避免常见的结构和类型错误。如需详细了解该工具,请点击此处。
Search Console 中的目录资源
在 Google 代表启用您的 Search Console 目录资源并提取您的示例或预演 Feed 后,请使用 Search Console 上的目录资源检查实体级验证错误、警告和提取诊断信息。
创建正式版 Feed
- 解决示例 Feed 中的所有结构性错误和警告后,请扩展 Feed,使其包含目录中的所有实体。
- 对展开后的 Feed 文件运行 JSON 架构验证工具,并在上传后查看 Search Console 上的目录属性,以验证是否存在验证错误。通过将 Feed 中的实体数量与目录中的商品数量进行比较,确认 Feed 包含目录中的所有实体。