创建 Feed

媒体 Feed 是一个 JSON 对象,其中包含表示目录中媒体内容(例如电视连续剧、电影、歌曲、专辑等)的一组实体。新手入门流程的第一步是开始开发 Feed。文件准备就绪后,您需要使用某种受支持的托管方法托管 Feed,以便 Google 定期提取。

Feed 文件格式要求

Feed 文件必须符合以下要求:

  • Feed 文件的文件扩展名必须为 .json
  • 不对 Feed 文件进行加密。
  • 以 UTF-8 编码 Feed 文件(请检查您的文件编辑器设置)。

    alt_text

  • 如果 Feed 文件大于 1 GB(未压缩),请将该文件拆分为多个文件。

  • 我们建议您按实体类型(例如 tvseries.jsontvseasons.jsontvepisodes.jsonmovies.json 等)创建一个文件。

    • 如果其中任何文件超过 1 GB,请将其实体拆分为多个文件(例如 tvepisodes_01.jsontvepisodes_02.json 等)。
    • 只要文件大小小于 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 时,请遵循以下最佳做法:

  1. 使用一小部分实体创建示例 Feed

    在构建包含目录中所有内容的 Feed 之前,我们建议您先创建一个仅包含少量实体的示例 Feed。处理您的 Feed 时,您可能会遇到问题。通过限制实体集的大小,您可以更轻松地调试这些错误和警告。

  2. 验证示例 Feed

    我们提供了一些工具,用于确保您的 Feed 符合相应规范。我们建议您使用这些工具解决在示例 Feed 中找到的所有错误和警告。

  3. 创建正式版 Feed

    确认为一小部分实体实现良好的结构后,请为整个目录开发 Feed。

创建示例 Feed

  1. 从目录中选择一个代表性实体。请选择一个结构较为合理的实体,但对于典型的实体而言,这通常是正常情况。
  2. 请使用数据 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

  1. 解决示例 Feed 中的所有错误和警告后,展开 Feed 以包含目录中的所有实体。
  2. 经常使用数据 Feed 验证工具一次验证 Feed 中的少量实体(在该工具上粘贴大量实体可能会使网络浏览器冻结)。通过将 Feed 中的实体数量与您目录中的商品数量进行比较,确认您的 Feed 包含您目录中的所有实体。