Rozpoznawanie relacji między typami elementów

Niektóre typy elementów wymagają ustanowienia relacji między treściami w pliku danych. Te informacje pomagają Google wyświetlać użytkownikom prawidłowe treści w odpowiedniej kolejności i strukturze oraz identyfikować właściwe treści, gdy zapytanie użytkownika jest niejednoznaczne.

Wybierz typ treści, które chcesz przesłać:

Jeśli jesteś dostawcą programów telewizyjnych, musisz dodać typy elementów TVEpisode, TVSeason i TVSeries w pliku danych katalogu multimediów. Definicje tych elementów znajdziesz w sekcji Poznawanie dostępnych typów elementów, filtrując według tych typów.

Określanie relacji

Upewnij się, że między tymi elementami istnieją następujące relacje:

Ilustracja: właściwości partOfSeriespartOfSeason łączą ze sobą typy jednostek serialu telewizyjnego.
  • Element TVEpisode wymaga podania właściwości partOfSeries, która określa @id i name elementu TVSeries odcinka.

    "partOfSeries": {
      "@type": "TVSeries",
      "@id": "http://www.example.com/my_favorite_tv_show",
      "name": "My Favorite TV Show",
    },
    
  • Jeśli plik danych zawiera sezony serialu, element TVSeason wymaga również określenia elementu TVSeries w przypadku właściwości partOfSeries.

  • Element TVEpisode wymaga podania właściwości partOfSeason, która określa @id i seasonNumber elementu TVSeason odcinka.

    "partOfSeason": {
      "@type": "TVSeason",
      "@id": "http://www.example.com/my_favorite_tv_show/s7",
      "seasonNumber": 7
    },
    

    Jeśli w pliku danych brak odpowiadającego obiektu TVEpisode, wykonaj te czynności, aby podać właściwości partOfSeason.@idpartOfSeason.seasonNumber obiektu TVEpisode:TVSeason

    • Weź jego partofSeries.@id i dołącz do niego zastępcze pole zapytania (np. ?season1), aby utworzyć unikalny partOfSeason.@id (np. http://www.example.com/my_favorite_tv_show?season1).
    • Ustaw wartość partOfSeason.seasonNumber na 1.
    Jeśli później zdecydujesz się podać sezony serialu w pliku danych, możesz ponownie użyć istniejącego partOfSeason.@id dla odpowiedniego elementu TVSeason lub zastąpić ten element zastępczy partOfSeason.@id rzeczywistym @id elementu TVSeason.

Przykład

Mój ulubiony program telewizyjny

{
  "@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":{  },
  ...
}

Mój ulubiony serial telewizyjny (sezon 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":{  },
  ...
}

Odcinek 3 programu Mój ulubiony serial telewizyjny (sezon 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":{  },
  ...
}

Jeśli jesteś dostawcą radia, musisz dodać typ elementu RadioBroadcastService w pliku danych z katalogiem multimediów. Definicje tych elementów znajdziesz w sekcji Poznanie dostępnych typów elementów, filtrując według tego typu.

Określanie relacji

Ponieważ w przypadku takich integracji istnieje tylko 1 typ elementu i nie ma żadnych relacji, które trzeba by utworzyć, pamiętaj, aby zebrać te informacje o elementach RadioBroadcastService:

  • description: opis stacji radiowej.
  • broadcastDisplayName: wyświetlana nazwa stacji radiowej.
  • areaServed: obszar, na którym stacja radiowa jest dostępna.
  • callSign: oficjalny nadany przez rząd znak wywoławczy stacji radiowej. W przypadku stacji radiowych w Ameryce Północnej ta właściwość jest wymagana.
  • broadcastFrequency: specyfikacja częstotliwości stacji radiowej.
    • Ta właściwość jest wymagana w przypadku naziemnych stacji radiowych AM/FM.
    • W przypadku treści dostępnych tylko w ramach strumieniowego przesyłania danych online wartość jest ustawiana na INTERNET_STREAM.
  • broadcastAffiliateOf: sieć, w której działa ta stacja radiowa. Jeśli stacja radiowa nie należy do żadnej organizacji, ta właściwość nie jest wymagana.
  • broadcaster: organizacja, która jest właścicielem stacji radiowej i ją prowadzi.
  • parentService: nadrzędna stacja radiowa. Jeśli stacja radiowa jest powtarzaczem lub tłumaczem innej stacji radiowej, ta usługa jest wymagana.

Przykład

{
  "@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": {  },
  
}

Jeśli jesteś dostawcą muzyki, musisz dodać typy elementów MusicGroup, MusicAlbum i MusicRecording do pliku danych katalogu multimediów. Definicje tych elementów znajdziesz w sekcji Poznawanie dostępnych typów elementów, filtrując według tych typów.

MusicGroup, MusicAlbum i MusicRecording umożliwiają odtwarzanie przez aplikację lub platformę większej ilości treści z playlisty (MusicPlaylist) po odtworzeniu wszystkich treści z elementu źródłowego. Przyjrzyjmy się temu scenariuszowi:

  • Element MusicAlbum zawiera listę utworów z albumu XYZ (element zasialający).
  • Encja MusicPlaylist zawiera playlistę utworów podobnych do tych z albumu XYZ.
  • Element MusicAlbum zawiera element MusicPlaylist jako działanie z elementem źródłowym.

W takim przypadku po odtworzeniu wszystkich utworów z albumu XYZ aplikacja może odtwarzać utwory z playlisty udostępnionej przez podmiot MusicPlaylist.

Działanie dotyczące elementu i działanie z elementem zainicjowane

Działania dotyczące słuchania obsługują 2 rodzaje działań:

  • Działanie związane z elementem: odtwarzanie konkretnego wykonawcy, albumu lub utworu (element zasialający). Obejmuje MusicGroup, MusicAlbum, MusicRecording.
  • Działanie z elementem wyjściowym: odtwarza treści podobne do elementu wyjściowego. Obejmuje to MusicPlaylist.
    • Po wykonaniu działania związanego z elementem aplikacja lub platforma może zainicjować działanie z elementem jako punktem wyjścia.
    • Działanie z podstawą w postaci elementu może obejmować odtwarzanie treści z elementu źródłowego.

Zalecamy uwzględnienie w każdej czynności dotyczącej elementu działania z elementem.

Określanie relacji

  • Jeśli w przypadku MusicGroup podasz działanie z elementem danych, określ @idname MusicPlaylist.
  • W przypadku pól MusicAlbumMusicRecording musisz określić, do których pól MusicGroup należą.
    • Określ @id i name jego MusicGroup.
    • Jeśli podasz działanie z użyciem sedna zawierającego element, określ @idname jego MusicPlaylist.
  • Dotyczy: MusicPlaylist
    • W razie potrzeby określ genre, który najlepiej opisuje treści na playliście.
    • Jeśli playlista została stworzona ręcznie, kliknij numTracks.
      • Brak wartości numTracks informuje Google, że playlista jest automatycznie wygenerowaną, niekończącą się playlistą.

Przykład

  • Wykonawca: Mój ulubiony wykonawca
{
  "@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: Mój ulubiony album
  • Wykonawca: Mój ulubiony wykonawca
{
  "@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":{  },
  },
  ...
}
  • Utwór: My Favorite Song
  • Wykonawca: Mój ulubiony wykonawca
{
  "@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":{  },
  },
  ...
}
  • Playlista niestandardowa: „Najpopularniejsze popowe piosenki z lat 2010–2019”
{
  "@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":{  },
  ...
}

Jeśli jesteś dostawcą telewizji na żywo, musisz dodać typy elementów Organization, BroadcastService, CableOrSatelliteService i TelevisionChannel w pliku danych katalogu multimediów, aby reprezentować swoją listę kanałów. Może być też konieczne podanie elementów BroadcastEvent, TVSeries, TVEpisode, Movie i SportsEvent, aby reprezentować powiązany EPG (elektroniczny przewodnik programowy). Definicje tych elementów znajdziesz w sekcji Poznawanie dostępnych typów elementów, filtrując według tych typów. Więcej informacji znajdziesz na stronie Kanały telewizji na żywo.

Relacje między elementami reprezentującymi kanały telewizji na żywo

Ilustracja poniżej pokazuje, jak elementy Organization, BroadcastService, CableOrSatelliteServiceTelevisionChannel są powiązane:

Połączenia między typami obiektów kanału telewizji na żywo
Rysunek: powiązania między typami obiektów kanału telewizji na żywo

  • Element Organization (operator) reprezentujący dostawcę pliku danych oraz nadrzędną organizację usługi CableOrSatelliteService są połączone za pomocą właściwości provider w obiekcie CableOrSatelliteService.
  • Elementy Organization odpowiadające elementom BroadcastService są połączone za pomocą właściwości broadcastAffiliateOf elementu BroadcastService.
  • Elementy TelevisionChannel łączą się z elementem CableOrSatelliteService, który reprezentuje ich serię, za pomocą właściwości inBroadcastLineup.
  • Elementy TelevisionChannel łączą się z elementem BroadcastService, który udostępnia programy na tym kanale, za pomocą właściwości providesBroadcastService.

Zalecamy zapoznanie się ze stroną koncepcji kanałów telewizyjnych na żywo, aby poznać konkretne przykłady ustalania relacji między elementami BroadcastService i Organization.

relacje między kanałami a ich przewodnikiem po programach (EPG);

Rysunek poniżej pokazuje, jak element BroadcastEvent jest połączony z pozostałymi elementami w pliku danych.

Połączenia między typami encji wydarzenia telewizji na żywo
Rysunek: połączenia między typami obiektów wydarzenia transmisji na żywo w TV.

  • Elementy BroadcastEvent, które reprezentują przewodnik po programach (EPG) BroadcastService, są połączone z elementami BroadcastService za pomocą właściwości publishedOn elementu BroadcastEvent.
  • Elementy BroadcastEvent można też łączyć z elementami najwyższego poziomu TVEpisode, TVSeriesMovie za pomocą właściwości workPerformed.
  • Elementy BroadcastEvent można też łączyć z elementami najwyższego poziomu SportsEvent za pomocą właściwości broadcastOfEvent.
  • W przypadku wydarzeń bez kanału transmitowanych online elementy BroadcastEvent łączą się z elementem reprezentującym wydarzenie na żywo za pomocą właściwości workPerformed lub broadcastOfEvent, w zależności od tego, co jest transmitowane na żywo. W takich przypadkach właściwość publishedOn nie jest wymagana, ponieważ nie jest konieczne połączenie z kanałem.

Przykłady

W tej sekcji znajdziesz przykłady i fragmenty kodu dla różnych przypadków użycia akcji po obejrzeniu filmu.

Krajowy dostawca usług telewizyjnych w internecie

Wymyślony dostawca usług telewizji internetowej ExampleTV Digital Service (Organization) oferuje usługę telewizji na żywo w Internecie, która obejmuje 2 kanały: ExampleTV-Movie (Organization) i 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"
}

Te 2 podmioty BroadcastService podają szczegóły dotyczące linków bezpośrednich i wymagań dostępu do fikcyjnych kanałów ExampleTV-MovieExampleTV-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"
    }
  ]
}

Ten CableOrSatelliteService opisuje dostawcę usług ExampleTV Digital Service, który ma zasięg krajowy:

{
  "@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",
    }
  ]
}

Te elementy TelevisionChannel wskazują, że ExampleTV Digital Service IPTV ma program ExampleTV Movie na kanale ExTV-Movie i program ExampleTV Comedy na kanale 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"
  }
}

Więcej przykładów znajdziesz w sekcji Przykłady dotyczące telewizji na żywo.

Transmisja filmu na kanale telewizyjnym

12 lipca 2019 r. w telewizji Example TV (BroadcastService) między 17:00 a 19:00 emitowany jest film.

{
  "@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"
  }
}
{
  "@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"
    }
  ]
}

Więcej przykładów znajdziesz w sekcji Przykłady transmisji na żywo.

transmisja na żywo meczu sportowego,


{
  "@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"
    }
  ]
}

Więcej przykładów znajdziesz w sekcji Przykłady dotyczące sportu.