媒体 Feed 是一个 JSON 对象,其中包含表示目录中媒体内容(例如电视连续剧、电影、歌曲、专辑等)的一组实体。新手入门流程的第一步是开始开发 Feed。文件准备就绪后,您需要使用某种受支持的托管方法托管 Feed,以便 Google 定期提取。
Feed 文件格式要求
Feed 文件必须符合以下要求:
- Feed 文件的文件扩展名必须为
.json
。 - 不对 Feed 文件进行加密。
以 UTF-8 编码 Feed 文件(请检查您的文件编辑器设置)。
如果 Feed 文件大于 1 GB(未压缩),请将该文件拆分为多个文件。
我们建议您按实体类型(例如
tvseries.json
、tvseasons.json
、tvepisodes.json
、movies.json
等)创建一个文件。- 如果其中任何文件超过 1 GB,请将其实体拆分为多个文件(例如
tvepisodes_01.json
、tvepisodes_02.json
等)。 - 只要文件大小小于 1 GB,单个文件中可以包含的实体数量就不受限制。
- 如果其中任何文件超过 1 GB,请将其实体拆分为多个文件(例如
确保根据 JSON 规范对文件进行无 BOM 编码。如需在 Linux 操作系统上检查,
hexdump file.json | head -n 1
不得以地址 0x00 中的BBEF
开头。
Feed 类型
生产 Feed
- 这表示一组 JSON 文件,这些文件共同表示了您要在 Google 上发布的整个目录。请参阅下文,了解如何创建 Feed。
- 如果您是首次与 Google 集成,那么这就是您需要的唯一 Feed。
- 此 Feed 提交给 Google 后,我们会进行多次分析和迭代几次,以便获得更高的质量标准,涵盖捕获的信息量及其最终提取和启动前的正确性。
预演 Feed
- 某些使用情形需要扩展生产 Feed。以下是此类情况的一些示例:
- 扩展了 Feed,以包含尚未发布的新实体类型。
- 扩展了 Feed,以包含要发布到新语言区域的大量新实体/元数据。
- 将 Feed 扩展到新的平台类型。例如,当生产 Feed 仅在 Google 搜索上发布,而现在您希望将发布范围扩展到 Google TV 时。
- 在这种情况下,必须提供暂存 Feed。此 Feed 是正式版 Feed 的一个副本,但它具有额外的元数据,例如新平台的深层链接、新语言区域的元数据等。
- 与生产 Feed 类似,系统会多次对这些数据进行广泛分析和迭代,以便根据捕获的信息量及其正确性,为您提供更高的质量标准。 达到质量标准后,此 Feed 即会取代当前的生产 Feed,成为新的生产 Feed。
- 借助此 Feed,我们可以将首次发布与其他发布分开,执行所有必需的测试,而不会影响正式版 Feed。这样可确保最终用户体验不会中断。
请与您的 Google 代表联系,澄清您在以上方面可能遇到的任何问题。
创建 Feed 文件
创建 Feed 时,请遵循以下最佳做法:
-
在构建包含目录中所有内容的 Feed 之前,我们建议您先创建一个仅包含少量实体的示例 Feed。处理您的 Feed 时,您可能会遇到问题。通过限制实体集的大小,您可以更轻松地调试这些错误和警告。
-
我们提供了一些工具,用于确保您的 Feed 符合相应规范。我们建议您使用这些工具解决在示例 Feed 中找到的所有错误和警告。
-
确认为一小部分实体实现良好的结构后,请为整个目录开发 Feed。
创建示例 Feed
- 从目录中选择一个代表性实体。请选择一个结构较为合理的实体,但对于典型的实体而言,这通常是正常情况。
- 请使用数据 Feed 验证工具检查是否存在语法错误和缺少必需的属性。(如需了解详情,请参阅下一部分)。
具有单个
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。
数据 Feed 验证工具
数据 Feed 验证工具一次可以验证单个实体。使用此工具可验证目录中的示例实体,看看是否存在结构错误和常见内容错误。如需详细了解此工具,请点击此处。
JSON 架构验证工具
JSON 架构验证工具可以验证 Feed 中的所有文件。在 Feed 开发过程中使用此工具,可避免常见的结构错误。如需详细了解此工具,请点击此处。
创建正式版 Feed
- 解决示例 Feed 中的所有错误和警告后,展开 Feed 以包含目录中的所有实体。
- 经常使用数据 Feed 验证工具一次验证 Feed 中的少量实体(在该工具上粘贴大量实体可能会使网络浏览器冻结)。通过将 Feed 中的实体数量与您目录中的商品数量进行比较,确认您的 Feed 包含您目录中的所有实体。