Alguns tipos de entidade exigem que você estabeleça a relação entre o conteúdo no seu feed. Essas informações ajudam o Google a mostrar a ordem e a estrutura adequadas do seu conteúdo aos usuários e a identificar o conteúdo correto quando a consulta de um usuário é ambígua.
Selecione o tipo de conteúdo que você fornece:
Programa de TV
如果您是电视节目提供商,则需要在媒体目录 Feed 中添加 TVEpisode、TVSeason 和 TVSeries 实体类型。您可以通过过滤这些类型,在了解可用的实体类型部分中找到这些实体的定义。
确定关系
确保在它们之间建立以下关系:
partOfSeries 和 partOfSeason 属性将电视节目实体类型连接在一起。TVEpisode实体要求您提供partOfSeries属性,该属性用于指定剧集TVSeries实体的@id和name。"partOfSeries": { "@type": "TVSeries", "@id": "http://www.example.com/my_favorite_tv_show", "name": "My Favorite TV Show", },如果您的 Feed 包含电视节目季,则
TVSeason实体还需要您在partOfSeries属性中指定其TVSeries实体。TVEpisode实体要求您提供partOfSeason属性,该属性用于指定剧集TVSeason实体的@id和seasonNumber。"partOfSeason": { "@type": "TVSeason", "@id": "http://www.example.com/my_favorite_tv_show/s7", "seasonNumber": 7 },如果
TVEpisode实体在 Feed 中没有对应的TVSeason实体,请按以下步骤为TVEpisode实体提供partOfSeason.@id和partOfSeason.seasonNumber属性:- 获取其
partofSeries.@id并附加占位符查询字段(例如 ?season1),以创建唯一的partOfSeason.@id(例如 http://www.example.com/my_favorite_tv_show?season1)。 - 将
partOfSeason.seasonNumber设置为 1。
TVSeason实体重复使用现有的partOfSeason.@id,也可以将此占位符partOfSeason.@id替换为TVSeason实体的实际@id。- 获取其
示例
TVSeries
我最喜欢的电视节目
{
"@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
我最喜欢的电视节目(第 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
我最喜欢的电视节目(第 7 剧季)的第 3 剧集
{
"@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":{ … },
...
}
Rádio
Se você for um provedor de rádio, adicione o tipo de entidade RadioBroadcastService ao feed do catálogo de mídia. Você pode encontrar as definições dessas entidades na seção Entenda os tipos de entidade disponíveis filtrando por esse tipo.
Identificar as relações
Como há apenas um tipo de entidade para essas integrações, embora não haja relações explícitas que precisem ser estabelecidas, colete as seguintes informações para as entidades RadioBroadcastService:
description: a descrição da estação de rádio.broadcastDisplayName: o nome de exibição da estação de rádio.areaServed: a área em que a estação de rádio está disponível.callSign: o indicativo oficial da estação de rádio emitido pelo governo. Para estações de rádio da América do Norte, essa propriedade é obrigatória.broadcastFrequency: a especificação de frequência da estação de rádio.- Para estações de rádio AM/FM terrestres, essa propriedade é obrigatória.
- Para conteúdo somente de streaming on-line, o valor é definido como
INTERNET_STREAM.
broadcastAffiliateOf: a rede em que essa estação de rádio transmite programas. Se a estação de rádio não fizer parte de nenhuma afiliação, essa propriedade não será necessária.broadcaster: a organização que é proprietária e opera a estação de rádio.parentService: a estação de rádio mãe. Se a estação de rádio for um repetidor ou tradutor de outra estação, essa propriedade será obrigatória.
Exemplo
{
"@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úsica
Se você for um serviço de música, adicione os tipos de entidade MusicGroup, MusicAlbum e MusicRecording no feed do catálogo de mídia. Para encontrar as definições dessas entidades, filtre por esses tipos na seção Entenda os tipos de entidades disponíveis.
MusicGroup, MusicAlbum e MusicRecording permitem que seu app ou plataforma reproduza mais conteúdo de uma playlist (MusicPlaylist) depois que todo o conteúdo da entidade de semente é reproduzido. Confira o seguinte cenário:
- Uma entidade
MusicAlbumcontém uma lista de músicas do Álbum XYZ (uma entidade de semente). - Uma entidade
MusicPlaylistcontém uma playlist de músicas semelhantes às do Álbum XYZ. - A entidade
MusicAlbuminclui a entidadeMusicPlaylistcomo uma ação baseada em entidade.
Nessa configuração, depois que todas as músicas do Álbum XYZ forem tocadas, o app poderá continuar tocando músicas da playlist fornecida pela entidade MusicPlaylist.
Ação de entidade e ação iniciada por entidade
As ações de escuta são compatíveis com dois tipos de ações:
- Ação de entidade: toca um artista, álbum ou música específica (uma entidade de semente). Isso inclui
MusicGroup,MusicAlbumeMusicRecording. - Ação com base em entidade: toca conteúdo semelhante à entidade de origem. Isso inclui
MusicPlaylist.- Depois de concluir uma ação de entidade, seu app ou plataforma pode iniciar uma ação com base em entidade.
- Uma ação iniciada por entidade pode incluir a reprodução do conteúdo da entidade de origem.
Recomendamos que você inclua uma ação iniciada por entidade em todas as ações de entidade.
Identifique as relações
- Para
MusicGroup, se você fornecer uma ação baseada em entidade, identifique@idenamedoMusicPlaylistdela. - Para
MusicAlbumeMusicRecording, é necessário identificar a qualMusicGroupeles pertencem.- Identifique
@idenamedoMusicGroup. - Se você fornecer uma ação baseada em entidade, identifique
@idenamedoMusicPlaylistdela.
- Identifique
- Para
MusicPlaylist,- Se aplicável, identifique
genreque melhor representa o conteúdo na playlist. - Se a playlist for selecionada manualmente, identifique
numTracks.- A ausência de
numTracksinforma ao Google que a playlist é gerada automaticamente e não tem fim.
- A ausência de
- Se aplicável, identifique
Exemplo
MusicGroup
- Artista: Meu artista favorito
{
"@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":{ … },
},
...
}
MusicAlbum
- Álbum: Meu álbum favorito
- Artista: Meu artista favorito
{
"@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":{ … },
},
...
}
MusicRecording
- Música: My Favorite Song
- Artista: Meu artista favorito
{
"@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":{ … },
},
...
}
MusicPlaylist
- Uma playlist personalizada: "As melhores músicas pop dos anos 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 ao vivo
如果您是直播电视提供商,则需要在媒体目录 Feed 中添加 Organization、BroadcastService、CableOrSatelliteService 和 TelevisionChannel 实体类型,以表示您的频道阵容。您可能还需要提供 BroadcastEvent、TVSeries、TVEpisode、Movie 和 SportsEvent 实体来表示关联的 EPG(电子节目单)。您可以在了解可用的实体类型部分中找到这些实体的定义,只需按这些类型进行过滤即可。如需更详细的说明,您可以访问 直播电视频道页面。
表示直播电视频道的实体之间的关系
下图显示了 Organization、BroadcastService、CableOrSatelliteService 和 TelevisionChannel 实体的关系:
- 表示 Feed 提供方的
Organization(运营商)实体与CableOrSatelliteService服务的父组织通过CableOrSatelliteService实体上的provider属性相关联。 - 与
BroadcastService实体对应的Organization实体通过BroadcastService实体上的broadcastAffiliateOf属性进行连接。 TelevisionChannel实体使用inBroadcastLineup属性与CableOrSatelliteService实体(表示其所属的影音内容系列)相关联。TelevisionChannel实体通过providesBroadcastService属性与BroadcastService实体(即相应频道提供的节目)相关联。
强烈建议您浏览直播电视频道概念页面,了解如何建立 BroadcastService 与 Organization 实体之间的关系的具体示例。
频道与其节目指南 (EPG) 之间的关系
下图显示了 BroadcastEvent 实体如何与 Feed 中的其余实体相关联。
- 表示
BroadcastService的节目指南 (EPG) 的BroadcastEvent实体通过BroadcastEvent实体上的publishedOn属性与BroadcastService实体相关联。 BroadcastEvent实体还可以使用workPerformed属性连接到顶层TVEpisode、TVSeries、Movie实体。BroadcastEvent实体还可以使用broadcastOfEvent属性连接到顶级SportsEvent实体。- 对于在线直播的无频道活动,
BroadcastEvent实体使用workPerformed或broadcastOfEvent属性(具体取决于直播内容)与表示直播活动的实体相关联。在这种情况下,由于不需要连接到频道,因此不需要publishedOn属性。
示例
以下部分提供了各种观看操作使用情形的示例和代码段。
互联网上的全国性电视服务提供商
组织
一家虚构的互联网协议电视服务提供商 ExampleTV Digital Service (Organization) 通过互联网提供直播电视服务,其中包含以下两个频道:ExampleTV-Movie (Organization) 和 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"
}
BroadcastService
以下两个 BroadcastService 实体提供了虚构频道 ExampleTV-Movie 和 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"
}
]
}
CableOrSatelliteService
此 CableOrSatelliteService 描述了覆盖范围为全国的服务提供商 ExampleTV Digital Service:
{
"@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",
}
]
}
TelevisionChannel
以下 TelevisionChannel 实体表示 ExampleTV Digital Service IPTV 在频道 ExTV-Movie 上有 ExampleTV Movie 节目,在频道 ExTV-Comedy 上有 ExampleTV 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"
}
}
如需查看更多示例,请参阅直播电视示例部分。
电视频道上播放的电影
某部电影于 2019 年 7 月 12 日下午 5 点至 7 点在电视网络 Example TV (BroadcastService) 上播出。
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"
}
}
BroadcastService
{
"@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"
}
]
}
}
}
电影
{
"@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"
}
]
}
如需查看更多示例,请参阅直播电视活动示例部分。
在线直播的体育赛事
广播活动
{
"@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"
}
}
体育赛事
{
"@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"
}
]
}
如需查看更多示例,请参阅体育示例部分。