播客 Schema.org 规范

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

PodcastSeries 规范

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

属性 优先级 类型 说明
@context 必需 文本 Schema.org 上下文。始终设置为 [http://schema.googleapis.com,{@language}:xx}],其中 xx 应位于语言代码中。这会设置实体中文本值所用的默认语言。
@type 必需 文本 始终设置为 PodcastSeries
@id 必需 文本 播客系列的全局唯一 ID,采用 URI 格式。该 ID 必须保持稳定,不应随着时间的推移而发生变化。它被视为不透明字符串,且不必是有效链接。用于 @id 值的网域必须归贵组织所有。
url 必需 文本 您网站上介绍或说明播客系列的规范网址。此 ID 必须是全局唯一的。此链接有助于准确匹配 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 用户收听内容时要触发的操作。如需了解详情,请参阅 ListenAction
popularityScore 可选 PopularityScoreSpecification 一个受欢迎程度得分,可帮助确定存在多个候选广告时投放优先级。如需了解详情和示例,请参阅 PopularityScoreSpecification (popularityScore) 部分。
keywords 可选

文本

重复

与播客系列相关联的关键字列表。这些关键字可能会用于扩展可触发此播客系列的用户查询。例如,嘉宾姓名、涵盖的主题等。
sameAs 可选 网址 明确指明了商品身份的第三方(不在您网域内)参考网页的网址。当存在多个类似系列时,此网页用于进行区分。例如,维基百科网页或播客系列的首页。为了对系列图书进行区分,强烈建议填写此字段。
releasedEvent 可选 PublicationEvent,或更具体的子类型 - FeaturedEventExclusiveEvent 用于标记播客系列发布或发行时间的事件。发布事件可能会记录发布商首次发布播客,而更专业的类型可用于表示发布内容的独家性或精选性。如需了解详情和示例,请参阅 PublicationEvent、FeaturedEvent、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。如需了解详情和示例,请参阅 PodcastSeries(partOfSeries)
partOfSeason 可选 PodcastSeason 对于多季连续剧,此属性会提供剧季信息以及剧季编号和剧季名称。如需了解详情和示例,请参阅 PodcastSeason(partOfSeason)
timeRequired 必需 时长 剧集的时长,采用 ISO 8601 时长格式。
image 可选

ImageObject

重复

系列图书的海报图片。此值必须是完全描述的 ImageObject。提供分辨率最高的图片。最好使用 JPEG 或 PNG 格式。如需了解详情和示例,请参阅 ImageObject(徽标)部分。
isFamilyFriendly 必需 布尔值 指明此内容是否适合全家观看(即内容是否适合包括儿童在内的所有家庭成员观看)。Google 产品可能会使用 isFamilyFriendly 来确定要播放的内容。值必须为 truefalse
inLanguage 必需 文本 播客分集的内容语言,采用 ISO 639-1 格式。使用此值可满足请求特定语言内容的用户查询。如果内容是多种语言的,请仅列出一种主要语言。
genre 必需

文本

重复

播客系列的类别或类型。例如,您可以遵循标准的播客类别
associatedMedia 可选 AudioObject 播客分集的音频文件。如需了解详情和示例,请参阅 AudioObject(associatedMedia)
potentialAction 必需 ListenAction 用户收听内容时要触发的操作。如需了解详情,请参阅 ListenAction 部分。
popularityScore 可选 PopularityScoreSpecification 一个受欢迎程度得分,用于在存在多个候选广告时确定投放优先级。如需了解详情和示例,请参阅 PopularityScoreSpecification 部分。
keywords 可选

文本

重复

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

PropertyValue

重复

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

例如,请参阅 PropertyValue (identifier) 部分。

sameAs 可选 网址 明确指明了商品身份的第三方(不在您网域内)参考网页的网址。当存在多个类似系列时,Google 会使用此网页进行区分。例如,维基百科网页或播客分集的首页。请注意,此处不得提供系列级参考页面。我们强烈建议使用此字段来对剧集进行区分。
releasedEvent 可选 PublicationEvent,或更具体的子类型 - FeaturedEventExclusiveEvent 用于标记播客分集发布或发行时间的事件。发布事件可能会记录发布商首次发布播客分集,而更具体的子类型可以表示发布内容是否独家或精选。如需了解详情和示例,请参阅 PublicationEvent、FeaturedEvent、ExclusiveEvent (releasedEvent) 部分。请注意,在上述位置将剧集标记为独家剧集或精选剧集,意味着该剧集的所有剧集都是独家剧集或精选剧集。我们建议您在最精细的级别标记此类媒体资源。
countryOfOrigin 可选 国家/地区 负责播客的制作公司或个人的主要办公室所在的国家/地区。

PodcastSeries(partOfSeries)

使用 partOfSeriesPodcastEpisode 与其父级 PodcastSeries 之间建立关系。由于 PodcastSeries 的完整详情在单独的 PodcastSeries 实体中进行了说明,因此您无需在 partOfSeries 中提供完整详情。您只需提供以下属性:

属性 优先级 类型 说明
@type 必需 文本 始终设置为 PodcastSeries
@id 必需 网址 系列图书的全局唯一 ID,采用 URI 格式。此 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 必需 网址 剧季的全局唯一 ID,采用 URI 格式。该 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,您可以使用 identifier 字段提供这些 ID,以提高 Google 对您内容的对账准确性。请注意,PodcastEpisode 需要 GUID。此 ID 必须不同于剧集的 @id 字段(不在您的网域内),并且必须在全球范围内代表来源剧集,并且在不同来源中具有唯一性。

属性 优先级 类型 说明
@type 必需 文本 始终设置为 `PropertyValue`。
propertyID 必需 文本 始终设置为 GUID
value 必需 文本 连续剧或剧集的 GUID。

示例 1

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

PopularityScoreSpecification (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、FeaturedEvent、ExclusiveEvent (releasedEvent)

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

请注意,虽然在提供商目录中,独家或精选可能具有类似的含义,但 PublicationEvent 更常用于对实体进行区分,并提供有关同一实体的其他元数据,例如连续剧或剧集的发布日期。

属性 优先级 类型 说明
@type 必需 文本 始终设置为 PublicationEventExclusiveEventFeaturedEvent 之一。
location 必需 国家/地区 发布事件发生的区域。您还可以使用此属性来表示实体的独家限制和分发限制。请使用国家/地区的 ISO 3166 代码。如果您需要应用全局语义,请将其设置为 EARTH。明确将 location 设置为 EARTH,以防不适用特定语言区域的限制。
startDate 推荐 (对于 ExclusiveEvent 是必需的) Date 或 DateTime 实体发布的开始日期。对于 PublicationEvent,此字段表示此实体的初始发布日期。对于 ExclusiveEventFeaturedEvent,此属性表示实体独家或精选状态的开始日期。
endDate 推荐 (对于 ExclusiveEvent 是必需的) Date 或 DateTime 实体出版的结束日期。对于 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(associatedMedia)

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="fixed"> 属性 优先级 类型 说明 @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 必填(如果适用) MediaSubscription 访问此内容所需的订阅套餐。如果您的服务提供多个订阅套餐,则此字段为必填字段。 如果您的服务是免费的,或者只有一个订阅层级,您可以跳过此字段。

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

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

MediaSubscription(potentialAction.actionAccessibilityRequirement.requiresSubscription)

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

优惠 (potentialAction.actionAccessibilityRequirement.requiresSubscription.expectsAcceptanceOf)

属性 优先级 类型 说明
@type 必需 文本 始终设置为 Offer
price 必需 数字 订阅的价格。
priceCurrency 必需 文本 价格所用的币种(采用由 3 个字母表示的 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"
            }
        }
    ]
}