创建 Feed

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

Feed 文件格式要求

以下是 Feed 文件的要求:

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

    alt_text

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

  • 我们建议您为每种实体类型(例如 tvseries.json、tvseasons.json、tvepisodes.json、movies.json 等)创建一个文件。

    • 如果其中任何文件超过 1GB,请将其中的实体拆分到多个文件中(例如 tvepisodes_01.json、tvepisodes_02.json 等)。
    • 只要文件大小不超过 1 GB,单个文件中可包含的实体数量就没有限制。
  • 确保文件编码不含 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 时,请遵循以下最佳实践:

  1. 使用少量实体创建示例 Feed

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

  2. 验证示例 Feed

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

  3. 创建正式版 Feed

    在验证少量实体具有良好的结构后,请为整个目录开发 Feed。

创建示例 Feed

  1. 从您的目录中选择一个代表性实体。选择一个结构相对复杂但仍属于目录中典型实体的实体。
  2. 使用 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

  1. 解决示例 Feed 中的所有结构性错误和警告后,请扩展 Feed,使其包含目录中的所有实体。
  2. 对展开后的 Feed 文件运行 JSON 架构验证工具,并在上传后查看 Search Console 上的目录属性,以验证是否存在验证错误。通过将 Feed 中的实体数量与目录中的商品数量进行比较,确认 Feed 包含目录中的所有实体。