Podcast Schema.org 規格

本節將詳細說明 Podcast 的內容標記屬性。

PodcastSeries 規格

PodcastSeries 是 Podcast 系列的表示法,也稱為 Podcast「節目」。

屬性 優先順序 類型 說明
@context 必要 文字 Schema.org 內容。一律設為 [http://schema.googleapis.com,{@language}:xx}],其中 xx 應為語言代碼。這會設定實體中文字值使用的預設語言。
@type 必要 文字 一律設為 PodcastSeries
@id 必要 文字 Podcast 系列的全域不重複 ID,採 URI 格式。這個 ID 應固定,不會隨著時間而改變。系統會將這個值視為不透明字串,且不一定要是有效連結。用於 @id 值的網域必須由貴機構所擁有。
url 必要 文字 您網站上介紹或描述該 Podcast 系列資訊的標準網址。這個值在全域範圍內不得重複。這個連結能協助系統準確比對動態饋給中的內容與 Google 資料庫中的內容。如要播放內容,請使用說明文件 ListenAction 部分所述的 target.urlTemplate
name 必要 文字

Podcast 系列的名稱。每種語言只能提供一個名稱。

使用陣列標記多種語言的說明。請參閱多個地區和語言的範例

description 必要 文字

Podcast 系列的簡介。

使用陣列標記多種語言的說明。請參閱 多個地區和語言的範例

alternativeHeadline 選用 文字 Podcast 系列的字幕。
author 必要

個人或機構

repeated

開發或提供節目的人員或團體。通常是指主辦單位。如需範例和詳細資訊,請參閱「機構、人物 (作者/出版商)」一文。
publisher 選用

個人或機構

repeated

負責發布節目的原始群組或電視網。通常是指負責發布/製作多個 Podcast 的機構。如需範例和詳細資訊,請參閱「機構、人員 (作者/出版商)」。我們強烈建議您使用這個欄位來區分名稱,並且必須在適用的情況下提供此欄位。
actor 選用

個人或機構

repeated

Podcast 的演員。如需範例和詳細說明,請參閱「演員 (主持人/來賓)」一節。
logo 選用

ImageObject

repeated

系列叢書的標誌圖片。請提供完整說明的 ImageObject。提供可用的最高解析度。建議使用 JPEG 或 PNG。如需詳細資料和範例,請參閱「圖片物件 (標誌)」一節。
image 必要

ImageObject

repeated

系列叢書的圖片。請提供完整說明的 ImageObject。提供可用的最高解析度。建議使用 JPEG 或 PNG。詳情和範例請參閱「圖片物件 (標誌)」一節。
isFamilyFriendly 必要 布林值 指出內容是否闔家觀賞 (也就是內容是否適合所有家庭成員,包括兒童)。Google 產品可能會使用 isFamilyFriendly 來判斷要播放哪些內容。這個值必須是 truefalse
inLanguage 必要 文字 Podcast 內容的語言,以 ISO 639-1 格式表示。這個值可用於滿足要求特定語言內容的使用者查詢。
genre 必要

文字

repeated

Podcast 系列的類別或類型。例如,您可以遵循標準的 Podcast 類別
endDate 選用 日期 Podcast 系列的結尾集發布日期。只有在系列作品已完結時,才需要加入這個欄位。
rssFeed 必要 網址 Podcast 系列的 RSS 動態消息網址。
potentialAction 必要 ListenAction 觸發後能讓使用者聆聽內容的動作。詳情請參閱 ListenAction
popularityScore 選用 PopularityScoreSpecification 熱門度分數:在有多個候選項目時,有助於判斷放送優先順序。詳情和範例請參閱 PopularityScoreSpecification (popularityScore) 一節。
keywords 選用

文字

repeated

與 Podcast 系列相關的關鍵字清單。這些關鍵字可用於擴大可觸發這個 Podcast 系列的使用者查詢。例如來賓姓名、討論主題等。
sameAs 選用 網址 第三方 (不在您網域內) 參照網頁的網址,可明確指出項目的身份。當有多個相似的系列叢書時,這個網頁可用於區分。例如維基百科頁面或 Podcast 系列的首頁。為避免系列叢書名稱重複,強烈建議填寫這個欄位。
releasedEvent 選用 PublicationEvent 或更具體的子類型:FeaturedEventExclusiveEvent 標示 Podcast 系列發布或發送的事件。發布事件可能會記錄發布者最初發布的 Podcast,而更專門的類型則可用於表示發布內容的獨家性或精選性。如需詳細資訊及範例,請參閱「PublicationEvent、FeaturedEvent、ExclusiveEvent (releasedEvent)」一節。請注意,將系列叢書標示為獨家或精選,表示該系列叢書的所有集數均為獨家或精選。
countryOfOrigin 選用 國家/地區 負責製作 Podcast 的公司或個人的主要辦公室所在國家/地區。

PodcastEpisode 規格

PodcastEpisodePodcastSeries 中單集節目的 schema.org 表示法。

屬性 優先順序 類型 說明
@context 必要 文字 Schema.org 內容。請一律將其設為 [http://schema.googleapis.com,{@language:xx}],其中 xx 是語言代碼。這會設定動態饋給中文字值使用的預設字元語言。
@type 必要 文字 一律設為 PodcastEpisode
@id 必要 文字 Podcast 單集節目的全域不重複 ID,採 URI 格式。這個 ID 應固定,不會隨著時間而改變。系統會將這個值視為不透明字串,且不一定要是有效連結。貴機構必須擁有用於 @id 值的網域。
url 必要 文字 您網站上介紹或描述 Podcast 單集節目的標準網址。這個值必須是全域唯一值。這個連結可協助系統準確比對動態饋給中的內容與 Google 資料庫中的內容。播放時,系統會使用說明文件 ListenAction 部分所述的 target.urlTemplate
name 必要 文字

Podcast 單集節目的名稱。

每種語言只能有一個名稱。使用陣列標記多種語言的說明。請參閱多個地區和語言的範例

description 必要 文字 Podcast 單集節目的說明。
alternativeHeadline 必要 文字 Podcast 單集節目的副標題。
author 必要

個人或機構

repeated

開發或提供劇集的人員或群組。這個值通常是指主機。如果作者與節目相同,您可以重複使用 PodcastSeries 實體中的資訊。如需範例和詳細資訊,請參閱「機構、人物 (作者/出版商)」。
publisher 必要

個人或機構

repeated

負責發布節目的原始群組或電視網。通常是指負責發布或製作多個 Podcast 的機構。如需範例和詳細資訊,請參閱「機構、人員 (作者/出版商)」一文。我們強烈建議您使用這個欄位來區分同義字詞,並建議您在適用的情況下定義這個欄位。
actor 必要

個人或機構

repeated

Podcast 的演員。如需範例和詳細說明,請參閱「演員 (主辦人/嘉賓)」一節。
datePublished 必要 日期時間 Podcast 單集節目發布日期和時間。這個值用於排序劇集序號和歧義。
episodeNumber 必要 整數 集數。
partOfSeries 必要 PodcastSeries 這個 Podcast 單集節目所屬的 PodcastSeries。如需詳細資訊和範例,請參閱 PodcastSeries(partOfSeries)
partOfSeason 選用 PodcastSeason 如果是多季影集,這個屬性會提供季別資訊,以及季別編號和季別名稱。詳情和示例請參閱 PodcastSeason(partOfSeason)
timeRequired 必要 時間長度 劇集的長度,採用 ISO 8601 時間長度格式。
image 選用

ImageObject

repeated

系列叢書的圖片。這必須是完整描述的 ImageObject。提供可用的最高解析度。建議使用 JPEG 或 PNG。詳情和範例請參閱「ImageObject (標誌)」一節。
isFamilyFriendly 必要 布林值 指出內容是否闔家觀賞 (也就是內容是否適合所有家庭成員,包括兒童)。Google 產品可能會使用 isFamilyFriendly 來決定要播放的內容。這個值必須是 truefalse
inLanguage 必要 文字 Podcast 單集節目的內容語言,採用 ISO 639-1 格式。使用這個值,即可滿足要求特定語言內容的使用者查詢。如果內容有多種語言,請只列出一種主要語言。
genre 必要

文字

repeated

Podcast 系列的類別或類型。例如,你可以追蹤標準的 Podcast 類別
associatedMedia 選用 AudioObject Podcast 單集節目的音訊檔案。如需詳細資訊和範例,請參閱 AudioObject(associatedMedia)
potentialAction 必要 ListenAction 觸發後能讓使用者聆聽內容的動作。詳情請參閱「ListenAction」一節。
popularityScore 選用 PopularityScoreSpecification 熱門度分數,用於在有多個候選項目時決定放送優先順序。如需詳細資訊及範例,請參閱「 PopularityScoreSpecification」一節。
keywords 選用

文字

repeated

與 Podcast 系列相關的關鍵字清單。這些關鍵字可能會用來擴大可觸發此 Podcast 單集的使用者查詢。例如 newssportshistory
identifier 必要

PropertyValue

repeated

針對 PodcastEpisode,請使用這項屬性提供 GUID。GUID 必須是可在全球範圍內唯一識別 Podcast 單集的 ID。這與劇集的 @id 欄位不同。

如需範例,請參閱「PropertyValue (identifier)」一節。

sameAs 選用 網址 第三方 (不在您網域內) 參照網頁的網址,可明確指出項目的身份。當有多個類似系列叢書時,Google 會使用這個網頁來區分。例如維基百科頁面或 Podcast 集數的首頁。請注意,請勿在此提供系列層級參照頁面。我們強烈建議使用這個欄位,以便區分不同集數。
releasedEvent 選用 PublicationEvent,或更具體的子類型 - FeaturedEventExclusiveEvent 標示 Podcast 單集發布或發送的事件。發布事件可能會記錄發布者最初發布的 Podcast 集數,而更具體的子類型則可表示該集數是否為獨家內容或精選內容。如需詳細資訊及範例,請參閱「 PublicationEvent、FeaturedEvent、ExclusiveEvent (releasedEvent)」一節。請注意,上述標示系列為獨家或精選,表示該節目的所有劇集均為獨家或精選。建議您在最精細的層級標示這類資源。
countryOfOrigin 選用 國家/地區 負責製作 Podcast 的製作公司或個人的主要辦公室所在國家/地區。

PodcastSeries (partOfSeries)

使用 partOfSeries 建立 PodcastEpisode 與其父項 PodcastSeries 之間的關係。由於 PodcastSeries 的完整詳細資料已在個別的 PodcastSeries 實體中說明,因此您不需要在 partOfSeries 中提供完整詳細資料。您只需要提供下列屬性:

屬性 優先順序 類型 說明
@type 必要 文字 一律設為 PodcastSeries
@id 必要 網址 系列影集的全域不重複 ID,採 URI 格式。ID 必須與動態饋給中完整 PodcastSeries 實體的 ID 相符。
name 必要 文字 Podcast 系列的名稱。

範例 1

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

PodcastSeason (partOfSeason)

PodcastSeason 代表 PodcastEpisode 的季別資訊,其中最重要的是季別編號。只有在 Podcast 系列有不同季別時,才需要使用這個屬性。

屬性 優先順序 類型 說明
@type 必要 文字 一律設為 PodcastSeason
@id 必要 網址 季別的全域不重複 ID,採 URI 格式。這個 ID 應固定,不會隨著時間而改變。系統會將這個值視為不透明字串,且不一定要是有效連結。
seasonNumber 必要 整數 Podcast 系列的季別編號。
name 選用 文字 Podcast 季別的名稱。

範例 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 選用

國家/地區

repeated

允許使用這類媒體的國家/地區:

  • 如果未指定,系統會假設所有語言代碼都允許使用這張圖片。
  • 如要為每個區域提交不同的圖片,請新增多個 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 欄位不同 (不在您的網域內),且必須在全球範圍內代表來源集數,並在時間和來源上皆具唯一性。

屬性 優先順序 類型 說明
@type 必要 文字 一律設為 `PropertyValue`。
propertyID 必要 文字 一律設為 GUID
value 必要 文字 影集或劇集的 GUID。

範例 1

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

PopularityScoreSpecification (popularityScore)

如果使用者查詢的條件與動態消息中的多個實體相符,popularityScore 就能協助使用者找到最合適的內容。當這個值可用時,系統會向使用者提供使用者所在區域可用的熱門度分數最高的內容。所有缺少這個欄位的內容,預設熱門程度分數為 0。分數比較會在整個目錄範圍內進行,因此請確保所有動態饋給的規模一致。

屬性 優先順序 類型 說明
@type 必要 文字 一律設為 PopularityScoreSpecification
value 必要 數字 正整數值,用於比較目錄中的其他實體,以決定服務優先順序。數字越大,代表熱門程度越高。
eligibleRegion 選用

國家/地區或文字

repeated

這個熱門程度分數適用的單一地區或地區清單。

如果熱門度分數是全域套用,請使用 earth 做為文字值。

如果需要列出特定地區,請使用 `Country` 類型。

如果您略過這個欄位,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 欄位會表示 Podcast 系列或單集節目的發布或發行實體。
ExclusiveEvent
使用這個物件表示供應商擁有 Podcast 的獨家發行權。專屬性可能會依地區和時間而異,且必須包含指向內容專屬供應商的機構欄位。
FeaturedEvent
使用這個物件表示供應者向消費者推薦 Podcast (例如「原創內容」)。
Originals 與 Exclusive 不同
「原創內容 (精選)」一詞通常表示特定實體的專屬權,但這會造成詞彙過載。因此,您必須將所要表達的意思分為上述兩種類別。原始實體也可能為排他性,在這種情況下,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 用於提供 Podcast 單集的原始媒體檔案。

屬性 優先順序 類型 說明
@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

repeated

您的深層連結規格,包括支援的平台資訊。您可以使用多個 EntryPoint 欄位,為不同平台集定義不同的深層連結。
actionAccessibilityRequirement 必要

ActionAccessSpecification

repeated

定義使用者必須符合怎樣的條件才能存取這個實體。如果存在多個 ActionAccessSpecification,只要符合任何規格條件的使用者都能存取內容。

EntryPoint (potentialAction.target)

table class="fixed"> 屬性 優先順序 類型 說明 @type 必要 文字 一律設為 EntryPointurlTemplate 必填 網址 用來播放內容的連結。 actionPlatform 必填

文字

repeated

這個深層連結適用的平台。可能出現的值如下:

  • "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 必要

國家/地區

repeated

這項優惠適用的國家/地區。您可以使用這項屬性控管這項內容必須提供的國家/地區。
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 必要 文字 價格的幣別 (採用三個英文字母組成的 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"
            }
        }
    ]
}