Một số loại thực thể yêu cầu bạn thiết lập mối quan hệ giữa nội dung trong nguồn cấp dữ liệu của bạn. Thông tin này giúp Google hiển thị thứ tự và cấu trúc phù hợp của nội dung cho người dùng và xác định nội dung chính xác khi truy vấn của người dùng mơ hồ.
Chọn loại nội dung bạn cung cấp:
Chương trình truyền hình
Nếu là nhà cung cấp chương trình truyền hình, bạn cần thêm các loại thực thể TVEpisode
, TVSeason
và TVSeries
vào nguồn cấp dữ liệu danh mục nội dung nghe nhìn. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc tìm các loại thực thể này.
Xác định các mối quan hệ
Đảm bảo thiết lập các mối quan hệ sau:
Thực thể
TVEpisode
yêu cầu bạn cung cấp thuộc tínhpartOfSeries
. Thuộc tính này chỉ định@id
vàname
của thực thểTVSeries
của tập."partOfSeries": { "@type": "TVSeries", "@id": "http://www.example.com/my_favorite_tv_show", "name": "My Favorite TV Show", },
Nếu nguồn cấp dữ liệu của bạn có chứa các phần chương trình truyền hình thì thực thể
TVSeason
cũng yêu cầu bạn chỉ định thực thểTVSeries
trong thuộc tínhpartOfSeries
.Thực thể
TVEpisode
yêu cầu bạn cung cấp thuộc tínhpartOfSeason
. Thuộc tính này chỉ định@id
vàseasonNumber
của thực thểTVSeason
của tập."partOfSeason": { "@type": "TVSeason", "@id": "http://www.example.com/my_favorite_tv_show/s7", "seasonNumber": 7 },
Nếu thực thể
TVEpisode
không có thực thểTVSeason
tương ứng trong nguồn cấp dữ liệu, hãy làm theo các bước sau để cung cấp thuộc tínhpartOfSeason.@id
vàpartOfSeason.seasonNumber
cho thực thểTVEpisode
:- Lấy giá trị
partofSeries.@id
và đính kèm một trường truy vấn phần giữ chỗ (ví dụ: ?season1) để tạo mộtpartOfSeason.@id
duy nhất (ví dụ: http://www.example.com/my_favorite_tv_show?season1). - Đặt
partOfSeason.seasonNumber
thành 1.
partOfSeason.@id
hiện có cho thực thểTVSeason
tương ứng hoặc thay thế trình giữ chỗpartOfSeason.@id
này bằng@id
thực tế của thực thểTVSeason
.- Lấy giá trị
Ví dụ:
TVSeries
Chương trình truyền hình yêu thích của tôi
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"url": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
"potentialAction":{ … },
...
}
TVSeason
Chương trình truyền hình yêu thích của tôi (phần 7)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVSeason",
"@id": "http://www.example.com/my_favorite_tv_show/s7",
"url": "http://www.example.com/my_favorite_tv_show/s7",
"name": "My Favorite TV Show, Season 7",
"seasonNumber": 7,
"partOfSeries": {
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
},
"potentialAction":{ … },
...
}
TVEpisode
Tập 3 của Chương trình truyền hình yêu thích của tôi (phần 7)
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "TVEpisode",
"@id": "http://www.example.com/my_favorite_tv_show/s7/e3",
"url": "http://www.example.com/my_favorite_tv_show/s7/e3",
"name": "John Doe returns at night",
"episodeNumber": 3,
"partOfSeason": {
"@type": "TVSeason",
"@id": "http://www.example.com/my_favorite_tv_show/s7",
"seasonNumber": 7
},
"partOfSeries": {
"@type": "TVSeries",
"@id": "http://www.example.com/my_favorite_tv_show",
"name": "My Favorite TV Show",
},
"potentialAction":{ … },
...
}
Đài
Nếu là nhà cung cấp radio, bạn cần thêm loại thực thể RadioBroadcastService
vào nguồn cấp dữ liệu danh mục nội dung nghe nhìn của mình. Bạn có thể tìm định nghĩa cho các thực thể này trong mục Tìm hiểu về các loại thực thể hiện có bằng cách lọc loại thực thể này.
Xác định các mối quan hệ
Vì chỉ có một loại thực thể cho các chức năng tích hợp như vậy, mặc dù không cần thiết lập các mối quan hệ rõ ràng, hãy đảm bảo rằng bạn thu thập thông tin sau đây cho các thực thể RadioBroadcastService
:
description
: Mô tả đài phát thanh.broadcastDisplayName
: Tên hiển thị của đài phát thanh.areaServed
: Khu vực có đài phát thanh.callSign
: Biển hiệu chính thức do chính phủ cấp của đài phát thanh. Đối với các đài phát thanh ở Bắc Mỹ, thuộc tính này là bắt buộc.broadcastFrequency
: Thông số tần số của đài phát thanh.- Đối với các đài AM/FM trên mặt đất, thuộc tính này là bắt buộc.
- Đối với nội dung chỉ phát trực tuyến, giá trị được đặt thành
INTERNET_STREAM
.
broadcastAffiliateOf
: Mạng mà đài phát thanh này cung cấp về lập trình. Nếu đài phát thanh này không phải là một phần của bất kỳ liên kết nào, thì thuộc tính này không bắt buộc.broadcaster
: Tổ chức sở hữu và điều hành đài phát thanh đó.parentService
: Đài phát thanh mẹ. Nếu đài phát thanh này lặp lại hoặc là người biên dịch một đài phát thanh khác, thuộc tính này là bắt buộc.
Ví dụ:
{
"@context": "http://schema.googleapis.com",
"@type": "RadioBroadcastService",
"@id": "https://www.example.com/stations?id=1",
"url": "https://www.example.com/stations?id=1",
"name": "KABC",
"callSign": "KABC-FM",
"broadcastDisplayName": "KABC",
"description": "Local News & Information",
"broadcastFrequency": {
"@type": "BroadcastFrequencySpecification",
"broadcastFrequencyValue": "89.5",
"broadcastSignalModulation": "FM",
"broadcastSubChannel": "HD1"
},
"areaServed": {
"@type": "City",
"name": "San Francisco, CA"
},
"broadcastAffiliateOf": [
{
"@id": "https://www.example.com/networks/xyz",
"@type": "Organization",
"name": "XYZ",
"sameAs": "https://en.wikipedia.org/wiki/XYZ"
},
{
"@id": "https://www.example.com/networks/efg",
"@type": "Organization",
"name": "EFG",
"sameAs": "https://www.example.com/"
}
],
"broadcaster": [
{
"@type": "Organization",
"name": "California Local Public Broadcasting",
"sameAs": "https://www.example.org/w/clpb/"
},
{
"@type": "Organization",
"sameAs": "https://www.example.org/kabc",
"name": "KABC Inc"
}
],
"potentialAction": { … },
…
}
Âm nhạc
Nếu là nhà cung cấp nhạc, bạn cần thêm các loại thực thể MusicGroup
, MusicAlbum
và MusicRecording
vào nguồn cấp dữ liệu danh mục nội dung nghe nhìn của mình. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc tìm các loại thực thể này.
MusicGroup
, MusicAlbum
và MusicRecording
cho phép ứng dụng hoặc nền tảng của bạn phát nhiều nội dung hơn từ danh sách phát (MusicPlaylist
) sau khi tất cả nội dung trong thực thể gốc được phát. Hãy xem tình huống sau:
- Thực thể
MusicAlbum
chứa danh sách các bài hát trong Album XYZ (một thực thể gốc). - Thực thể
MusicPlaylist
chứa một danh sách phát gồm các bài hát tương tự các bài hát trong Album XYZ. - Thực thể
MusicAlbum
bao gồm thực thểMusicPlaylist
dưới dạng Hành động gốc đối tượng.
Trong quá trình thiết lập này, sau khi phát tất cả bài hát trong Album XYZ, ứng dụng có thể tiếp tục phát các bài hát trong danh sách phát do thực thể MusicPlaylist
cung cấp.
Hành động của thực thể và hành động khởi tạo thực thể
Hành động nghe hỗ trợ hai loại Hành động:
- Tác vụ đối tượng: Phát một nghệ sĩ, album hoặc bài hát cụ thể (thực thể gốc). Bao gồm
MusicGroup
,MusicAlbum
,MusicRecording
. - Hành động gốc đối tượng: Phát nội dung tương tự với đối tượng gốc. Dữ liệu này bao gồm
MusicPlaylist
.- Sau khi hoàn thành một Hành động của thực thể, ứng dụng hoặc nền tảng của bạn có thể bắt đầu một Hành động bắt đầu thực thể.
- Hành động gốc đối tượng có thể bao gồm việc phát lại nội dung từ thực thể gốc.
Bạn nên đưa Hành động khởi tạo thực thể vào mỗi Hành động của thực thể.
Xác định các mối quan hệ
- Đối với
MusicGroup
, nếu bạn cung cấp một Hành động bắt đầu với thực thể, hãy xác định@id
vàname
củaMusicPlaylist
. - Đối với
MusicAlbum
vàMusicRecording
, bạn cần xác định xem chúng thuộc vềMusicGroup
nào.- Xác định
@id
vàname
củaMusicGroup
. - Nếu bạn cung cấp Hành động gốc đối tượng, hãy xác định
@id
vàname
trongMusicPlaylist
của Hành động đó.
- Xác định
- Đối với
MusicPlaylist
,- Nếu có thể, hãy xác định
genre
thể hiện chính xác nhất nội dung trong danh sách phát. - Nếu danh sách phát được tuyển chọn thủ công, hãy xác định
numTracks
.- Nếu không có
numTracks
, Google sẽ biết rằng danh sách phát này là danh sách phát hằng ngày và được tạo tự động.
- Nếu không có
- Nếu có thể, hãy xác định
Ví dụ:
Nhóm nhạc
- Nghệ sĩ: Nghệ sĩ yêu thích của tôi
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicGroup",
"@id":"http://www.example.com/artist/my_favorite_artist/",
"url":"http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist",
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/artist_mix/my_favorite_artist/",
"url":"http://www.example.com/artist_mix/my_favorite_artist/",
"name":"My Favorite Artist Mix",
"potentialAction":{ … },
},
...
}
Album nhạc
- Album: Album yêu thích của tôi
- Nghệ sĩ: Nghệ sĩ yêu thích của tôi
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicAlbum",
"@id":"http://www.example.com/album/my_favorite_album",
"url":"http://www.example.com/album/my_favorite_album",
"name":"My Favorite Album",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/album_mix/my_favorite_album",
"url":"http://www.example.com/album_mix/my_favorite_album",
"name":"My Favorite Album Mix",
"potentialAction":{ … },
},
...
}
Ghi âm nhạc
- Bài hát: Bài hát yêu thích của tôi
- Nghệ sĩ: Nghệ sĩ yêu thích của tôi
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicRecording",
"@id":"http://www.example.com/track/my_favorite_song",
"url":"http://www.example.com/track/my_favorite_song",
"name":"My Favorite Song",
"byArtist":{
"@type":"MusicGroup",
"@id": "http://www.example.com/artist/my_favorite_artist/",
"name":"My Favorite Artist"
},
"potentialAction":{ … },
"subjectOf": {
"@type":"MusicPlaylist",
"@id":"http://www.example.com/track_mix/my_favorite_song",
"url":"http://www.example.com/track_mix/my_favorite_song",
"name":"My Favorite Song Mix",
"potentialAction":{ … },
},
...
}
Danh sách phát nhạc
- Danh sách phát tùy chỉnh: "Bài hát nhạc pop hàng đầu những năm 2010"
{
"@context":"http://schema.googleapis.com/",
"@type":"MusicPlaylist",
"@id":"http://www.example.com/playlist/top_pop_songs/",
"url":"http://www.example.com/playlist/top_pop_songs/",
"name":"Top Pop Songs of the 2010s",
"genre": [
"pop",
"2010s"
],
"numTracks":"46",
"potentialAction":{ … },
...
}
TV trực tiếp
Nếu là nhà cung cấp dịch vụ Truyền hình trực tiếp, bạn cần thêm các loại thực thể Organization
, BroadcastService
, CableOrSatelliteService
và TelevisionChannel
vào nguồn cấp dữ liệu danh mục truyền thông để đại diện cho nhóm kênh của mình. Bạn cũng có thể cần cung cấp các thực thể BroadcastEvent
, TVSeries
, TVEpisode
, Movie
và SportsEvent
để đại diện cho EPG (hướng dẫn lập trình bầu cử) liên kết. Bạn có thể tìm định nghĩa cho các thực thể này trong phần Tìm hiểu các loại thực thể hiện có bằng cách lọc tìm các loại thực thể này. Để biết giải thích chi tiết hơn, bạn có thể truy cập trang Kênh truyền hình trực tiếp.
Mối quan hệ giữa các pháp nhân đại diện cho các kênh truyền hình trực tiếp
Hình dưới đây cho thấy mối liên hệ giữa các thực thể Organization
, BroadcastService
, CableOrSatelliteService
và TelevisionChannel
:
- Thực thể
Organization
(toán tử) đại diện cho nhà cung cấp nguồn cấp dữ liệu, đồng thời là tổ chức mẹ của dịch vụCableOrSatelliteService
cũng được kết nối bằng thuộc tínhprovider
trên thực thểCableOrSatelliteService
. - Các thực thể
Organization
tương ứng với thực thểBroadcastService
được kết nối bằng thuộc tínhbroadcastAffiliateOf
trên thực thểBroadcastService
. - Các thực thể
TelevisionChannel
kết nối với thực thểCableOrSatelliteService
, đại diện cho dòng giới thiệu mà chúng thuộc về bằng cách sử dụng thuộc tínhinBroadcastLineup
. - Các thực thể
TelevisionChannel
kết nối với thực thểBroadcastService
có kênh mà chương trình này cung cấp bằng cách sử dụng thuộc tínhprovidesBroadcastService
.
Bạn nên xem qua trang khái niệm Kênh truyền hình trực tiếp để biết các ví dụ cụ thể về cách thiết lập mối quan hệ giữa các tổ chức BroadcastService và Tổ chức.
Mối quan hệ giữa các kênh và hướng dẫn lập trình (EPG)
Hình dưới đây cho thấy cách thực thể BroadcastEvent
liên kết với các thực thể còn lại trong nguồn cấp dữ liệu.
- Các thực thể
BroadcastEvent
, đại diện cho hướng dẫn lập trình (EPG) củaBroadcastService
, được kết nối với các thực thểBroadcastService
bằng cách sử dụng thuộc tínhpublishedOn
trên thực thểBroadcastEvent
. - Bạn cũng có thể kết nối
BroadcastEvent
thực thể với thực thểTVEpisode
,TVSeries
,Movie
cấp cao nhất bằng cách sử dụng thuộc tínhworkPerformed
. - Bạn cũng có thể kết nối
BroadcastEvent
thực thể với thực thểSportsEvent
cấp cao nhất bằng cách sử dụng thuộc tínhbroadcastOfEvent
. - Đối với những sự kiện trực tiếp không có kênh, các thực thể
BroadcastEvent
sẽ kết nối với thực thể đại diện cho sự kiện trực tiếp bằng thuộc tínhworkPerformed
hoặcbroadcastOfEvent
, tuỳ thuộc vào nội dung đang được phát trực tiếp. Trong những trường hợp như vậy, bạn không cần dùng thuộc tínhpublishedOn
vì không cần kết nối với kênh.
Ví dụ
Phần sau đây cung cấp các ví dụ và đoạn mã cho nhiều trường hợp sử dụng của Hành động xem.
Nhà cung cấp dịch vụ truyền hình quốc gia trên Internet
Tổ chức
Nhà cung cấp dịch vụ truyền hình giao thức Internet hư cấu, ExampleTV Digital Service (Organization
), cung cấp dịch vụ Truyền hình trực tiếp trên Internet gồm hai kênh sau: ExampleTV-Movie (Organization
) và ExampleTV-Comedy (Organization
):
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/digital",
"name":"ExampleTV Digital Service",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_digital_service"
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/movie",
"name":"ExampleTV Movie",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_movie"
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"Organization",
"@id":"http://example.com/exampletv/comedy",
"name":"ExampleTV Comedy",
"sameAs": "https://en.wikipedia.org/wiki/exampletv_comedy"
}
Dịch vụ phát sóng
Hai thực thể BroadcastService
này cung cấp thông tin chi tiết về các đường liên kết sâu và yêu cầu về quyền truy cập đối với các kênh hư cấu ExampleTV-Movie và ExampleTV-Comedy:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie",
"name": "ExampleTV-Movie",
"alternateName": [
"Example Television Movie",
"Example TV Movie"
],
"description": "A fictional Internet Protocol TV movie channel.",
"broadcastDisplayName":"ExampleTV-Movie",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/movie"
},
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/movie?autoplay=true",
"inLanguage": "en",
"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/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "12345"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-movie-33345"
}
]
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy",
"name": "ExampleTV-Comedy",
"alternateName": [
"Example Television Comedy",
"Example TV Comedy"
],
"description": "A fictional Internet Protocol TV comedy channel.",
"broadcastDisplayName":"ExampleTV-Comedy",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://www.example.com/exampletv/comedy"
},
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/exampletv/broadcast/comedy?autoplay=true",
"inLanguage": "en",
"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/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://www.example.com/exampletv/basic_subscription",
"name": "Basic subscription",
"identifier": "example.com:basic",
"commonTier": true
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "15555"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-comedy-12323"
}
]
}
Dịch vụ truyền hình cáp hoặc vệ tinh
CableOrSatelliteService
này mô tả nhà cung cấp dịch vụ Dịch vụ kỹ thuật số ExampleTV có phạm vi quốc gia:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us",
"name":"Example TV Digital Service - US",
"provider": {
"@type": "Organization",
"@id": "http://example.com/exampletv/digital",
},
"areaServed":[
{
"@type":"Country",
"name": "US",
}
]
}
Kênh Truyền Hình
Các thực thể TelevisionChannel
này cho biết rằng IPTV ExampleTV Digital Service có chương trình ExampleTV Movie trên kênh ExTV-Movie
và chương trình ExampleTV Comedy trên kênh ExTV-Comedy
:
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-movie",
"broadcastChannelId":"ExTV-Movie",
"broadcastServiceTier":"Basic",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/movie"
}
},
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"TelevisionChannel",
"@id":"http://example.com/exampletv/extv-comedy",
"broadcastChannelId":"ExTV-Comedy",
"broadcastServiceTier":"Basic",
"inBroadcastLineup":{
"@type":"CableOrSatelliteService",
"@id":"http://example.com/example_iptv/us"
},
"providesBroadcastService":{
"@type":"BroadcastService",
"@id":"https://www.example.com/exampletv/broadcast/comedy"
}
}
Xem phần Ví dụ về chương trình truyền hình trực tiếp để biết thêm ví dụ.
Phát sóng một bộ phim trên kênh truyền hình
Một bộ phim được phát sóng trên mạng truyền hình Example TV (BroadcastService
) từ 5 giờ chiều đến 7 giờ tối ngày 12 tháng 7 năm 2019.
BroadcastEvent
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "BroadcastEvent",
"@id": "http://example.com/live/movie/new_release",
"name": "My Favorite Movie",
"description": "John Doe spent years perfecting his survival skills in a tropical jungle.",
"startDate": "2019-07-12T17:00-08:00",
"endDate": "2019-07-12T19:00-08:00",
"videoFormat": "HD",
"isLiveBroadcast": "False",
"publishedOn": {
"@type": "BroadcastService",
"@id": "http://example.com/stations/example_tv"
},
"workPerformed": {
"@type": "Movie",
"@id": "http://www.example.com/my_favorite_movie"
}
}
Dịch vụ phát sóng
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"BroadcastService",
"@id":"http://example.com/stations/example_tv",
"name":"EXAMPLE-TV",
"broadcastDisplayName":"ABCD",
"callSign": "EXA-TV",
"videoFormat":"SD",
"broadcastTimezone":"America/Los_Angeles",
"broadcastAffiliateOf":{
"@type":"Organization",
"@id":"http://example.com/networks/abcd-network",
}
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "12258"
},
{
"@type": "PropertyValue",
"propertyID": "_PARTNER_ID_",
"value": "exampletv-123456"
}
],
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://example.com/livestream",
"actionPlatform": [
"http://schema.org/DesktopWebPlatform",
"http://schema.org/MobileWebPlatform",
"http://schema.org/AndroidPlatform",
"http://schema.org/IOSPlatform",
"http://schema.googleapis.com/GoogleVideoCast",
"http://schema.org/AndroidTVPlatform"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "externalsubscription",
"availabilityStarts": "2018-07-21T10:35:29Z",
"availabilityEnds": "2019-10-21T10:35:29Z",
"requiresSubscription": {
"@type": "MediaSubscription",
"@id": "http://example.com/subscription",
"name": "ABCD",
"sameAs": "http://example.com/subscription",
"authenticator": {
"@type": "Organization",
"name": "TVE"
}
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
}
}
Phim
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "Movie",
"@id": "http://www.example.com/my_favorite_movie",
"url": "http://www.example.com/my_favorite_movie",
"name": "My Favorite Movie",
"sameAs": "https://en.wikipedia.org/wiki/my_favorite_movie",
"releasedEvent": {
"@type": "PublicationEvent",
"startDate": "2008-01-20",
"location": {
"@type": "Country",
"name": "US"
}
},
"description": "John Doe spent years perfecting his survival skills in a tropical jungle.",
"actor": [
{
"@type": "Person",
"name": "John Doe",
"sameAs": "https://en.wikipedia.org/wiki/John_Doe"
},
{
"@type": "Person",
"name": "Jane Doe",
"sameAs": "https://en.wikipedia.org/wiki/Jane_Doe"
}
],
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "IMDB_ID",
"value": "tt0123456"
}
]
}
Xem phần Ví dụ về sự kiện truyền hình trực tiếp để biết thêm ví dụ.
Trận đấu thể thao trực tiếp được phát trực tuyến
Sự kiện phát sóng
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type": "BroadcastEvent",
"@id": "http://example.com/live_eevent/basketball/professional/final_game_6",
"name": "2019 Professional Basketball Finals, Game 6: Team A at Team B",
"description": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B.",
"startDate": "2018-09-16T10:00-08:00",
"endDate": "2018-09-16T13:00-08:00",
"videoFormat": "HD",
"isLiveBroadcast": "False",
"potentialAction": {
"@type": "WatchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "http://www.example.com/pbl_semis_game?autoplay=true",
"inLanguage": "en",
"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/GoogleVideoCast"
]
},
"actionAccessibilityRequirement": {
"@type": "ActionAccessSpecification",
"category": "subscription",
"availabilityStarts": "2018-09-16T10:00-08:00",
"availabilityEnds": "2018-09-16T10:00-08:00",
"requiresSubscription": {
"@type": "MediaSubscription",
"name": "Example Package",
"commonTier": true,
"@id": "http://www.example.com/example_package"
},
"eligibleRegion": [
{
"@type": "Country",
"name": "US"
}
]
}
},
"broadcastOfEvent": {
"@type": "SportsEvent",
"@id": "http://example.com/basketball/professional/final_game_6"
}
}
Sự kiện thể thao
{
"@context": ["http://schema.org", {"@language": "en"}],
"@type":"SportsEvent",
"@id": "http://example.com/basketball/professional/final_game_6",
"name":"2019 Professional Basketball Finals, Game 6: Team A vs Team B",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"description": {
"@language": "en",
"@value": "Game 6 of the 2019 Professional Basketball Finals. Team A leads the series 3-2 against Team B."
},
"startDate": "2019-09-16T10:00-08:00",
"endDate": "2019-09-16T13:00-08:00",
"homeTeam":{
"@type":"SportsTeam",
"name":"Team B",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"parentOrganization":{
"@type":"SportsOrganization",
"name":"Professional Basketball League",
"sameAs":"http://www.example.com/professional_basketball_league"
},
"athlete":[
{
"@type":"Person",
"name":"John doe"
}
]
},
"awayTeam":{
"@type":"SportsTeam",
"name":"Team A",
"sport":"https://en.wikipedia.org/wiki/Basketball",
"athlete":[
{
"@type":"Person",
"name":"Jane Doe"
}
]
},
"location":{
"@type":"Place",
"name":"Example Stadium",
"address":{
"@type":"PostalAddress",
"streetAddress":"1600 Amphitheatre Pkwy",
"addressLocality":"Mountain View",
"addressRegion":"CA",
"postalCode":"94043",
"addressCountry":"US"
}
},
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "TMS_ID",
"value": "TMS ID of this game"
}
]
}
Xem phần Ví dụ thể thao để biết thêm ví dụ.