Wydarzenia sportowe – modelowanie, sprawdzone metody i przykładowy plik danych

Definicja

SportsEvent to typ elementu reprezentujący mecz sportowy lub pełną powtórkę meczu sportowego.

Co można modelować jako SportsEvent? mecz,
Czego nie można modelować jako wydarzenia sportowego?

krótkie filmy, klipy lub treści dodatkowe; Oto lista:

  • losowe podsumowanie lub powtórka krótkich klipów;
  • podgląd gry,
  • Najciekawsze momenty gry
  • Wpadki z gier
  • Klipy z wywiadami z zawodnikami
  • Filmy zza kulis
  • recenzje gier (generowane przez użytkowników lub inne),
  • Losowe krótkie klipy z gry

Jak postępować z takimi treściami dodatkowymi?

Typowe przypadki użycia SportsEvents

S.No. Opis Wymagane encje
Przypadek 1

Muszę utworzyć model elementu SportsEvent, który jest częścią mojego katalogu telewizji na żywo i jest transmitowany online.

Mecz jest transmitowany przez internet i nie jest powiązany z żadnym kanałem.

SportsEvent reprezentujący grę.

BroadcastEvent, który reprezentuje transmisję meczu.

Przypadek 2 Muszę utworzyć model elementu SportsEvent, który jest częścią mojego katalogu telewizji na żywo i jest transmitowany online na kanale.

SportsEvent reprezentujący grę.

BroadcastEvent reprezentujący transmisję meczu.

BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService reprezentujące kanał i lineup.

Przypadek 3 Kombinacje 2 poprzednich przypadków. Jeśli połączysz wcześniejsze przypadki użycia, podaj wszystkie typy elementów wymienione w odpowiedniej kolumnie „Wymagane elementy”.

Sprawdzone metody i informacje o kilku przeprowadzanych przez nas testach

Podczas modelowania wydarzeń sportowych i ich transmisji obowiązują te wytyczne i kontrole jakości.

Zastosuj te reguły we wszystkich integracjach SportsEvent:

  • Umieść wszystkie precyzyjne linki do treści sportowych na stronie SportsEvent.potentialAction: precyzyjne linki na poziomie meczu (WatchAction) – zarówno do transmisji na żywo bez kanału, jak i do powtórek wideo na żądanie – muszą znajdować się wyłącznie na stronie podmiotu SportsEvent (SportsEvent.potentialAction). Nigdy nie umieszczaj elementu potentialAction na stronie BroadcastEvent, która odwołuje się do elementu SportsEvent. (W przypadku transmisji na kanale linearnym bez precyzyjnego linku do wydarzenia podaj precyzyjny link do kanału w polu BroadcastService.potentialAction). Jeśli mecz ma wiele transmisji (np. kanały regionalne, transmisje domowe lub wyjazdowe, wiele języków lub oddzielne adresy URL transmisji na żywo i powtórek wideo na żądanie), podaj tablicę obiektów WatchAction w polu SportsEvent.potentialAction.
  • Okno okresu obserwacji przed rozpoczęciem (availabilityStarts): ustaw SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts co najmniej 14 dni przed SportsEvent.startDate (availabilityStarts <= SportsEvent.startDate - 14 days), aby kafelki nadchodzących meczów i powiadomienia o transmisji mogły pojawiać się z wyprzedzeniem. Nie musisz dostarczać elementu kanału z 14-dniowym wyprzedzeniem – dane wydarzenia można dostarczyć bliżej dnia meczu, o ile sygnatura czasowa availabilityStarts jest ustawiona co najmniej 14 dni przed SportsEvent.startDate.
  • Bufor na dogrywkę (availabilityEnds): ustaw SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds po SportsEvent.endDate z buforem wynoszącym co najmniej 2–3 godziny (availabilityEnds >= SportsEvent.endDate + 2 to 3 hours lub do końca okna odtwarzania filmu na żądanie), aby precyzyjny link nie wygasł podczas dogrywki na żywo lub relacji po meczu.
  • Wymagania dotyczące @id i url:
    • Użyj różnych wartości @id: wartość BroadcastEvent.@id musi się różnić od wartości SportsEvent.@id.
    • Pomiń url: nie uwzględniaj właściwości url w elementach BroadcastEvent ani SportsEvent.
S.No. Wymagane encje Wytyczne
Przypadek 1

Muszę utworzyć model elementu SportsEvent, który jest częścią mojego katalogu telewizji na żywo i jest transmitowany online.

Gra jest transmitowana przez internet i nie jest powiązana z żadnym kanałem.

Wymagane encje

  • SportsEvent reprezentujący grę
  • BroadcastEvent reprezentujący transmisję meczu

Wytyczne dotyczące modelowania

Podprzypadek 1. Mecz jest dostępny tylko na żywo (nie jest częścią katalogu wideo na żądanie)

  • Podaj element BroadcastEvent, aby udostępnić harmonogram transmisji, odwołując się do meczu za pomocą BroadcastEvent.broadcastOfEvent i określając kraj transmisji w BroadcastEvent.location.
  • Podaj precyzyjny link do transmisji na żywo w encji SportsEvent, używając SportsEvent.potentialAction (skonfigurowanego z 14-dniowym okresem przed rozpoczęciem availabilityStarts i 2–3-godzinnym buforem po zakończeniu availabilityEnds).
  • Nie podawaj tych właściwości: BroadcastEvent.potentialAction, BroadcastEvent.url ani SportsEvent.url.
  • Nie podawaj wartości BroadcastEvent.publishedOn, ponieważ mecz jest transmitowany online bez kanału linearnego.

Przypadek 2: mecz jest dostępny na żywo i w ramach katalogu wideo na żądanie (np. gdy pełne powtórki meczu są dostępne na żądanie)

  • Podaj element BroadcastEvent, aby udostępnić harmonogram każdej transmisji (odwołując się do BroadcastEvent.broadcastOfEvent i określając BroadcastEvent.location).
  • Skonsoliduj odtwarzanie transmisji na żywo i filmów na żądanie w obiekcie SportsEvent.potentialAction – rozszerzając obiekt availabilityEnds do końca okna filmu na żądanie, jeśli adres URL i uprawnienia są identyczne, lub podając wiele obiektów WatchAction w obiekcie SportsEvent.potentialAction z odpowiednimi oknami actionAccessibilityRequirement.
  • Nie podawaj tych właściwości: BroadcastEvent.potentialAction, BroadcastEvent.url, SportsEvent.url ani BroadcastEvent.publishedOn.

Kontrole jakości do przeprowadzenia

  • Ustaw BroadcastEvent.isLiveBroadcast na wartość logiczną true (bez cudzysłowu), gdy mecz jest transmitowany na żywo. W przypadku zaplanowanej transmisji powtórki ustaw wartość false.
  • W przypadku podmiotów BroadcastEvent, które nie są aktywne, wartość BroadcastEvent.startDate nie powinna być wcześniejsza niż SportsEvent.startDate.
  • Uwzględnij parentOrganization (z adresem URL sameAs w Wikipedii) zarówno w homeTeam, jak i awayTeam.
Przypadek 2

Chcę utworzyć model dla SportsEvent, który jest częścią mojego katalogu telewizji na żywo i jest transmitowany online na kanale.

Wymagane encje

  • SportsEvent reprezentujący grę.
  • BroadcastEvent, który reprezentuje transmisję meczu.
  • BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService encje reprezentujące kanał i lineup.

Wytyczne dotyczące modelowania

Przypadek 1: mecz jest dostępny tylko na żywo na kanale linearnym (nie jest częścią katalogu wideo na żądanie)

  • Podaj element BroadcastEvent, aby udostępnić harmonogram transmisji, przy czym BroadcastEvent.publishedOn wskazuje element BroadcastService, BroadcastEvent.broadcastOfEvent wskazuje element SportsEvent, a BroadcastEvent.location określa kraj transmisji.
  • Podaj encje BroadcastService, Organization, TelevisionChannel i CableOrSatelliteService, aby reprezentować kanał i lineup, z precyzyjnym linkiem do kanału w BroadcastService.potentialAction.
  • Nigdy nie podawaj BroadcastEvent.potentialAction, BroadcastEvent.url ani SportsEvent.url.
  • Jeśli obsługujesz też bezpośredni precyzyjny link do gry, podaj go w polu SportsEvent.potentialAction. Jeśli odtwarzanie jest możliwe tylko za pomocą precyzyjnego linku do kanału linearnego w polu BroadcastService.potentialAction, pomiń pole SportsEvent.potentialAction.

Przypadek 2: mecz jest dostępny na żywo na kanale i w ramach katalogu wideo na żądanie

  • Podaj encję BroadcastEvent (z publishedOn, broadcastOfEvent i location), aby udostępnić harmonogram transmisji kanału.
  • Podaj encje BroadcastService, Organization, TelevisionChannel i CableOrSatelliteService z precyzyjnym linkiem do kanału w BroadcastService.potentialAction.
  • Nigdy nie podawaj BroadcastEvent.potentialAction, BroadcastEvent.url ani SportsEvent.url.
  • Podaj SportsEvent.potentialAction w encji SportsEvent dla okna odtwarzania na poziomie wydarzenia / wideo na żądanie.

Kontrole jakości do przeprowadzenia

  • Ustaw BroadcastEvent.isLiveBroadcast na wartość logiczną true (bez cudzysłowu), gdy mecz jest transmitowany na żywo, i false w przypadku powtórki meczu.
  • W przypadku podmiotów BroadcastEvent, które nie są aktywne, wartość BroadcastEvent.startDate nie powinna być wcześniejsza niż SportsEvent.startDate.
  • Uwzględnij parentOrganization (z adresem URL sameAs w Wikipedii) zarówno w homeTeam, jak i awayTeam.

Przykłady

Przypadek 1. Wydarzenie sportowe, które jest częścią katalogu telewizji na żywo i jest transmitowane online

Transmitowane wydarzenie

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live_event/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": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": true,
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  },
  "location": {
    "@type": "Country",
    "name": "US"
  }
}

Wydarzenie sportowe

{
  "@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 at 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": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "John Doe"
      }
    ]
  },
  "awayTeam": {
    "@type": "SportsTeam",
    "name": "Team A",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "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": "EP000194303282"
    }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://www.example.com/pbl_finals_game_6?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": "2019-09-01T10:00-08:00",
      "availabilityEnds": "2019-09-16T16:00-08:00",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Przypadek 2. Wydarzenie sportowe, które jest częścią katalogu telewizji na żywo i jest transmitowane online na kanale

Transmitowane wydarzenie

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live_event/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": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": true,
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  },
  "location": {
    "@type": "Country",
    "name": "US"
  }
}

Wydarzenie sportowe

{
  "@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 at 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": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "John Doe"
      }
    ]
  },
  "awayTeam": {
    "@type": "SportsTeam",
    "name": "Team A",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "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": "EP000194303282"
    }
  ]
}

BroadcastService, CableOrSatelliteService, TelevisionChannel i Organization, zgodnie z definicją w sekcji Kanał telewizji na żywo w sekcji Pojęcia.

Jak postępować z treściami dodatkowymi?

Co kwalifikuje się jako treści dodatkowe?
  • losowe podsumowanie lub powtórka krótkich klipów;
  • podgląd gry,
  • Najciekawsze momenty gry
  • Wpadki z gier
  • Klipy z wywiadami z zawodnikami
  • Filmy zza kulis
  • recenzje gier (generowane przez użytkowników lub inne),
  • Inne losowe krótkie klipy z gry
S.No. Przypadek użycia Wytyczne dotyczące modelowania
Przypadek 1 W moim katalogu wideo na żądanie znajdują się treści dodatkowe.
  • Nie jest to obsługiwane i nie można podać tej wartości w pliku danych.
  • ViTA może jednak służyć do dostarczania podzbioru tych treści. Aby dowiedzieć się więcej o ViTA, skontaktuj się z przedstawicielem Google.
Przypadek 2 W moim katalogu treści na żywo znajdują się treści dodatkowe

Podprzypadek 1. Treści są dostępne do transmisji na żywo w internecie

  • Podaj encję BroadcastEvent, aby udostępnić harmonogram transmisji.
  • Podaj precyzyjny link do treści dodatkowych, używając właściwości BroadcastEvent.potentialAction (ten wyjątek dotyczy tylko samodzielnych treści dodatkowych na żywo, ponieważ w pliku danych nie ma encji SportsEvent).
  • Dodaj powiązane metadane (do klipu) bezpośrednio do BroadcastEvent . Obrazy możesz na przykład dodawać za pomocą właściwości BroadcastEvent.image . Kategorie wiekowe można dodawać za pomocą właściwości BroadcastEvent.contentRating .
  • Ten typ treści nie jest SportsEvent, więc plik danych nie może zawierać elementu SportsEvent. W związku z tym nie należy podawać właściwości broadcastOfEvent w BroadcastEvent .
  • Ponieważ nie jest on powiązany z kanałem, nie podawaj właściwości publishedOn w elemencie BroadcastEvent.

Przypadek 2: treści są dostępne do transmisji na żywo w internecie na kanale

  • Aby udostępnić harmonogram transmisji, musisz podać element BroadcastEvent.
  • Aby reprezentować kanał i ofertę dostawcy, należy podać encje BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService.
  • Precyzyjny link do gry musi być po prostu precyzyjnym linkiem BroadcastService , reprezentowanym przez właściwość BroadcastService.potentialAction , którą należy podać.
  • Nie wolno podawać właściwości BroadcastEvent.potentialAction.
  • Wszelkie powiązane metadane (klipu) muszą być dodane bezpośrednio do elementu BroadcastEvent. Obrazy można na przykład dodawać za pomocą właściwości BroadcastEvent.image. Kategorie wiekowe można dodawać za pomocą właściwości BroadcastEvent.contentRating.
  • Ten typ treści nie jest SportsEvent, więc plik danych nie może zawierać elementu SportsEvent. W związku z tym nie należy podawać właściwości broadcastOfEvent w BroadcastEvent.
  • Ponieważ jest on powiązany z kanałem, podaj właściwość publishedOn w BroadcastEvent.
Przypadek 3 Mam treści dodatkowe dostępne zarówno w katalogu wideo na żądanie, jak i telewizji na żywo

Biorąc pod uwagę, że treści dodatkowe dotyczące sportu wideo na żądanie nie są obecnie akceptowane w kanale, jest to podobne do przypadku 2. i postępuj zgodnie z instrukcjami.

Najczęstsze pytania

P: Gdzie znajdę specyfikacje powiązane z wymienionymi wcześniej elementami?

O: Wymagane specyfikacje znajdziesz tutaj.

Ogólna dokumentacja Link
SportsEvent Link
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Link
BroadcastEvent Link

P: Czy jest dostępny bardziej szczegółowy dokument, który wyjaśnia, jak modelować kanały i lineupy telewizji na żywo?

O: Tak, więcej informacji znajdziesz w sekcji Kanał telewizji na żywo w części Pojęcia. Jeśli nie możesz wyświetlić dokumentu, poproś o uprawnienia do wyświetlania.

P: Czy ViTA obsługuje też pełne transmisje na żywo i pełne powtórki meczów?

O: ViTA obsługuje metadane dotyczące pełnych transmisji na żywo i powtórek meczów ligowych (oraz podzbioru treści dodatkowych).

  • W przypadku partnerów, którzy mają już działający kanał działań związanych z multimediami w Google lub oferują wideo na żądanie bądź telewizję na żywo, Google wymaga, aby kanał został rozszerzony i obejmował również obsługiwane typy SportsEvent.

    • W krótkiej perspektywie partnerzy mogą używać ViTA do przetwarzania treści dodatkowych. W dłuższej perspektywie planujemy wprowadzić obsługę wszystkich typów treści w pliku danych.
  • Dla partnerów, którzy nie oferują wideo na żądanie ani telewizji na żywo, ale udostępniają tylko treści sportowe związane z ligą i powiązane treści dodatkowe, ViTA jest świetną opcją na początek. Aby dowiedzieć się więcej o ViTA, skontaktuj się z przedstawicielem Google.