媒体 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,请将其实体拆分为多个文件(例如
确保文件按照 JSON 规范编码,不包含 BOM。如需在 Linux OS 上进行检查,
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。这样可以确保最终用户体验不会受到任何干扰。
如有上述任何疑问,请与您的 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 包含目录中的所有实体。