Play Games 操作

概览

本文档介绍了面向视频游戏的 Play Game 操作,列出了架构要求,并详细介绍了启动该功能的初始配置流程。

Play Games 操作简介

Play Game 操作的移动版
移动设备上 Play Games 操作的图片
Play Game Actions 的桌面版
桌面设备上 Play Games 操作的图片

借助视频游戏的“畅玩游戏”操作,用户可以直接在桌面设备或移动设备上的搜索结果页 (SRP) 中畅玩游戏。当用户搜索至少关联了一项 Play Game 操作的游戏时,系统会在有条理的搜索结果页面 (OSRP) 的“概览”标签页或知识面板中向用户显示 Play Game 操作。此功能适用于免费提供、通过订阅或按需购买的演示版或完整版游戏,这些游戏可在桌面设备或移动设备上通过云端串流畅玩,也可通过桌面设备或游戏机上的本地客户端应用下载。

Play Game 操作由包含游戏目录详细信息的 Feed 提供支持。 Feed 是一个包含实体集合的 JSON 对象。实体是一个 schema.org 对象,表示您目录中的游戏以及用于串流该游戏(演示版、免安装试玩版或完整版)的相关深层链接。

为了让 Google 获取您的 Feed,您需要将 Feed 存储在一个文件中,并将该文件托管在 Google 可以访问的位置。为确保您的内容处于最新状态,Google 会定期从您的主机中提取 Feed 文件。

我们将在以下各部分中详细介绍每项要求。

开始使用

如上一部分所述,作为提供商,您的职责包括:

  • 了解创建 Feed 所需的信息;这些信息的来源和可用性,以及这些信息最终如何进入 Feed。
  • 创建一个 Feed,其中包含您目录中每个游戏实体的必需详细信息。
  • 将 Feed 托管在服务器或云存储服务上,并允许 Google 定期提取 Feed。
  • 回应并解决 Google 提出的问题。这些问题可能与质量相关,也可能与 JSON 文件本身的结构相关。
  • 随着目录的变化,及时更新 Feed。
  • 确保发布后 Feed 质量保持不变。

让我们详细了解一下这些功能。

准备工作

在开始创建 Feed 之前,我们建议您花时间了解 Play Game Actions 元数据要求,并将所有必要信息收集到一处。 建议您在开始创建 Feed 之前执行以下操作:

  • 查看 VideoGame 实体的元数据要求
  • 收集元数据。
    • 请仔细查看必需属性和强烈建议的属性。Google 会使用这些属性来匹配 Feed 中的内容与 Google 数据库中的内容;您为内容提供的元数据越多,Google 就越能更好地匹配相应内容。

了解本文档中“作品”和“版本”的用法

  • 作品:视频游戏的抽象概念。确切地说,书名、开发者、游戏说明和发行商等元数据是作品的属性。
  • 版本:视频游戏的具体版本。确切地说,出版年份、平台名称和深层链接等元数据是版本的属性。

例如,“古墓丽影:暗影”是一部作品,但它的每个版本都是一个版本。在这种情况下,作品“古墓丽影:暗影”可能有 Stadia 版、PlayStation 版、Stadia 抢先体验版等。

两者间的差别在 Feed 中可能并不明显,但却十分重要。有两个 VideoGame 实体:

  • VideoGame(作品)是“顶级”VideoGame 实体:
    • exampleOfWork 是 VideoGame(作品)的一个属性,用于指定一个或多个 VideoGame(版本)实例。
    • 每个 VideoGame(作品)必须至少有一个 exampleOfWork VideoGame(版本)。
  • VideoGame(版本)是“较低级别”的 VideoGame 实体。

请谨记,一部作品可能会有多个版本。我们建议您尽可能将这些版本组合到一起。这有助于 Google 系统利用视频游戏的所有相关信息,并将视频游戏显示在 Google 搜索结果中。

了解两个关键媒体资源及其要求。在进入下一步(创建 Feed)之前,请务必正确设置这些参数。

规范网址 (url)

规范网址 (url) 有助于 Google 准确匹配您目录中的内容与 Google 数据库中的内容。

“规范网址是 Google 认为在您网站上的一组重复网页中最具代表性的网页的网址。举例来说,如果同一个网页有多个网址(例如:example.com?dress=1234 和 example.com/dresses/1234),Google 便会从中选择一个网址作为规范网址。”(来源:整合重复网址

规范网址必须满足以下要求:

  • url 必须是全局唯一的。
  • url 必须包含 Google 可以抓取的有效规范网址。

标识符 (@id)

标识符 (@id) 必须满足以下要求:

  • 在整个目录中具有全局唯一性:
    • 例如,请勿为两款不同的视频游戏使用相同的 @id
  • 静态:
    • 您之后无法更改 @id
  • 以统一资源标识符 (URI) 的形式:
    • 如果您的内容的本地标识符 (ID) 不是 URI 格式,请在 ID 前面添加您的网域,以满足此要求;例如,如果您的内容的 ID 为 1234abc,而您的网域为 https://example.com,则 @id 可以为 https://example.com/1234abc
    • @id 不必是有效的网址,只需采用 URI 格式即可。
    • @id 中使用的网域(例如 https://example.com)必须归您的组织所有。

由于实体的 url 符合作为标识符的所有要求(即全局唯一、静态且采用 URI 形式),因此我们建议您在合理的情况下使用实体的 url 作为 @id

了解并确定深层链接要求

当用户针对内容发起 Play Game Action 时,Google 会使用该内容的深层链接将用户直接转到您的应用或平台中的相应内容。请注意以下几点:

  • 深层链接需要在指定的所有平台上打开其定位的内容。不同平台可以有不同的深层链接。例如,在桌面版网站上有效的深层链接可能与在移动版网站上有效的深层链接不同。对于每款游戏,检查其是否具有基于平台的不同深层链接。
  • 深层链接可以包含参数 (&) 或锚标记 (#)。
  • 为确保您的内容可在 Google 的多个平台(Google 搜索、Google 助理和 Android TV)上提供,您必须使用深层链接。

由于实体的 url 满足作为标识符的所有要求(即全局唯一、静态且采用 URI 形式),因此我们建议您在合理的情况下使用实体的 url 作为 @id

平台 说明
http://schema.org/DesktopWebPlatform 桌面网络浏览器上的搜索平台。
http://schema.org/MobileWebPlatform 移动网络浏览器上的搜索平台。
http://schema.org/AndroidPlatform 在 Android 应用中搜索平台。
http://schema.org/AndroidTVPlatform Android TV 应用中的 Android TV 平台。
http://schema.org/IOSPlatform 在 iOS 应用上搜索平台。

确定您目录中游戏的访问要求:问自己以下问题,并确保可以通过 Feed 中的元数据来确定这些问题的答案。

  • 用户是否需要登录您的应用或平台才能访问内容?
  • 用户是否需要订阅?
  • 用户是否需要购买才能玩游戏?
  • 访问权限要求是否会随时间推移而变化?
  • 访问要求是否取决于设备位置?

如果您提供多种可供用户购买的订阅套餐,请了解 commonTier 是什么以及它如何应用于您与 Google 的集成。

付费墙类型

Play Game 行动目前仅支持以下付费墙类型

类别价值 付费墙类型
nologinrequired 无需购买或登录。
free 用户必须登录,但无需付费订阅。
subscription 用户必须拥有有效订阅。访问权限与订阅层级无关。
subscription 用户必须拥有有效订阅。访问权限与订阅层级无关。
purchase 购买后,内容可无限期观看。
rental 购买后,内容在有限时间内可供访问。

这些类别值稍后会在创建 Feed 时使用。另请注意,上表中的 rental 类别目前完全是可选的,未来可能会在产品增强功能中得到支持。目前,商品仅利用 Feed 中的 freenologinrequiredsubscriptionpurchase 类别值。

最后,快速浏览一下示例 Feed,了解我们最终想要实现的效果。

了解上述内容,并确保有元数据来表示答案(针对这些问题),这些元数据足以让您进入 Feed 创建阶段。

创建 Feed

Play Game Actions Feed 是一个 JSON 对象,其中包含一系列实体,这些实体表示您目录中的视频游戏。您需要以文件或多个文件的形式提供 Feed,并将其托管在服务器或云存储服务上,以便 Google 定期提取。

遵守 Feed 文件大小、数量和格式要求

您需要遵守以下要求:

  • 所有 Feed 文件都需要使用文件扩展名 .json
  • 确保文件名不包含空格。
  • 请勿加密您的 Feed 文件。
  • 以 UTF-8 格式对 Feed 文件进行编码(检查文件编辑器设置)。 编码图像
  • 如果您的 Feed 文件在未压缩状态下大于 1 GB,请将该文件拆分为多个文件。
    • 只要文件大小不超过 1 GB,您可以在单个文件中包含的实体数量或最终作为 Feed 提交的一部分提交给 Google 的文件数量就没有限制。
  • 确保该文件已根据 JSON 规范进行编码,且不含 BOM。若要在 Linux 操作系统上验证这一点,hexdump file.json | head -n 1 不得以地址 0x00 中的 BBEF 开头。

遵守 Feed 内容要求

您必须遵守以下内容要求:

  • Feed 不得包含过时的实体。过时实体是指深层链接的 availabilityEnds 设为过去日期的实体,或您网站上已不存在的实体。
  • 您在 Feed 中添加的所有深层链接(例如 urlTemplate)和所有网址(例如 url)都必须是正式版网址。请勿使用质量检查、开发或任何其他类型的非正式版网址。
  • 如上一部分所述,所有网址(例如 url)都必须是规范网址
  • Feed 中的每个实体都必须指定以下属性:
    • 唯一 ID:@id
    • 唯一网址:url
    • 唯一深层链接:urlTemplate

在创建 Feed 时,我们建议您执行以下操作:

  • 详细了解 Feed 的结构
  • 首先从示例 Feed 着手。
    • 从目录中选择最多 5 个代表性实体。选择结构相对复杂但仍属于目录中典型实体的实体,并为其创建 Feed。
  • 将其发送给您指定的 Google 代表进行快速验证。
  • 解决示例 Feed 中的所有错误后,展开 Feed 以包含商品目录中的所有实体。
    • 如需确认您的 Feed 是否包含目录中的所有实体,请将 Feed 中的实体数量与目录中的商品数量进行比较。

托管 Feed

Feed 文件准备就绪后,请将其托管在安全位置。然后,Google 会定期抓取 Feed,确保您的内容处于最新状态。我们支持以下托管方法:

托管方法 身份验证支持
Google Cloud Storage 088794101-100000002-account@partnercontent.gserviceaccount.com 授予 Storage Object Viewer 权限
HTTPS 需要您分享用户名+密码或 HTTP 客户端证书
SFTP 需要您分享密码和/或密钥+词组。
AWS S3 需要您分享 AWS S3 存储分区的密钥 ID 和访问密钥。

将 Feed 文件上传到主机系统后,请与 Play Game Actions 团队联系,以审核您的 Feed 文件。

提交 Feed 以供审核

托管 Feed 文件后,请与您的 Play Game Actions 专属联系人联系,开始 Feed 审核流程。请务必在此沟通中提供以下信息:

  • 概览/说明:请告知我们您分享的是示例 Feed 还是完整的正式版 Feed。如果您要分享示例 Feed,请尽可能告知我们正式版 Feed 的预计到达时间。
  • 主机位置:Feed 文件的网址。
  • 主机身份验证:如果适用,请添加身份验证凭据,以便 Google 从您的主机检索 Feed 文件。如需了解详情,请参阅托管 Feed
  • 测试账号:一个测试账号,可让 Play Game Actions 团队访问您的应用或平台上的深层链接以进行测试。如果您的 Feed 中包含多个平台上的实体,请为每个平台提供一个测试账号。
  • Icons:提交以下五种图标。这些图标会显示在 Google 搜索中的 Play Games 操作旁边。
类别 尺寸(像素) 文件大小 指南
在 Google 搜索/Cast/其他平台上执行游戏 Action
16x16 除 112x112 像素图标之外,所有图标的文件大小均不得超过 1 KB。

112x112 像素图标的文件大小不得超过 3 KB。

必须提供全部五种尺寸的图标。

图片必须遵守以下准则:

  • PNG 文件格式。
  • 圆形。
  • 透明背景。
  • 确保图片已进行抗锯齿处理,且未失真或像素化。
20x20
40x40
44x44
112x112

示例

示例图标

Feed 验证的运作方式

Feed 验证分为两个阶段:

  • 结构验证
    • 这是验证检查的第一阶段。
    • Google 会提供与 JSON 文件结构相关的反馈。JSON 格式是否正确?Feed 中是否包含所有必需属性和强烈建议的属性?提供的深层链接是否已根据我们的 Feed 要求进行注释?
    • 此阶段需要与 Google 进行多次来回讨论,直到所有反馈都得到解决。
  • 元数据协调
    • 只有在 Feed 通过结构验证阶段后,此阶段才会开始,此时 Google 会开始与 Google 的知识图谱进行协调流程。
    • 在此阶段,我们会针对 Feed 中包含的元数据提供反馈。您需要解决所有问题,才能成功发布。例如,在此阶段收到的反馈可能会要求您修正游戏的标题或发布日期。
    • 此阶段还需要与 Google 进行多次来回讨论,直到所有反馈都得到解决。

Feed 验收标准

当所有阻塞性问题都已解决,并且 Google 已证明元数据质量达到发布标准时,Feed 便可视为可用于发布。

根据需要更新 Feed

我们建议您每天更新 Feed,不过,这最终取决于您的目录更改频率。请注意以下条件和提示:

  • Google 搜索不支持实时更新。
  • Google 搜索每天抓取一次 Feed,通常在两天内(发布后)将相应内容编入索引。
  • 如果能够预见深层链接的供应时间会发生变化,请使用 availabilityStartsavailabilityEnds 设置确切的日期。
  • 如果相关实体已不再出现在您的目录中,请从 Feed 中完全移除该实体。

参考

Feed 结构概览

Play Games 操作 Feed 具有以下结构:

playgame feed 示意图

数据 Feed 信封

数据 Feed 信封是 Play Game Actions Feed 中的顶级对象。该对象包含一个内容标记对象(VideoGame [作品] 实体)数组,用于表示您目录中的所有视频游戏。

属性 预期类型 说明
@context 网址 必需。设置为 http://schema.org
@type 文本 必需。设置为 DataFeed
dateModified DateTime 必需。Feed 的上次修改日期和时间,采用 ISO 8601 格式(包括时区)。
dataFeedElement Thing 的子类型 必需。游戏目录中的实体。

模板

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {  },
    {  },
    {  },
    ...
  ]
}
    

内容标记对象

内容标记对象表示目录中的单个实体:VideoGame(作品)。该对象包含内容的标识符和规范网址,并通过元数据帮助描述内容。VideoGame(工作)的内容标记对象具有一个名为 exampleOfWork 的属性,用于将其与 VideoGame(版本)对象相关联。此 VideoGame(Edition) 可以包含一个 Action 标记对象数组,从而使内容与多个 Action 标记对象相关联。 例如,内容可以针对每个地区使用不同的 Action 标记对象。

操作标记对象

Action 标记对象用于描述将用户引导至游戏的深层链接以及游戏所需的访问权限级别。该对象是内容标记对象 (potentialAction) 的属性。对于 Play 游戏操作,请使用操作访问权限规范对象来指定访问权限限制。

属性 预期类型 说明
@type 文本 必需。始终设置为 PlayGameAction
gameAvailabilityType GameAvailabilityEnumerationText 必需。指明与相应操作关联的游戏内容的提供类型,例如是完整版还是演示版。可接受的值包括 DEMOFULL
additionalType 文本 必需。表示与相应游戏相关联的播放操作的类型。接受的值包括:
  • StreamingPlayAction - 表示有比赛可在线直播
  • DownloadPlayAction - 表示游戏可供下载
target EntryPoint 必需。提供深层链接到各种 Google 平台的映射的目标对象
target.@type 文本 必需。始终设置为 EntryPoint
target.urlTemplate 网址 必需。一种深层链接,可将用户引导至您的应用或平台,并开始播放游戏。
target.inLanguage 文本 可选。剧集的原始语言,采用 BCP 47 格式。
target.actionPlatform 文本 必需。映射到 urlTemplate 的平台。Play Game Action 支持以下值:
  • http://schema.org/DesktopWebPlatform
  • http://schema.org/MobileWebPlatform
  • http://schema.org/AndroidPlatform
  • http://schema.org/AndroidTVPlatform
  • http://schema.org/IOSPlatform

如需了解相关要求,请参阅平台类型

actionAccessibilityRequirement ActionAccessSpecification 必需。一个操作访问权限规范对象,用于描述内容的访问权限要求。如需了解详情,请参阅操作访问权限规范属性

模板

"potentialAction": {
  "@type": "PlayGameAction",
  "target": [
    {  },
    {  }
  ],
  "actionAccessibilityRequirement": [
    {  },
    {  }
  ]
}
    

目标

目标对象提供深层链接到各种 Google 平台的映射。该对象是 Action 标记对象的属性 (target)。urlTemplate 属性用于捕获深层链接,actionPlatform 属性用于捕获支持深层链接的平台。

示例

"target": [
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/AndroidTVPlatform",
      "http://schema.org/IOSPlatform"
    ]
  },
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/mobile/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/MobileWebPlatform"
    ]
  }
]
    

操作访问权限规范

操作访问权限规范对象用于描述内容在特定地区和时间段内的访问权限要求。该对象是 Action 标记对象的属性 actionAccessibilityRequirement

包含两个深层链接的目标示例

"target": [
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/DesktopWebPlatform",
      "http://schema.org/AndroidPlatform",
      "http://schema.org/AndroidTVPlatform",
      "http://schema.org/IOSPlatform"
    ]
  },
  {
    "@type": "EntryPoint",
    "urlTemplate": "http://www.example.com/mobile/game007?autoplay=true",
    "actionPlatform": [
      "http://schema.org/MobileWebPlatform"
    ]
  }
]
    

操作访问权限规范

操作访问权限规范对象用于描述内容在特定地区和时间段内的访问权限要求。该对象是操作标记对象的属性 actionAccessibilityRequirement

属性 预期类型 说明
actionAccessibilityRequirement.@type 文本 必需。始终设置为 ActionAccessSpecification
actionAccessibilityRequirement.category 文本 必需。内容访问要求。如需了解可接受的值和更多信息,请参阅付费墙类型

如果实体代表一组内容,您需要将类别设置为其内容的最宽松访问要求。例如,如果某款游戏可通过 nologinrequired 免费访问,也可通过订阅访问,请将类别设置为 nologinrequired

actionAccessibilityRequirement.availabilityStarts 日期 必需。操作可用的日期(采用 ISO 8601 格式,包括时区)。日期可以设为未来的日期。
  • 必须等于或大于 availabilityStarts 之后 72 小时。
  • 如果内容在发布后始终可用,请将此日期设置为当前日期后的 20 年。

我们要求在 Feed 中提供相应实体,且至少要在其 availabilityStarts 日期前七天提供。这有助于提高游戏及时在 Google 平台上展示的几率。

actionAccessibilityRequirement.availabilityEnds 日期 必需。相应操作的失效日期,采用 ISO 8601 格式(包括时区)。日期可以设为未来的日期。
  • 必须等于或大于 availabilityStarts 之后 72 小时。
  • 如果内容在发布后始终可用,请将此日期设置为当前日期后的 20 年。

我们要求在 availabilityEnds 日期前至少七天在 Feed 中更新 availabilityEnds 日期。这样一来,游戏在 availabilityEnds 日从 Google 平台中消失的可能性就会增加。

actionAccessibilityRequirement.eligibleRegion 国家/地区城市GeoShape文本 必需。内容可供观看的地区。如果内容在全球范围内提供,请使用特殊字符串 EARTH。如需了解相关要求,请参阅 GeoShape 属性
actionAccessibilityRequirement.ineligibleRegion 国家/地区城市GeoShape文本 必需(如果适用)。内容受限的地区。如果内容在 eligibleRegion 内的所有国家/地区均可观看,则无需提供此属性。

如需了解相关要求,请参阅 GeoShape 属性

actionAccessibilityRequirement.requiresSubscription MediaSubscription 必需(如果适用)。用户需要订阅才能访问内容的订阅的详细信息。如需了解详情,请参阅媒体订阅属性
  • 如果 categorysubscription,则提供此属性。
actionAccessibilityRequirement.expectsAcceptanceOf 优惠 如果内容需要购买,则必须提供此属性。与内容相关联的优惠的详细信息。请提供以下情况的价格信息:
  • 一次性购买的内容(rentalpurchase
  • 需要订阅者额外购买的订阅型内容 (subscription)

如果价格为 0.00,则完全移除 Offer 对象,并将 actionAccessibilityRequirement.category 设置为 free。如需了解详情,请参阅优惠属性

媒体订阅规范

媒体订阅对象用于描述内容所需的订阅的详细信息。 该对象是操作访问权限规范对象的属性 requiresSubscription

重要提示:如果 actionAccessibilityRequirement.categorysubscription,并且您的订阅产品包含多个软件包或层级,或者支持加购项,则必须提供此值。如果您的订阅是单层级的,并且可访问目录中的所有内容,请省略此属性。
属性 预期类型 说明
requiresSubscription.@type 文本 必需。始终设置为 MediaSubscription
requiresSubscription.@id 网址 必需。相应订阅的唯一 ID。如果内容可通过不同的订阅方案访问,则每个订阅方案都必须具有唯一的 ID。
requiresSubscription.name 文本 必需。订阅的名称。请注意以下几点:
  • 如果内容可通过不同的订阅方案访问,则此名称需要与用户身份验证系统中的名称一致。例如,如果用户可以根据名为“Package 1”的订阅访问内容,但身份验证系统使用名称“PKG1”,则使用“PKG1”。
requiresSubscription.sameAs 网址 可选。描述订阅的网页。
requiresSubscription.identifier 文本 如果 categorysubscriptioncommonTier 为 false,则为必需。相应订阅的唯一字符串,表示对媒体目录中一组内容的访问权限。
  • Google 建议您使用以下语法来表示 identifier:域名 + 英文冒号 (:) + 内容访问权限级别。示例:example.com:basic、example.com:premiumexample.com:sports
requiresSubscription.commonTier 布尔值 如果类别设置为订阅,则为必需。如需详细了解 commonTier,请参阅通用层要求文档。

优惠属性

优惠对象用于描述与内容关联的价格。该对象是操作访问权限规范对象的属性 (expectsAcceptanceOf)。它可用于以下两个目的:

  • 提供游戏的购买详细信息。对于此使用情形,actionAccessibilityRequirement.category 应设置为 purchase
  • 在游戏促销时提供游戏的购买详情。对于此使用情形,actionAccessibilityRequirement.category 应设置为 purchase,并且应为每个操作提供两项优惠 - 一项用于提供定价详情,另一项用于提供促销价详情。

属性 预期类型 说明
expectsAcceptanceOf.@type 文本 必需 - 始终设置为 Offer
expectsAcceptanceOf.name 文本 可选 - 优惠的名称。
expectsAcceptanceOf.priceSpecification PriceSpecification 必需 - 与游戏关联的价格详情。
expectsAcceptanceOf.priceSpecification.@type 文本 必需 - 始终设置为 UnitPriceSpecification
expectsAcceptanceOf.priceSpecification.price 编号 必需属性 - 内容的购买价格。价格必须是非零正值。对于价格为 0.00 的游戏,请将 actionAccessibilityRequirement.category 设置为“免费”。
expectsAcceptanceOf.priceSpecification.priceCurrency 文本 必需 - 价格所用币种,采用由 3 个字母表示的 ISO 4217 格式
expectsAcceptanceOf.priceSpecification.priceType PriceTypeEnumerationText 如果适用,则为必需属性 - 相应优惠中提供的价格类型。
actionAccessibilityRequirement.category 设置为 purchase 时,此属性为必需属性,并且只能接受 2 个值:
  • https://schema.org/ListPrice - 表示游戏的定价。
  • https://schema.org/SalePrice - 表示游戏的促销价(通常在有限的时间内有效)。

提供促销价格详细信息时,https://schema.org/ListPricehttps://schema.org/SalePrice 均为必需属性。
expectsAcceptanceOf.seller 组织 提供内容购买服务的组织。
expectsAcceptanceOf.seller.@type 文本 始终设置为 Organization
expectsAcceptanceOf.seller.name 文本 卖家的名称。
expectsAcceptanceOf.seller.sameAs 网址 用于标识卖家的网页的网址;例如,卖家的首页。

对于每种受支持的付费墙类型,以下示例提供了有关如何创建 actionAccessibilityObject 的深入了解:

免费(无需登录)

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

免费(无需登录),但仅限一小时试用

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "nologinrequired",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "eligibleDuration": 60
    }
  }
}

免费(需要登录)

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "free",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

一次性购买(含促销)

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": [
      {
        "@type": "Offer",
        "name": "Original Price",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": 7.99
          "priceCurrency": "USD"
          "priceType": "https://schema.org/ListPrice"
        },
        "seller": {
          "@type": "Organization",
          "name": "Example",
          "sameAs": "http://www.example.com/"
          }
        },
        {
          "@type": "Offer",
          "name": "Sale Price",
          "priceSpecification": {
            "@type": "UnitPriceSpecification",
            "price": 4.99
            "priceCurrency": "USD"
            "priceType": "https://schema.org/SalePrice"
          },
          "seller": {
          "@type": "Organization",
          "name": "Example",
          "sameAs": "http://www.example.com/"
        }
      }
    ]
  }
}

一次性购买

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "purchase",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    },
    "expectsAcceptanceOf": {
      "@type": "Offer",
      "price": 7.99,
      "priceCurrency": "USD",
      "seller": {
        "@type": "Organization",
        "name": "Example",
        "sameAs": "http://www.example.com/"
      }
    }
  }
}

单层级/多层级/加购项订阅

{
  "actionAccessibilityRequirement": {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2015-01-01T00:00Z",
    "availabilityEnds": "2015-12-31T00:00Z",
    "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
    },
    "eligibleRegion": {
      "@type": "Country",
      "name": "US"
    }
  }
}

分级订阅和加购项

下面介绍了分层订阅和加购项的应用方式:

  • 在单层级订阅模式中,服务提供商只有一个订阅层级。所有订阅者都可以访问相同的内容,无论他们订阅的是哪个套餐。
  • 在分层订阅模式中,服务提供商提供多个订阅层级,例如黄金级、白银级和青铜级。订阅了高层级方案的用户可以访问所有低层级方案的内容。不过,订阅较低等级方案的用户无法访问较高等级的内容。 内容示例 1
  • 在加购项订阅模式中,服务提供商允许用户扩展其权益,并向基本订阅添加内容。用户可以根据需要添加任意数量的内容。 内容示例 2

实体的总体模板

以下是实体的总体模板示例:

模板

{
  "@context": "http://schema.org",
  "@type": "DataFeed",
  "dateModified": "2018-07-20T00:44:51Z",
  "dataFeedElement": [
    {  },
    {
       "@context": ["http://schema.org", {"@language": "en"}],
       "@type": "VideoGame",
       "@id": "http://www.example.com/game007",
       "url": "http://www.example.com/game007",
       "name": "Games Bond 007",
       "exampleOfWork": [
        {  },
        {
           "@type": "VideoGame",
            "@id": "http://www.example.com/game007Stadia",
            "url": "http://www.example.com/game007Stadia",
            "name": "Games Bond 007",
            // Other properties
           "potentialAction": [
              {  },
              {
                  "@type": "PlayGameAction",
                  "target": [
                  {  },
                  {  }
                  ],
                 "actionAccessibilityRequirement": [
                 {  },
                 {  }
                 ]
              }
          ],
    ...
    }
  ]
}

结构化数据类型定义

本部分详细介绍了 VideoGame 实体类型的内容标记属性。如需让您的内容显示在搜索结果中,必须添加此处列出的必需属性。我们建议您还添加强烈建议的属性,以便添加与您的内容相关的更多信息,进而提供更优质的用户体验,并帮助我们通过 Google 的知识图谱进行实体协调。

VideoGame(工作)规范表

属性 预期类型 说明
@context 文本 必需。始终设置为 ["http://schema.org", {"@language": "xx"}]
  • 其中,Where xx 值表示 Feed 中字符串的语言。每个根实体上下文都需要将其 @language 设置为采用 BCP 47 格式的相应语言代码。例如,如果语言设置为西班牙语,则名称会被假定为西班牙语,即使字幕/配音语言为英语也是如此。
@type 文本 必需。始终设置为 VideoGame
@id 网址 必需。URI 格式的内容标识符;例如,https://example.com/1234abc. @id 必须满足以下要求:
  • 在您的整个目录中具有全局唯一性。
  • 静态。即使游戏的 url 属性发生变化,该 ID 也必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。
  • 以统一资源标识符 (URI) 的形式。
  • 用于 @id 值的网域必须归您的组织所有。

由于实体的 url 满足标识符的所有要求,因此我们建议您使用实体的 url 作为其 @id。如需了解详情,请参阅标识符部分。

url 网址 必需。内容的规范网址,Google 会使用该网址将 Feed 中的内容与 Google 数据库中的内容进行匹配。url 必须满足以下要求:
  • url 必须是全局唯一的。
  • url 必须包含 Google 可以抓取的有效规范网址。

对于播放的深层链接,请改为参阅 target 对象的 urlTemplate 属性。

name 文本 游戏的名称。
  • 使用数组列出不同语言的名称。如需了解详情,请参阅多个地区和语言示例。
  • 请注意,每个语言区域(语言-国家/地区对)仅支持一个名称。
description 文本 强烈推荐。游戏简介。不能超过 300 个字符。
genre 文本 所有相关流派的有序列表。例如:["Action", "Role playing"]
image ImageObject 强烈推荐。与游戏相关的图片。如需详细了解要随 image 一起添加的必需属性和可选属性,请参阅图片属性
applicationCategory 文本 可选。软件应用的类型。将值设置为 Game
exampleOfWork VideoGame 必需VideoGame的版本。此 VideoGame(版本)实体也包含深层链接详细信息。如需了解详情,请参阅 VideoGame(版本)规范表
playMode TextGamePlayMode 可选。指示相应游戏是多人游戏、合作游戏还是单人游戏。 游戏可以同时标记为多人游戏、合作游戏和单人游戏。接受以下值:
  • SINGLE_PLAYER
  • LOCAL_MULTI_PLAYER
  • ONLINE_MULTI_PLAYER
  • LOCAL_COOP
  • ONLINE_COOP

VideoGame(版本)规范表

属性 预期类型 说明
@type 文本 必需。始终设置为 VideoGame
@id 网址 必需。URI 格式的内容标识符;例如,https://example.com/1234abc.@id 必须满足以下要求:
  • 在您的整个目录中具有全局唯一性。
  • 静态。即使游戏的 url 属性发生变化,该 ID 也必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。
  • 以统一资源标识符 (URI) 的形式。
  • 用于 @id 值的网域必须归您的组织所有。

由于实体的 url 满足标识符的所有要求,因此我们建议您使用实体的 url 作为其 @id。如需了解详情,请参阅标识符部分。

url 网址 必需。内容的规范网址,Google 会使用该网址将 Feed 中的内容与 Google 数据库中的内容进行匹配。url 必须满足以下要求:
  • url 必须是全局唯一的。
  • url 必须包含 Google 可以抓取的有效规范网址。

对于播放的深层链接,请改为参阅 target 对象的 urlTemplate 属性。

name 文本 游戏的名称。
  • 使用数组列出不同语言的名称。如需了解详情,请参阅多个地区和语言示例。
  • 请注意,每个语言区域(语言-国家/地区对)仅支持一个名称。
description 文本 强烈推荐。游戏简介。不能超过 300 个字符。
genre 文本 所有相关流派的有序列表。例如:["Action", "Role playing"]
image ImageObject 强烈推荐。与游戏相关的图片。如需详细了解要随 image 一起添加的必需属性和可选属性,请参阅图片属性
applicationCategory 文本 可选。软件应用的类型。将值设置为 Game
playMode TextGamePlayMode 可选。指示相应游戏是多人游戏、合作游戏还是单人游戏。 游戏可以同时标记为多人游戏、合作游戏和单人游戏。接受以下值:
  • SINGLE_PLAYER
  • LOCAL_MULTI_PLAYER
  • ONLINE_MULTI_PLAYER
  • LOCAL_COOP
  • ONLINE_COOP
potentialAction PlayGameAction

必需(如果适用)。提供操作详细信息的操作标记对象

使用数组可在多个区域中指定不同的深层链接。如需了解详情,请参阅多个地区和语言示例。

gameEdition 文本

必需。相应游戏的版本。

例如,热门游戏《古墓丽影:暗影》有四个版本:“克劳馥版”“标准版”“数字豪华版”和“终极版”。

gamePlatform 文本 必需。用于玩视频游戏的平台或电子系统。
releasedEvent PublicationEvent 强烈建议PublicationEvent 用于指定发布商发布的原始内容(全球或本地)。
releasedEvent.@type 文本 必需。请务必始终将此属性设置为 PublicationEvent
releasedEvent.Location 国家/地区 必需。与此启动事件关联的地区。

请使用 ISO 3166 国家/地区代码。如需指明全球所有位置,请设置为 EARTH

releasedEvent.startDate 日期时间 推荐ExclusiveEvent 的必需参数。实体的发布开始日期。
releasedEvent.endDate 日期时间 可选。表示内容版权的到期日期。
releasedEvent.publishedBy OrganizationPerson 可选。发布相应实体的组织或个人。
contentRating 文本 对于成人游戏是必需的,在其他情况下强烈建议使用。总体内容分级。 如果内容分级以文本字符串的形式提供,则接受以下两种变体:
  • 分级机构,附加在分级前面,中间用空格隔开。例如,美国“娱乐软件分级委员会”的“成熟”分级需要描述为 Entertainment Software Rating Board Mature
  • RATING NOT KNOWN(不区分大小写),表示您不知道游戏的评级。
publisher OrganizationPerson 可选。发布相应实体的组织或个人。
contributor OrganizationPerson 可选。相应实体的次要贡献者。

图片规范表

Play Game 操作重用了媒体操作架构来捕获图片要求。如需了解详情,请参阅图片架构规范

以下是需要注意的其他一些要求。

宽高比和 contentAttributes 最低分辨率(以像素为单位)
16:9 标志性海报 3840x2160
2:3 比例的标志性海报 1000x1500
4:3 经典海报 800x600
1:1 的标志性海报 600x600
3:4 标志性海报 600x800
16:9、标志性背景 [首选] 或 sceneStill 3840x2160
2:3,标志性背景 [首选] 或 sceneStill 1000x1500
3:4,标志性背景 [首选] 或 sceneStill 600x800

格式要求

以下是您必须遵守的图片尺寸、质量等方面的格式要求:

  • 添加您能找到的最高分辨率的海报和sceneStills
  • 图片必须采用 JPG、PNG 或 WebP 格式。
  • 图片的网址必须可抓取且可编入索引
  • 文件大小不得超过 20 MB。
  • 我们更倾向于同时适用于 smallFormatlargeFormat 的图片。
  • 图片不得包含以下内容:

    • 图片模糊不清、像素化、旋转或画质不佳。
    • 未经许可或图库照片。
    • 裸露内容。
    • 非法内容。
  • 除了上表中列出的图片尺寸外,您还可以添加其他图片尺寸。

示例

以下部分包含不同场景的示例 Feed。

包含一个 VideoGame 实体的示例 Feed

以下是一个 VideoGame 实体的示例,表示“Space Wars Made Up Game”游戏。请注意,此实体需要封装在 JSON 文件的数据 Feed 信封中,才能对 Google 可见。

{
   "@context": ["http://schema.org", {"@language": "en"}],
   "@type":"DataFeed",
   "dateModified":"2021-07-20T00:44:51Z",
   "dataFeedElement":[
      {
         "@context": ["http://schema.org", {"@language": "en"}],
         "@id":"https://www.examplegame.com/VideoGame007",
         "@type":"VideoGame",
         "url":"https://www.examplegame.com/games/VideoGame007",
         "name":"Space Wars Made Up Game",
         "description":"Space Wars offers an immersive RPG experience coupled with realistic gameplay.",
         "genre":[
            "Role playing"
         ],
         "applicationCategory":"Game",
         "publisher":{
            "name":"Made Up Media",
            "@id":"https://www.examplegame.com/uniuqe-id-org",
            "@type":"Organization"
         },
         "contributor":[
            {
               "roleName":"developer",
               "name":"Alpha Labs Man Made Studio",
               "@id":"https://www.studionice.com/uniuqe-id-alpha",
               "@type":"Organization"
            }
         ],
         "playMode":[
           "SINGLE_PLAYER", "LOCAL_MULTI_PLAYER", "ONLINE_MULTI_PLAYER", "LOCAL_COOP", "ONLINE_COOP"
         ],
         "image":[
            {
               "@context":"http://schema.org",
               "@type":"ImageObject",
               "name":"keyart_1X1_3X",
               "contentUrl":"https://lh3.googleusercontent.com/ept4",
               "copyrightHolder":{
                  "@type":"Organization",
                  "name":"Studio Nice"
               },
               "additionalProperty":[
                  {
                     "@type":"PropertyValue",
                     "name":"contentAttributes",
                     "value":[
                         "SMALLFORMAT", "LARGEFORMAT", "SCENESTILL", "CENTERED", "NOTITLE", "NOLOGO"
                     ]
                  }
               ]
            }
         ],
         "exampleOfWork":{
            "@id":"https://www.examplegame.com/VideoGame007/version/v3",
            "name":"Space Wars Made Up Game",
            "description":"Space Wars offers an immersive RPG experience coupled with realistic gameplay.",
            "gameEdition":"Early Access",
            "url":"https://www.examplegame.com/VideoGame007/version/v3/stream",
            "contentRating":[
               "Entertainment Software Rating Board Mature",
               "Pan European Game Information 12",
               "Unterhaltungssoftware Selbstkontrolle Video Game Rating System USK 12"
            ],
            "applicationCategory":"Game",
            "releasedEvent":[
               {
                  "@type":"PublicationEvent",
                  "startDate":"2020-11-30",
                  "location":{
                     "@type":"Country",
                     "name":"US"
                  }
               }
            ],
            "potentialAction":{
               "@type":"PlayGameAction",
               "gameAvailabilityType":"DEMO",
               "target":[
                  {
                     "@type":"EntryPoint",
                     "urlTemplate":"https://www.examplegame.com/VideoGame007/play",
                     "actionPlatform":[
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.org/AndroidPlatform",
                        "http://schema.org/AndroidTVPlatform",
                        "http://schema.org/IOSPlatform"
                     ]
                  }
               ],
               "actionAccessibilityRequirement":[
                  {
                     "@type":"ActionAccessSpecification",
                     "availabilityStarts": "2015-01-01T00:00Z",
                     "availabilityEnds": "2015-12-31T00:00Z",
                     "eligibleRegion":{
                        "@type":"Country",
                        "name":[
                           "US"
                        ]
                     },
                     "category":"subscription",
                     "requiresSubscription":{
                        "@type":"MediaSubscription",
                        "name":"",
                        "@id":""
                     }
                  }
               ],
            },
            "gamePlatform": "Google Stadia",
            "publisher":{
               "name":"Made Up Media",
               "@id":"https://www.examplegame.com/uniuqe-id-org",
               "@type":"Organization"
            },
            "contributor":[
               {
                  "roleName":"developer",
                  "name":"Alpha Labs Man Made Studio",
                  "@id":"https://www.studionice.com/uniuqe-id-alpha",
                  "@type":"Organization"
               }
            ]
         }
      }
   ]
}

表示包含两个游戏角色的示例图片

插图:田野中的一位女士和一只鸟。
{
  "@context": [ "http://schema.org", { "@language": "en" } ],
  "@type": "VideoGame",
  "@id": "http://www.examplegame.com/videoGame1",
  "url": "http://www.examplegame.com/videoGame1",

  ...,

  "image": {
    "@context": "http://schema.org",
    "@type": "ImageObject",
    "name": "Mauren and Lord Wingflap!",
    "Keywords": "Mauren, Lord Wingflap the Destroyer",
    "contentUrl": "http://example.com/images/mountain-view.jpg",
    "character": [
      { "@type": "Person", "name": "Mauren" },
      { "@type": "Person", "name": "Lord Wingflap the Destoyer" }
    ],
    "copyrightHolder": {
      "@type": "Organization",
      "name": " ExampleOrganization Studios, Inc."
    },
    "inLanguage": "en-US",
    "audience": {
        "@type": "Audience",
        "geographicArea": [{"@type": "Country", "name": "US"},
                           {"@type": "Country", "name": "GB"}]
    },
    "additionalProperty": [
      {
        "@type": "PropertyValue",
        "name": "contentAttributes",
        "value": [ "iconic", "background", "rightCentered", "noTitle", "noLogo",
                   "noCopyright", "noMatte", "smallFormat", "largeFormat"]
      }
    ]
  }
}

处理多个区域和语言(国际化)

一个 VideoGame 实体可以支持多种地区和语言。

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "VideoGame",
  "@id": "http://www.example.com/my_favorite_game",
  "url": "http://www.example.com/my_favorite_game",
  "name": [
    {
      "@language": "en-us",
      "@value": "My Favorite Game"
    },
    {
      "@language": "es-mx",
      "@value": "mi juego favorito"
    },
    {
      "@language": "ja-jp",
      "@value": "私のfavourite game"
    }
  ],
  "description": [
    {
      "@language": "en-us",
      "@value": "Jenny meets Paul."
    },
    {
      "@language": "es-mx",
      "@value": "Jenny conoce a paul."
    },
    {
      "@language": "ja-jp",
      "@value": "PaulとJennyが会う。"
    }
  ],
  "potentialAction": [
    {
      "@type": "PlayGameAction",
      "gameAvailabilityType": "DEMO",
      "additionalType": "DownloadPlayAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "http://www.example.com/my_favorite_game?autoplay=true",
        "actionPlatform": [
          "http://schema.org/DesktopWebPlatform",
          "http://schema.org/MobileWebPlatform"
        ]
      }
      "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "purchase",
        "availabilityStarts": "2021-06-24T11:00:00Z",
        "availabilityEnds": "2041-06-24T11:00:00Z",
        "eligibleRegion": [
          {
            "@type": "Country",
            "name": "US"
          },
          {
            "@type": "Country",
            "name": "MX"
          }
        ]
      },
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "contentLanguage",
          "value": [
            "en",
            "es"
          ]
        }
      ],
      "expectsAcceptanceOf": {
        "@type": "Offer",
        "priceSpecification": [
          {
            "@type": "UnitPriceSpecification",
            "price": 19.99,
            "priceCurrency": "USD",
            "priceType": "https://schema.org/ListPrice"
          },
          {
            "@type": "UnitPriceSpecification",
            "price": 360.00,
            "priceCurrency": "MXN",
            "priceType": "https://schema.org/ListPrice"
          }
        ],
        "seller": {
          "@type": "Organization",
          "name": "My Favorite Game Publisher"
        }
      }
    },
    {
      "@type": "PlayGameAction",
      "gameAvailabilityType": "DEMO",
      "additionalType": "DownloadPlayAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "http://www.example.com/jp/my_favorite_game?autoplay=true",
        "actionPlatform": [
          "http://schema.org/DesktopWebPlatform",
          "http://schema.org/MobileWebPlatform"
        ]
      }
      "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "purchase",
        "availabilityStarts": "2021-07-24T11:00:00Z",
        "availabilityEnds": "2041-07-24T11:00:00Z",
        "eligibleRegion": [
          {
            "@type": "Country",
            "name": "JP"
          }
        ]
      },
      "additionalProperty": [
        {
          "@type": "PropertyValue",
          "name": "contentLanguage",
          "value": [
            "ja"
          ]
        }
      ],
      "expectsAcceptanceOf": {
        "@type": "Offer",
        "priceSpecification": [
          {
            "@type": "UnitPriceSpecification",
            "price": 2189,
            "priceCurrency": "JPY",
            "priceType": "https://schema.org/ListPrice"
          }
        ],
        "seller": {
          "@type": "Organization",
          "name": "My Favorite Game Publisher"
        }
      }
    }
  ],
  // Other properties...
}