Podcast Schema.org 规范

本部分详细介绍了播客的内容标记属性。

PodcastSeries 规范

PodcastSeries 是播客系列的表示法,也称为“节目”。

属性 优先级 类型 说明
@context 必需 文字 schema.org 上下文。应始终设置为 [http://schema.googleapis.com,{@language}:xx}],其中 xx 应采用语言代码。这样可设置实体中文本值使用的默认语言。
@type 必需 文字 始终设置为 PodcastSeries
@id 必需 文字 播客系列的全局唯一 ID,采用 URI 格式。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。用于 @id 值的网域必须归您的组织所有。
url 必需 文字 您网站上介绍或说明播客系列的规范网址。该名称必须是全局唯一的。此链接可帮助您准确协调 Feed 中的内容与 Google 数据库中的内容。如需播放,请使用本文档的 ListenAction 部分中详述的 target.urlTemplate
name 必需 文字

播客系列的名称。每种语言只能包含一个名称。

使用数组标记多种语言的说明。请参阅多区域和语言示例

description 必需 文字

该播客系列的简介。

使用数组标记多种语言的说明。请参阅多区域和语言示例

alternativeHeadline 可选 文字 播客系列的字幕。
author 必需

个人或组织

重复

制作或提交节目的个人或团体。通常是指主机。有关示例和详细信息,请参阅组织、个人(作者/发布商)
publisher 可选

个人或组织

重复

负责发布节目的原始群组或网络。通常是指一个负责发布/制作多个播客的组织。如需查看示例和详细信息,请参阅组织、个人(作者/发布商)。为消除歧义,强烈建议提供此字段,并在适用情况下提供此字段。
actor 可选

个人或组织

重复

播客演员。如需查看示例和详细信息,请参阅执行者(主机/客户机)部分。
logo 可选

ImageObject

重复

系列的徽标图片。以 ImageObject 的形式提供完整说明。尽可能提供最高的分辨率。首选 JPEG 或 PNG 文件。如需了解详情和示例,请参阅 ImageObject(徽标)部分。
image 必需

ImageObject

重复

此系列的封面图片。以 ImageObject 形式提供完整的说明。尽可能提供最高的分辨率。首选 JPEG 或 PNG。如需了解详细信息和示例,请参阅 ImageObject(徽标)部分。
isFamilyFriendly 必需 布尔值 指明此内容是否适合全家观看(也就是说,如果此内容适合所有家庭成员,包括儿童)。Google 产品可能会使用 isFamilyFriendly 来帮助确定要播放的内容。该值必须为 truefalse
inLanguage 必需 文字 播客内容的语言(ISO 639-1 格式)。此值可用于执行以特定语言请求内容的用户查询。
genre 必需

文字

重复

播客系列的类别或类型。例如,您可以关注标准播客类别
endDate 可选 日期 播客剧集结束剧集的发布日期。请仅在系列结束后添加此字段。
rssFeed 必需 网址 播客系列的 RSS Feed 的网址。
potentialAction 必需 ListenAction 要触发用户收听内容的 Action。如需了解详情,请参阅 ListenAction
popularityScore 可选 PopularityScoreSpecification 热门程度得分,用于确定存在多个候选字词时服务优先级。如需了解详情和查看示例,请参阅 PopularityScoreSpecification (popularityScore) 部分。
keywords 可选

文字

重复

与该播客系列相关联的关键字列表。这些关键字可用于扩展可触发此播客系列的用户查询。例如,邀请对象姓名、涵盖的主题等。
sameAs 可选 网址 第三方(不在您的网域中)参考网页的网址,其中明确指出了商品的身份。如果存在多个类似的系列,此页面将用于消除歧义。例如,维基百科网页或播客系列的首页。强烈建议使用此字段来消除系列中的歧义。
releasedEvent 可选 PublicationEvent 或更具体的子类型 - FeatureEventExclusiveEvent 标记播客系列的发布或发行的活动。发布活动可能会注明发布商首次发布某个播客,而更专门的类型可用于表明该版本的独家性或特色。有关详情和示例,请参阅 PublicationEvent, FeatureEvent, ExclusiveEvent (releasedEvent) 部分。请注意,将连续剧标记为独家或精选意味着节目的所有剧集都是独家或精选剧集。
countryOfOrigin 可选 国家/地区 制作公司的主要办公室或播客播客负责人所在的国家/地区。

PodcastEpisode 规范

PodcastEpisodePodcastSeries 中分集的 schema.org 表示法。

属性 优先级 类型 说明
@context 必需 文字 schema.org 上下文。应始终设置为 [http://schema.googleapis.com,{@language:xx}],其中 xx 是语言代码。此属性用于设置 Feed 中的文本值的默认字符语言。
@type 必需 文字 始终设置为 PodcastEpisode
@id 必需 文字 播客分集的全局唯一 ID,采用 URI 格式。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。您的组织必须有用于 @id 值的网域。
url 必需 文字 您的网站上介绍或描述该播客分集的规范网址。此值必须是全局唯一的。此链接用于帮助您协调 Feed 中的内容与 Google 数据库中的内容。播放时,将使用本文档的 ListenAction 部分中详细介绍的 target.urlTemplate
name 必需 文字

播客分集的名称。

每种语言只能有一个名称。使用数组标记多种语言的说明。请参阅多个区域和多种语言示例

description 必需 文字 播客分集的说明。
alternativeHeadline 必需 文字 播客分集的字幕。
author 必需

个人或组织

重复

制作或提交剧集的个人或团体。此值通常是指主机。如果作者与节目相同,您可以重复使用 PodcastSeries 实体中的信息。如需查看示例和详细信息,请参阅组织、个人(作者/发布商)
publisher 必需

个人或组织

重复

负责发布节目的原始群组或网络。通常是指负责发布或制作多个播客的组织。有关示例和详细信息,请参阅组织、个人(作者/发布商)。此字段是为消除歧义而强烈建议的字段,我们建议您尽可能定义此字段。
actor 必需

个人或组织

重复

播客演员。如需查看示例和详细信息,请参阅执行者(主机/客户机)部分。
datePublished 必需 日期时间 播客分集发布日期的日期时间。此值用于对分集序列和消除歧义进行排序。
episodeNumber 必需 整数 剧集编号。
partOfSeries 必需 播客系列 此播客分集所在的 PodcastSeries。如需了解详情和查看示例,请参阅 PodcastSeries(partOfSeries)
partOfSeason 可选 播客季 对于多季连续剧,此属性提供剧季信息以及剧季编号和剧季名称。如需了解详情和查看示例,请参阅 PodcastSeason(partOfSeason)
timeRequired 必需 时长 分集的时长,采用 ISO 8601 时长格式。
image 可选

ImageObject

重复

此系列的封面图片。这必须是完全描述的 ImageObject。尽可能提供最高的分辨率。首选 JPEG 或 PNG 文件。如需了解详细信息和示例,请参阅 ImageObject(徽标)部分。
isFamilyFriendly 必需 布尔值 指明此内容是否适合全家观看(也就是说,此内容是否适合所有家庭成员,包括儿童)。Google 产品可能会使用 isFamilyFriendly 来确定要播放的内容。值必须为 truefalse
inLanguage 必需 文字 ISO 639-1 格式的播客分集内容语言。此值可用于执行以特定语言请求内容的用户查询。如果内容以多种语言显示,请仅列出一种主要语言。
genre 必需

文字

重复

播客系列的类别或类型。例如,您可以关注标准播客类别
associatedMedia 可选 AudioObject 播客分集的音频文件。如需了解详情和示例,请参阅 AudioObject(relatedMedia)
potentialAction 必需 ListenAction 要触发用户收听内容的 Action。如需了解详情,请参阅 ListenAction 部分。
popularityScore 可选 PopularityScoreSpecification 有多个候选版本时,用于确定投放优先级的热门程度得分。有关详情和示例,请参阅 PopularityScoreSpecification 部分。
keywords 可选

文字

重复

与播客系列相关联的关键字列表。这些关键字可用于扩展可触发此播客分集的用户查询。例如 newssportshistory
identifier 必需

PropertyValue

重复

对于 PodcastEpisode,请使用此属性提供 GUID。GUID 需要是一个可以在全球范围内唯一标识播客分集的 ID。它与分集的 @id 字段不同。

有关示例,请参阅 PropertyValue (identifier) 部分。

sameAs 可选 网址 第三方(不在您的网域中)参考网页的网址,其中明确指出了商品的身份。当存在多个类似系列时,Google 会使用该网页来消除歧义。例如,维基百科网页或播客分集的首页。请注意,此处不得提供系列级别的参考页面。我们强烈建议使用此字段来消除剧集的歧义。
releasedEvent 可选 PublicationEvent 或更具体的子类型 - SpecialEventExclusiveEvent 标记播客分集发布或发布的事件。发布事件可能会注明发行方对播客分集的初始版本,更具体的子类型可以表示版本的独家性或特征。如需了解详情和示例,请参阅 PublicationEvent, HighlightEvent, ExclusiveEvent (releasedEvent) 部分。请注意,在上方将系列标记为独家或精选意味着该节目的所有剧集都是独家或精选剧集。我们建议您在最精细的级别标记此类属性。
countryOfOrigin 可选 国家/地区 制作公司的主要办公室或负责播客的人员所在的国家/地区。

PodcastSeries (partOfSeries)

使用 partOfSeriesPodcastEpisode 与其父级 PodcastSeries 之间建立关系。由于 PodcastSeries 的完整详细信息在单独的 PodcastSeries 实体中描述,因此您无需在 partOfSeries 中提供完整详细信息。您只需提供以下属性:

属性 优先级 类型 说明
@type 必需 文字 始终设置为 PodcastSeries
@id 必需 网址 URI 格式的系列的全局唯一 ID。该 ID 必须与 Feed 中完整 PodcastSeries 实体的 ID 匹配。
name 必需 文字 播客系列的名称。

示例 1

"partOfSeries": {
  "@type": "PodcastSeries",
  "@id": "http://www.tjpodcast.org/series?id=1",
  "name": "Radiolab"
},

PodcastSeason (partOfSeason)

PodcastSeason 表示 PodcastEpisode 的剧季信息,最重要的是剧季编号。仅当播客系列包含多个剧季时,您才需要使用此属性。

属性 优先级 类型 说明
@type 必需 文字 始终设置为 PodcastSeason
@id 必需 网址 URI 格式的剧季的全局唯一 ID。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。
seasonNumber 必需 整数 播客系列的剧季编号。
name 可选 文字 播客剧季的名称。

示例 1

"partOfSeason": {
  "@type": "PodcastSeason",
  "@id": "http://www.tjpodcast.org/seriesx/season?id=1",
  "seasonNumber": 1,
  "name": "Radiolab Season 1"
},

组织、个人(作者或出版商)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 OrganizationPerson
@id 必需 网址 组织或个人的全局唯一 ID,采用 URI 格式。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。
name 必需 文字 组织或个人的姓名。
sameAs 可选 网址 第三方(不在您的网域中)参考网页的网址,其中明确指出了商品的身份。当存在多个类似系列时,Google 会使用该网页来消除歧义。相关示例可以是组织的维基百科页面,或组织的官方网站。

示例 1

"author": {
  "@type": "Organization",
  "@id": "https://www.tjpodcast.org/organization/wnyc",
  "sameAs": "https://en.wikipedia.org/wiki/WNYC",
  "name": "WNYC"
},

示例 2

"author": {
  "@type": "Person",
  "@id": "https://www.tjpodcast.org/person/jad_abumrad",
  "sameAs": "https://en.wikipedia.org/wiki/Jad_Abumrad",
  "name": "Jad Abumrad"
},

执行者(主持人或嘉宾)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 OrganizationPerson
@id 必需 网址 组织或个人的全局唯一 ID,采用 URI 格式。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。
name 必需 文字 组织或个人的名称。
roleName 必需 文字 `Host` 或 `Guest`。
sameAs 可选 网址 第三方(不在您的网域中)参考网页的网址,其中明确指出了商品的身份。当存在多个类似系列时,Google 会使用该网页来消除歧义。例如,某组织的维基百科页面,或该组织的官方网站。

示例 1

"actor":[{
  "@type": "PerformanceRole",
  "actor": {
    "@type": "Person",
    "@id": "https://www.tjpodcast.org/person/Roman",
    "name": {
      "@language":"en",
      "@value": "Roman Mars"
    },
    "roleName": "Host"
    "sameAs": "https://en.wikipedia.org/wiki/Roman",
  },
  "actor": {
    "@type": "Person",
    "@id": "https://www.tjpodcast.org/person/guest",
    "name":{
      "@language":"en",
      "@value": "Kurt Kohlstedt"
    },
    "roleName": "Guest"
   },
}]

ImageObject(徽标或图片)

ImageObject 用于提供内容的徽标或图片。

属性 优先级 类型 说明
@type 必需 文字 始终设置为 ImageObject
height 可选 整数 图片的高度,以像素为单位。
width 可选 整数 此图片的宽度,以像素为单位。
contentUrl 必需 网址 图片所在的位置。
regionsAllowed 可选

国家/地区

重复

允许播放媒体内容的国家/地区:

  • 如果未指定,则假定所有语言区域都允许图片。
  • 如需为每个区域提交不同的图片,请添加多个 ImageObject 属性,每个属性都有自己的一组国家/地区以及相应的图片网址。

国家/地区 (image.regionsAllowed)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 Country.
name 必需 文字 ISO 3166-1 alpha-2 国家/地区代码。例如 GBUS

示例 1

"logo": {
  "@type": "ImageObject",
  "height": "100",
  "width": "800",
  "contentUrl": "http://www.foo.com/img/67890.jpg",
},

示例 2

"logo": [
  {
    "@type": "ImageObject",
    "height": "100",
    "width": "800",
    "contentUrl": "http://www.foo.com/img/67890.jpg",
    "regionsAllowed": [
      {
        "@type": "Country",
        "name": "US"
      },
      {
        "@type": "Country",
        "name": "GB"
      }
    ]
  },
  {
    "@type": "ImageObject",
    "height": "100",
    "width": "800",
    "contentUrl": "http://www.foo.com/img/12345.jpg",
    "regionsAllowed": [
      {
        "@type": "Country",
        "name": "IN"
      },
      {
        "@type": "Country",
        "name": "PK"
      }
    ]
  },
],

PropertyValue (identifier)

如果您有内容的 GUID,可以向这些 ID 提供 identifier 字段,以提高 Google 对内容的对帐的准确性。请注意,PodcastEpisode 需要 GUID。此字段必须与分集的 @id 字段(而非您的网域内)不同,并且必须在全球范围内代表某个来源的分集,而且随着时间的推移,该分集在各个来源中必须是唯一的。

属性 优先级 类型 说明
@type 必需 文字 始终设置为“PropertyValue”。
propertyID 必需 文字 始终设置为 GUID
value 必需 文字 系列或分集的 GUID。

示例 1

"identifier": {
  "@type": "PropertyValue",
  "propertyID": "GUID",
  "value": "50204fe4-bc68-4b34-aae6-e73c700cc5ca"
},

流行度得分规范 (popularityScore)

如果用户查询的条件与 Feed 中的多个实体匹配,那么 popularityScore 可以帮助用户找到最合适的内容。此值可用时,系统将向用户显示具有用户所在地区的热门程度分数最高的内容。不含此字段的所有内容默认采用热门程度得分 0。系统会在整个目录范围内进行得分比较,因此请确保所有 Feed 中的评分比例一致。

属性 优先级 类型 说明
@type 必需 文字 始终设置为 PopularityScoreSpecification
value 必需 数字 一个正数,用于与目录中其他实体的服务优先级进行比较。数值越大,表示热门程度越高。
eligibleRegion 可选

国家或地区

重复

该热门程度得分应用到的地区或地区列表。

如果全球适用热门程度得分,请使用 earth 作为文本值。

如需列出具体的区域,请使用“国家/地区”类型。

如果您省略此字段,eligibleRegion 默认为 earth

国家/地区 (popularityScore.eligibleRegion)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 Country
name 必需 文字 ISO 3166-1 alpha-2 国家/地区代码。例如 GBUS

示例 1

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 4.3,
  "eligibleRegion": "Earth"
},

示例 2

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 2,
  "eligibleRegion": {
    "@type": "Country",
    "name": "US"
  }
},

示例 3

"popularityScore": {
  "@type": "PopularityScoreSpecification",
  "value": 101,
  "eligibleRegion": [
    {
      "@type": "Country",
      "name": "US"
    },
    {
      "@type": "Country",
      "name": "GB"
    }
  ]
},

PublicationEvent、HighlightEvent、ExclusiveEvent (releasedEvent)

发布活动
此对象可表示节目或分集的发布日期和发布地点(也称为系列或分集的“发布日期”)。 此外,publishedBy 字段表示播客系列或分集的发布或分发实体。
独占事件
使用此对象表示提供方对播客拥有独家发行权。独占性可以特定于区域并具有时限性,并且必须包含指向内容的专属提供商的组织字段。
精选活动
使用此对象表示提供方向消费者推介播客(例如,作为“原创内容”)。
原创内容不同于独家内容
“原创内容(精选)”一词通常是指特定实体的专有权利,这会过度使用该字词。因此,预期含义必须分为上述两类。原始实体也可能具有独占性,在这种情况下,releasedEvent 可以接受包含同一实体上这两种事件类型的数组。

请注意,虽然独家性或特征在提供商的目录中可能具有类似的含义,但 PublicationEvent 通常更适用于实现实体消除歧义,并提供更多关于相同主题的元数据,例如系列或剧集的发布日期。

属性 优先级 类型 说明
@type 必需 文字 始终设置为 PublicationEventExclusiveEventFeaturedEvent 之一。
location 必需 国家/地区 发布事件的区域。您还可以使用它来表示实体的独占限制和分发限制。请使用相应国家/地区的 ISO 3166 代码。如果您需要应用全局语义,请设置为 EARTH。将 location 明确设置为 EARTH,以防因语言区域而异的限制不适用。
startDate 建议(仅适用于 ExclusiveEvent) 日期或日期时间 实体发布日期。对于 PublicationEvent,这表示此实体的初始发布日期。对于 ExclusiveEventFeaturedEvent,这表示实体的唯一性或特征的开始日期。
endDate 建议(仅适用于 ExclusiveEvent) 日期或日期时间 实体出版的结束日期。对于 PublicationEvent,这表示此实体的最终发布日期。对于 ExclusiveEventFeaturedEvent,表示实体的唯一性或特征的结束日期。
publishedBy 必需 组织或个人 OrganizationPerson 实体,用于发布此实体并应用于此发布事件。请使用组织(作者/出版商)部分中所述的同一架构

示例 1

"releasedEvent": [ {
  "@type": "PublicationEvent",
  "location": "EARTH",
  "startDate": "2016-04-21T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/wnyc",
    "sameAs": "https://en.wikipedia.org/wiki/WNYC",
    "name": "WNYC"
  },
 }, {
  "@type": "FeaturedEvent",
  "location": "US",
  "startDate": "2020-04-18T20:00",
  "endDate": "2020-04-21T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 },
]

示例 2

"releasedEvent": [ {
  "@type": "FeaturedEvent",
  "location": "US",
  "startDate": "2020-04-18T20:00",
  "endDate": "2020-05-21T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 }, {
  "@type": "ExclusiveEvent",
  "location": "US",
  "startDate": "2020-04-18T20:00",
  "endDate": "2020-04-24T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 }, {
  "@type": "ExclusiveEvent",
  "location": "CA",
  "startDate": "2020-04-21T20:00",
  "endDate": "2020-04-24T20:00",
  "publishedBy": {
    "@type": "Organization",
    "@id": "https://www.tjpodcast.org/organization/tjpodcast",
    "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
    "name": "TJPodcast",
  },
 }
]

AudioObject (relatedMedia)

AudioObject 用于为播客分集提供原始媒体文件。

属性 优先级 类型 说明
@type 必需 文字 始终设置为 AudioObject
contentUrl 必需 网址 媒体文件的网址。
contentSize 必需 整数 媒体文件的大小(以字节为单位)。
encodingFormat 必需 文字 媒体文件的 IANA 媒体类型。例如 audio/mpeg
duration 必需 时长 媒体的长度,采用 ISO 8601 时长格式。
transcript 可选 文字 剧集的转录内容。
bitrate 可选 文字 媒体文件的比特率。
name 可选 文字 媒体文件的文件名。

示例 1

"associatedMedia": {
    "@type": "AudioObject",
    "contentUrl": "https://www.tjpodcast.org/media_files/mp3/radiolab_podcast19.mp3",
    "duration": "PT5M32S",
    "contentSize": "53616000",
    "encodingFormat": "audio/mpeg",
    "name": "radiolab_podcast19.mp3",
    "transcript": "Transcript of the episode",
    "bitrate": "64Kbps"
},

ListenAction (potentialAction)

ListenAction 实体定义了播放的深层链接以及用户访问相应内容的条件(例如地理位置、时间、登录或订阅状态)。

属性 优先级 类型 说明
@type 必需 文字 始终设置为 ListenAction
target 必需

EntryPoint

重复

包含受支持平台信息的深层链接规范。您可以使用多个 EntryPoint 字段为不同的平台集定义不同的深层链接。
actionAccessibilityRequirement 必需

ActionAccessSpecification

重复

对用户访问此实体应满足的要求所做的定义。如果存在多个 ActionAccessSpecification,则符合任何规范条件的用户都可以访问内容。

入口点 (potentialAction.target)

table class="Fix"> 属性 优先级 类型 说明 @type 必需 文本 始终设置为 EntryPointurlTemplate 必需 网址,用于启动内容播放。 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/GoogleAudioCast"
  • "http://schema.googleapis.com/GoogleVideoCast"

ActionAccessSpecification (potentialAction.actionAccessibilityRequirement)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 ActionAccessSpecification
category 必需 文字

访问权限类型。此值必须是以下值之一:

  • nologinrequired:用户无需购买或登录即可访问内容。
  • free:此操作无需用户购买或付费订阅即可使用。此操作需要用户登录。
  • subscription:操作包含您的服务的付费订阅。
availabilityStarts 可选 日期时间 可用时段的开始时间。您可以使用此属性来控制向用户显示此内容的确切时间。
availabilityEnds 可选 日期时间 可用时段的结束时间。您可以使用此属性来控制此内容停止向用户展示的确切时间。
eligibleRegion 必需

国家/地区

重复

可享受此优惠的国家/地区。您可以使用此属性来控制必须发布此内容的国家或地区。
requiresSubscription 必需(如果适用) 媒体订阅 访问此内容所需的订阅包。如果您的服务提供了多个订阅包,则必须填写此字段。 如果您的服务是免费的,或只有一个订阅层级,您可以跳过此字段。

国家/地区 (potentialAction.actionAccessibilityRequirement.eligibleRegion)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 Country
name 必需 文字 ISO 3166-1 alpha 2 国家/地区代码。

MediaSubscription (potentialAction.actionAccessibilityRequirement.RequiresSubscription)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 MediaSubscription
@id 必需 网址 URI 格式的订阅包的全局唯一 ID。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。
name 必需 文字 订阅套餐的名称。例如 PremiumBasic
expectsAcceptanceOf 建议 优惠 与购买媒体订阅相关的优惠。您可以使用此值来表示订阅的价格。

优惠 (potentialAction.actionAccessibilityRequirement.RequiresSubscription.expectsAcceptanceOf)

属性 优先级 类型 说明
@type 必需 文字 始终设置为 Offer
price 必需 数字 订阅的价格。
priceCurrency 必需 文字 价格所用的币种(采用由三个字母表示的 ISO 4217 格式)。
seller 建议 组织 提供操作订阅或购买操作的组织。使用组织(作者/发布商)部分中所述的架构。

示例 1

"potentialAction": {
    "@type": "ListenAction",
    "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://www.tjpodcast.org/?streamStationId=170",
        "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/GoogleAudioCast",
            "http://schema.googleapis.com/GoogleVideoCast"
        ]
    },
    "actionAccessibilityRequirement": {
        "@type": "ActionAccessSpecification",
        "category": "nologinrequired",
        "availabilityStarts": "2018-04-01T11:01:00-04:00",
        "availabilityEnds": "2018-06-30T23:59:00-04:00",
        "eligibleRegion": {
            "@type": "Country",
            "name": "US"
        }
    }
},

示例 2

"potentialAction": {
    "@type": "ListenAction",
    "target": [
        {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjpodcast.org/?streamStationId=170",
            "actionPlatform": [
                "http://schema.org/DesktopWebPlatform",
                "http://schema.org/MobileWebPlatform",
                "http://schema.org/AndroidPlatform",
                "http://schema.org/AndroidTVPlatform",
                "http://schema.org/IOSPlatform"
            ]
        },
        {
            "@type": "EntryPoint",
            "urlTemplate": "https://www.tjpodcast.org/castlink?streamStationId=170",
            "actionPlatform": [
                "http://schema.googleapis.com/GoogleAudioCast",
                "http://schema.googleapis.com/GoogleVideoCast"
            ]
        }
    ],
    "actionAccessibilityRequirement": [
        {
            "@type": "ActionAccessSpecification",
            "category": "nologinrequired",
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": [
                {
                    "@type": "Country",
                    "name": "IN"
                },
                {
                    "@type": "Country",
                    "name": "GB"
                }
            ]
        },
        {
            "@type": "ActionAccessSpecification",
            "category": "Subscription",
            "requiresSubscription": {
                "@type": "MediaSubscription",
                "@id": "http://www.example.com/packages/basic-pack",
                "name": "Basic Pack",
                "expectsAcceptanceOf": {
                    "@type": "Offer",
                    "price": 8.99,
                    "priceCurrency": "USD"
                }
            },
            "availabilityStarts": "2018-04-01T11:01:00-04:00",
            "availabilityEnds": "2018-06-30T23:59:00-04:00",
            "eligibleRegion": {
                "@type": "Country",
                "name": "US"
            }
        }
    ]
},

附录

完整示例

{
    "@context": "http://schema.org",
    "@type": "DataFeed",
    "dateModified": "2018-09-10T13:58:26.892Z",
    "dataFeedElement": [
        {
            "@context": [
                "http://schema.googleapis.com",
                {
                    "@language": "en"
                }
            ],
            "@type": "PodcastSeries",
            "@id": "http://www.tjpodcast.org/series?id=2",
            "url": "http://www.tjpodcast.org/series?id=2",
            "name": "Radiolab",
            "description": "A two-time Peabody Award-winner...",
            "alternativeHeadline": "Radiolab - Powered by WNYC",
            "sameAs": "https://en.wikipedia.org/wiki/Radiolab",
            "image": {
                "@type": "ImageObject",
                "height": "100",
                "width": "800",
                "contentUrl": "http://www.tjpodcast.org/img/2.jpg"
            },
            "logo": {
                "@type": "ImageObject",
                "height": "100",
                "width": "800",
                "contentUrl": "http://www.tjpodcast.org/logo/2/1.jpg"
            },
            "keywords": [
                "Science",
                "Technology",
                "Philosophy",
                "Education"
            ],
            "author": [
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/jad_abumrad",
                    "name": "Jad Abumrad",
                    "sameAs": "https://en.wikipedia.org/wiki/Jad_Abumrad"
                },
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/robert_krulwich",
                    "name": "Robert Krulwich",
                    "sameAs": "https://en.wikipedia.org/wiki/Robert_Krulwich"
                }
            ],
            "publisher": {
                "@type": "Organization",
                "name": "WNYC",
                "@id": "https://www.tjpodcast.org/network/wnyc_studios",
                "sameAs": "https://en.wikipedia.org/wiki/WNYC_Studios"
            },
            "isFamilyFriendly": "True",
            "inLanguage": "en",
            "genre": [
                "Science & Medicine",
                "Natural Sciences"
            ],
            "endDate": "2017-12-22T08:59:00",
            "rssFeed": "http://feeds.wnyc.org/radiolab",
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjpodcast.org/?streamSeriesId=2",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2019-12-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "FR"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 4.2
            }
        },
        {
            "@context": [
                "http://schema.googleapis.com",
                {
                    "@language": "en"
                }
            ],
            "@type": "PodcastEpisode",
            "@id": "http://www.tjpodcast.org/episode?id=1",
            "url": "http://www.tjpodcast.org/episode?id=1",
            "name": "A Clockwork Miracle",
            "description": "As legend goes, in 1562, King Philip II...",
            "sameAs": "https://www.wnycstudios.org/story/radiolab-clockwork-miracle",
            "image": {
                "@type": "ImageObject",
                "height": "100",
                "width": "800",
                "contentUrl": "http://www.tjpodcast.org/img/2/1.jpg"
            },
            "keywords": [
                "Education",
                "Philosophy",
                "Science",
            ],
            "partOfSeries": {
                "@type": "PodcastSeries",
                "@id": "http://www.tjpodcast.org/series?id=2",
                "name": "Radiolab",
                "sameAs": "https://en.wikipedia.org/wiki/Radiolab",
            },
            "episodeNumber": 101,
            "inLanguage": "en",
            "author": [
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/jad_abumrad",
                    "name": "Jad Abumrad",
                    "sameAs": "https://en.wikipedia.org/wiki/Jad_Abumrad"
                },
                {
                    "@type": "Person",
                    "@id": "https://www.tjpodcast.org/author/robert_krulwich",
                    "name": "Robert Krulwich",
                    "sameAs": "https://en.wikipedia.org/wiki/Robert_Krulwich"
                }
            ],
            "publisher": {
                "@type": "Organization",
                "name": "WNYC",
                "@id": "https://www.tjpodcast.org/network/wnyc_studios",
                "sameAs": "https://en.wikipedia.org/wiki/WNYC_Studios"
            },
            "isFamilyFriendly": "True",
            "genre": [
                "Science",
                "Philosophy",
                "Fiction"
            ],
            "datePublished": "2018-12-27T23:23:00Z",
            "timeRequired": "PT22M",
            "associatedMedia": {
                "@type": "AudioObject",
                "contentUrl": "https://www.tjpodcast.org/media_files/mp3/radiolab_podcast19.mp3",
                "duration": "PT21M45S",
                "contentSize": "53616000",
                "encodingFormat": "audio/mpeg",
                "transcript": "Transcript of the episode",
                "bitrate": "64Kbps"
            },
            "potentialAction": {
                "@type": "ListenAction",
                "target": {
                    "@type": "EntryPoint",
                    "urlTemplate": "https://www.tjpodcast.org/?streamEpisodeId=1",
                    "actionPlatform": [
                        "http://schema.org/DesktopWebPlatform",
                        "http://schema.org/MobileWebPlatform",
                        "http://schema.googleapis.com/GoogleAudioCast",
                        "http://schema.googleapis.com/GoogleVideoCast"
                    ]
                },
                "actionAccessibilityRequirement": {
                    "@type": "ActionAccessSpecification",
                    "category": "nologinrequired",
                    "availabilityStarts": "2018-04-01T11:01:00-04:00",
                    "availabilityEnds": "2019-12-30T23:59:00-04:00",
                    "eligibleRegion": {
                        "@type": "Country",
                        "name": "FR"
                    }
                }
            },
            "popularityScore": {
                "@type": "PopularityScoreSpecification",
                "value": 3.8
            },
            "identifier": [
                {
                    "@type": "PropertyValue",
                    "propertyID": "GUID",
                    "value": "53ff386e-e768-40b5-8854-1b7415826ded"
                }
            ]
        }
    ],
    "actor": [
        {
            "@type": "PerformanceRole",
            "actor": {
                "@type": "Person",
                "@id": "https://www.tjpodcast.org/person/Roman",
                "name": {
                    "@language": "en",
                    "@value": "Roman Mars"
                },
                "roleName": "Host",
                "sameAs": "https://en.wikipedia.org/wiki/Roman"
            },
            "actor": {
                "@type": "Person",
                "@id": "https://www.tjpodcast.org/person/guest",
                "name": {
                    "@language": "en",
                    "@value": "Kurt Kohlstedt"
                },
                "roleName": "Guest"
            }
        }
    ],
    "releasedEvent": [
        {
            "@type": "FeaturedEvent",
            "location": "US",
            "startDate": "2020-04-18T20:00",
            "endDate": "2020-05-21T20:00",
            "publishedBy": {
                "@type": "Organization",
                "@id": "https://www.tjpodcast.org/organization/tjpodcast",
                "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
                "name": "TJPodcast"
            }
        },
        {
            "@type": "ExclusiveEvent",
            "location": "US",
            "startDate": "2020-04-18T20:00",
            "endDate": "2020-04-24T20:00",
            "publishedBy": {
                "@type": "Organization",
                "@id": "https://www.tjpodcast.org/organization/tjpodcast",
                "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
                "name": "TJPodcast"
            }
        },
        {
            "@type": "ExclusiveEvent",
            "location": "CA",
            "startDate": "2020-04-21T20:00",
            "endDate": "2020-04-24T20:00",
            "publishedBy": {
                "@type": "Organization",
                "@id": "https://www.tjpodcast.org/organization/tjpodcast",
                "sameAs": "https://en.wikipedia.org/wiki/tjpodcast",
                "name": "TJPodcast"
            }
        }
    ]
}