本節將詳細說明 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 |
選用 | repeated |
系列叢書的標誌圖片。請提供完整說明的 ImageObject 。提供可用的最高解析度。建議使用 JPEG 或 PNG。如需詳細資料和範例,請參閱「圖片物件 (標誌)」一節。 |
image |
必要 | repeated |
系列叢書的圖片。請提供完整說明的 ImageObject 。提供可用的最高解析度。建議使用 JPEG 或 PNG。詳情和範例請參閱「圖片物件 (標誌)」一節。 |
isFamilyFriendly |
必要 | 布林值 | 指出內容是否闔家觀賞 (也就是內容是否適合所有家庭成員,包括兒童)。Google 產品可能會使用 isFamilyFriendly 來判斷要播放哪些內容。這個值必須是 true 或 false 。 |
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 或更具體的子類型:FeaturedEvent 或 ExclusiveEvent |
標示 Podcast 系列發布或發送的事件。發布事件可能會記錄發布者最初發布的 Podcast,而更專門的類型則可用於表示發布內容的獨家性或精選性。如需詳細資訊及範例,請參閱「PublicationEvent、FeaturedEvent、ExclusiveEvent (releasedEvent)」一節。請注意,將系列叢書標示為獨家或精選,表示該系列叢書的所有集數均為獨家或精選。 |
countryOfOrigin |
選用 | 國家/地區 | 負責製作 Podcast 的公司或個人的主要辦公室所在國家/地區。 |
PodcastEpisode 規格
PodcastEpisode
是 PodcastSeries
中單集節目的 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 |
選用 | repeated |
系列叢書的圖片。這必須是完整描述的 ImageObject 。提供可用的最高解析度。建議使用 JPEG 或 PNG。詳情和範例請參閱「ImageObject (標誌)」一節。 |
isFamilyFriendly |
必要 | 布林值 | 指出內容是否闔家觀賞 (也就是內容是否適合所有家庭成員,包括兒童)。Google 產品可能會使用 isFamilyFriendly 來決定要播放的內容。這個值必須是 true 或 false 。 |
inLanguage |
必要 | 文字 | Podcast 單集節目的內容語言,採用 ISO 639-1 格式。使用這個值,即可滿足要求特定語言內容的使用者查詢。如果內容有多種語言,請只列出一種主要語言。 |
genre |
必要 | 文字 repeated |
Podcast 系列的類別或類型。例如,你可以追蹤標準的 Podcast 類別。 |
associatedMedia |
選用 | AudioObject | Podcast 單集節目的音訊檔案。如需詳細資訊和範例,請參閱 AudioObject(associatedMedia)。 |
potentialAction |
必要 | ListenAction | 觸發後能讓使用者聆聽內容的動作。詳情請參閱「ListenAction」一節。 |
popularityScore |
選用 | PopularityScoreSpecification | 熱門度分數,用於在有多個候選項目時決定放送優先順序。如需詳細資訊及範例,請參閱「 PopularityScoreSpecification」一節。 |
keywords |
選用 | 文字 repeated |
與 Podcast 系列相關的關鍵字清單。這些關鍵字可能會用來擴大可觸發此 Podcast 單集的使用者查詢。例如 news 、sports 或 history 。 |
identifier |
必要 | PropertyValue repeated |
針對 如需範例,請參閱「PropertyValue (identifier)」一節。 |
sameAs |
選用 | 網址 | 第三方 (不在您網域內) 參照網頁的網址,可明確指出項目的身份。當有多個類似系列叢書時,Google 會使用這個網頁來區分。例如維基百科頁面或 Podcast 集數的首頁。請注意,請勿在此提供系列層級參照頁面。我們強烈建議使用這個欄位,以便區分不同集數。 |
releasedEvent |
選用 | PublicationEvent,或更具體的子類型 - FeaturedEvent 或 ExclusiveEvent | 標示 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 |
必要 | 文字 | 一律設為 Organization 或 Person 。 |
@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 |
必要 | 文字 | 一律設為 Organization 或 Person 。 |
@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 |
允許使用這類媒體的國家/地區:
|
國家/地區 (image.regionsAllowed)
屬性 | 優先順序 | 類型 | 說明 |
---|---|---|---|
@type |
必要 | 文字 | 一律設為 Country. |
name |
必要 | 文字 |
ISO 3166-1 alpha-2 國家/地區代碼。例如:GB 、US 。 |
範例 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 |
這個熱門程度分數適用的單一地區或地區清單。 如果熱門度分數是全域套用,請使用 如果需要列出特定地區,請使用 `Country` 類型。 如果您略過這個欄位, |
國家/地區 (popularityScore.eligibleRegion)
屬性 | 優先順序 | 類型 | 說明 |
---|---|---|---|
@type |
必要 | 文字 | 一律設為 Country 。 |
name |
必要 | 文字 |
ISO 3166-1 alpha-2 國家/地區代碼。例如:GB 、US 。 |
範例 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 |
必要 | 文字 | 一律設為 PublicationEvent 、ExclusiveEvent 或 FeaturedEvent 其中之一。 |
location |
必要 | 國家/地區 | 發生發布事件的區域。您也可以使用這個屬性來代表實體的專屬限制和發行限制。請使用國家/地區的 ISO 3166 代碼。如果您需要套用全域語意,請將其設為 EARTH 。明確將 location 設為 EARTH ,以防無法套用特定語言代碼的限制。 |
startDate |
建議 (適用於 ExclusiveEvent 的必要屬性) | Date 或 DateTime | 實體的發布日期。在 PublicationEvent 的情況下,這表示這個實體的初始發布日期。在 ExclusiveEvent 或 FeaturedEvent 的情況下,這代表實體的獨家或精選狀態的開始日期。 |
endDate |
建議 (適用於 ExclusiveEvent 的必要屬性) | Date 或 DateTime | 實體的出版結束日期。在 PublicationEvent 的情況下,這表示這個實體的最終發布日期。在 ExclusiveEvent 或 FeaturedEvent 的情況下,這代表實體的獨家或精選結束日期。 |
publishedBy |
必要 | 機構或個人 | 發布此實體並套用至此發布事件的 Organization 或 Person 實體。請使用「機構 (作者/發布者)」一節所述的相同結構定義。 |
範例 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 |
必要 |
repeated |
您的深層連結規格,包括支援的平台資訊。您可以使用多個 EntryPoint 欄位,為不同平台集定義不同的深層連結。 |
actionAccessibilityRequirement |
必要 |
repeated |
定義使用者必須符合怎樣的條件才能存取這個實體。如果存在多個 ActionAccessSpecification ,只要符合任何規格條件的使用者都能存取內容。 |
EntryPoint (potentialAction.target)
@type
必要
文字
一律設為 EntryPoint
。
urlTemplate
必填
網址
用來播放內容的連結。
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 |
必要 | 文字 |
存取權要求的類型。必須是下列其中一個值:
|
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 |
必要 | 文字 | 訂閱套件的名稱。例如:Premium 、Basic 。 |
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"
}
}
]
}