SportsEvents - Modellazione, best practice e feed di esempio

Definizione

Un SportsEvent è un tipo di entità che rappresenta un evento sportivo o una replica completa di un evento sportivo.

Cosa può essere modellato come SportsEvent? Un evento sportivo
Cosa non può essere modellato come SportsEvent?

Qualsiasi contenuto nel formato breve, clip o contenuto extra. Ecco l'elenco:

  • Riepilogo casuale o riproduzione di brevi clip
  • Anteprime del gioco
  • Momenti salienti della partita
  • Errori di gioco
  • Clip di interviste ai giocatori
  • Video dei dietro le quinte
  • Recensioni di giochi (generate dagli utenti o di altro tipo)
  • Clip brevi casuali del gioco

Come faccio a gestire questi contenuti extra?

Casi d'uso comuni per SportsEvent

S.No. Descrizione Entità obbligatorie
Caso 1

Devo modellare un SportsEvent che fa parte del mio catalogo di TV in diretta e viene trasmesso in streaming online.

La partita viene trasmessa in streaming su internet e non è collegata ad alcun canale.

SportsEvent che rappresenta il gioco.

BroadcastEvent che rappresenta la trasmissione della partita.

Caso 2 Devo modellare un SportsEvent che fa parte del mio catalogo di TV in diretta e viene trasmesso in streaming online su un canale.

SportsEvent che rappresenta il gioco.

BroadcastEvent che rappresenta la trasmissione della partita.

BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService entità che rappresentano il canale e la selezione.

Caso 3 Combinazioni dei due casi precedenti. Se combini i casi d'uso precedenti, fornisci tutti i tipi di entità elencati nella colonna "Entità richieste" corrispondente.

Best practice e approfondimenti su alcuni controlli che eseguiamo

Le seguenti linee guida e i seguenti controlli di qualità si applicano alla modellazione degli eventi sportivi e delle relative trasmissioni.

Applica le seguenti regole a tutte le integrazioni di SportsEvent:

  • Inserisci tutti i deep link sportivi su SportsEvent.potentialAction: i deep link a livello di partita (WatchAction), sia per i live streaming senza canali sia per le repliche di video on demand, devono risiedere esclusivamente nell'entità SportsEvent (SportsEvent.potentialAction). Non inserire mai potentialAction su un BroadcastEvent che fa riferimento a un SportsEvent. (Per le trasmissioni di canali lineari senza un deep link specifico per l'evento, fornisci il deep link del canale su BroadcastService.potentialAction). Se una partita ha più stream (ad esempio, feed regionali, trasmissioni in casa o in trasferta, più lingue o URL di replay live e video on demand separati), fornisci un array di oggetti WatchAction in SportsEvent.potentialAction.
  • Finestra mobile pre-roll (availabilityStarts): imposta SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts almeno 14 giorni prima di SportsEvent.startDate (availabilityStarts <= SportsEvent.startDate - 14 days) in modo che i riquadri delle partite imminenti e le notifiche di sintonizzazione possano essere visualizzati in anticipo. Non è necessario fornire l'entità del feed 14 giorni prima: i dati sugli eventi possono essere forniti più vicino al giorno della partita, purché il timestamp availabilityStarts sia impostato almeno 14 giorni prima di SportsEvent.startDate.
  • Buffer per i tempi supplementari (availabilityEnds): imposta SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds dopo SportsEvent.endDate con un buffer di almeno 2-3 ore (availabilityEnds >= SportsEvent.endDate + 2 to 3 hours o fino alla fine della finestra di replica del video on demand) in modo che il deep link non scada durante i tempi supplementari in diretta o la copertura post-partita.
  • Requisiti di @id e url:
    • Utilizza valori @id distinti: BroadcastEvent.@id deve essere diverso da SportsEvent.@id.
    • Ometti url: non includere una proprietà url nelle entità BroadcastEvent o SportsEvent.
S.No. Entità obbligatorie Linee guida
Caso 1

Devo modellare un SportsEvent che fa parte del mio catalogo di TV in diretta e viene trasmesso in streaming online.

La partita viene trasmessa in streaming su internet e non è collegata a nessun canale.

Entità obbligatorie

  • SportsEvent che rappresenta il gioco
  • BroadcastEvent che rappresenta la trasmissione della partita

Linee guida per la modellazione

Sottocaso 1: la partita è disponibile solo in diretta (e non fa parte del catalogo di video on demand)

  • Fornisci l'entità BroadcastEvent per condividere la programmazione della trasmissione, facendo riferimento alla partita con BroadcastEvent.broadcastOfEvent e specificando il paese di trasmissione in BroadcastEvent.location.
  • Fornisci il deep link del live streaming nell'entità SportsEvent utilizzando SportsEvent.potentialAction (configurato con il pre-roll di 14 giorni availabilityStarts e il buffer di tempo extra di 2-3 ore availabilityEnds).
  • Non fornire BroadcastEvent.potentialAction, BroadcastEvent.url o SportsEvent.url.
  • Non fornire BroadcastEvent.publishedOn perché la partita viene trasmessa in streaming online senza un canale lineare.

Sottocaso 2: la partita è disponibile dal vivo e come parte del catalogo di video on demand (ad esempio, quando i replay completi della partita rimangono disponibili on demand)

  • Fornisci l'entità BroadcastEvent per condividere la programmazione di ogni trasmissione (facendo riferimento a BroadcastEvent.broadcastOfEvent e specificando BroadcastEvent.location).
  • Consolida la riproduzione di video in diretta e on demand su SportsEvent.potentialAction, estendendo availabilityEnds fino alla fine della finestra di video on demand se l'URL e i diritti sono identici o fornendo più oggetti WatchAction in SportsEvent.potentialAction con le rispettive finestre actionAccessibilityRequirement.
  • Non fornire BroadcastEvent.potentialAction, BroadcastEvent.url, SportsEvent.url o BroadcastEvent.publishedOn.

Controlli di qualità da eseguire

  • Imposta BroadcastEvent.isLiveBroadcast sul valore booleano true (senza virgolette) quando la partita viene trasmessa in diretta. Impostalo su false per una trasmissione di replica programmata.
  • Per le entità BroadcastEvent non pubblicate, BroadcastEvent.startDate non deve essere precedente a SportsEvent.startDate.
  • Includi parentOrganization (con un URL di Wikipedia sameAs) sia su homeTeam sia su awayTeam.
Caso 2

Devo modellare un SportsEvent che fa parte del mio catalogo di TV in diretta e viene trasmesso in streaming online su un canale.

Entità obbligatorie

  • SportsEvent che rappresenta il gioco.
  • BroadcastEvent che rappresenta la trasmissione della partita.
  • BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService entità che rappresentano il canale e la selezione.

Linee guida per la modellazione

Sottocaso 1: la partita è disponibile solo in diretta sul canale lineare (e non fa parte del catalogo di video on demand)

  • Fornisci l'entità BroadcastEvent per condividere la programmazione della trasmissione, con BroadcastEvent.publishedOn che rimanda all'entità BroadcastService, BroadcastEvent.broadcastOfEvent che rimanda all'entità SportsEvent e BroadcastEvent.location che specifica il paese di trasmissione.
  • Fornisci le entità BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService per rappresentare il canale e la selezione, con il deep link del canale su BroadcastService.potentialAction.
  • Non fornire mai BroadcastEvent.potentialAction, BroadcastEvent.url o SportsEvent.url.
  • Se supporti anche un deep link diretto specifico per la partita, forniscilo in SportsEvent.potentialAction; se la riproduzione è disponibile solo tramite il deep link del canale lineare in BroadcastService.potentialAction, ometti SportsEvent.potentialAction.

Sottocaso 2: la partita è disponibile in diretta su un canale e come parte del catalogo di video on demand

  • Fornisci l'entità BroadcastEvent (con publishedOn, broadcastOfEvent e location) per condividere la programmazione delle trasmissioni del canale.
  • Fornisci le entità BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService con il deep link del canale su BroadcastService.potentialAction.
  • Non fornire mai BroadcastEvent.potentialAction, BroadcastEvent.url o SportsEvent.url.
  • Fornisci SportsEvent.potentialAction nell'entità SportsEvent per la finestra di riproduzione a livello di evento/video on demand.

Controlli di qualità da eseguire

  • Imposta BroadcastEvent.isLiveBroadcast sul valore booleano true (senza virgolette) quando la partita è in diretta e false per la replica di una partita.
  • Per le entità BroadcastEvent non pubblicate, BroadcastEvent.startDate non deve essere precedente a SportsEvent.startDate.
  • Includi parentOrganization (con un URL di Wikipedia sameAs) sia su homeTeam sia su awayTeam.

Esempi

Caso 1: un evento sportivo che fa parte di un catalogo di TV in diretta e viene trasmesso in streaming online

Evento di trasmissione

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

Evento sportivo

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

Caso 2: un evento sportivo che fa parte di un catalogo di TV in diretta e viene trasmesso in streaming online su un canale

Evento di trasmissione

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

Evento sportivo

{
  "@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 ed Organization entità come definite nella sezione Canale TV in diretta in Concetti.

Come faccio a gestire i contenuti extra?

Cosa sono i contenuti extra?
  • Riepilogo casuale o riproduzione di brevi clip
  • Anteprime del gioco
  • Momenti salienti della partita
  • Errori di gioco
  • Clip di interviste ai giocatori
  • Video dei dietro le quinte
  • Recensioni di giochi (generate dagli utenti o di altro tipo)
  • Altri brevi clip casuali del gioco
S.No. Caso d'uso Linee guida per la modellazione
Caso 1 Ho contenuti extra nel mio catalogo di video on demand.
  • Questo non è supportato e non può essere fornito nel feed.
  • ViTA può essere utilizzato per fornire un sottoinsieme di questi contenuti. Contatta il tuo rappresentante di Google per scoprire di più su ViTA.
Caso 2 Ho contenuti extra nel mio catalogo live

Sottocaso 1: i contenuti sono disponibili per lo streaming live su internet

  • Fornisci l'entità BroadcastEvent per condividere la programmazione della trasmissione.
  • Fornisci il deep link dei contenuti extra utilizzando la proprietà BroadcastEvent.potentialAction (questa eccezione si applica solo ai contenuti extra live autonomi perché nel feed non è presente l'entità SportsEvent).
  • Aggiungi eventuali metadati associati (al clip) direttamente a BroadcastEvent . Ad esempio, le immagini possono essere aggiunte utilizzando la proprietà BroadcastEvent.image . Le classificazioni per età possono essere aggiunte utilizzando la proprietà BroadcastEvent.contentRating .
  • Poiché questo tipo di contenuti non è un SportsEvent, il feed non deve contenere un'entità SportsEvent. Pertanto, la proprietà broadcastOfEvent su BroadcastEvent non deve essere fornita.
  • Poiché non è collegato a un canale, non fornire la proprietà publishedOn su BroadcastEvent.

Sottocaso 2: i contenuti sono disponibili per lo streaming live su internet su un canale

  • L'entità BroadcastEvent deve essere fornita per condividere la programmazione della trasmissione.
  • Le entità BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService devono essere fornite per rappresentare il canale e la selezione del fornitore.
  • Il deep link al gioco deve essere semplicemente il deep link BroadcastService , rappresentato dalla proprietà BroadcastService.potentialAction , che deve essere fornita.
  • La proprietà BroadcastEvent.potentialAction non deve essere fornita.
  • Tutti i metadati associati (al clip) devono essere aggiunti direttamente a BroadcastEvent. Ad esempio, le immagini possono essere aggiunte utilizzando la proprietà BroadcastEvent.image. Le classificazioni per età possono essere aggiunte utilizzando la proprietà BroadcastEvent.contentRating.
  • Poiché questo tipo di contenuti non è un SportsEvent, il feed non deve contenere un'entità SportsEvent. Pertanto, la proprietà broadcastOfEvent su BroadcastEvent non deve essere fornita.
  • Poiché è associato a un canale, fornisci la proprietà publishedOn su BroadcastEvent.
Caso 3 Ho contenuti extra disponibili sia nel catalogo di video on demand sia in quello di TV in diretta

Dato che i contenuti extra di sport video on demand non sono accettati nel feed oggi, questo caso è simile al caso 2. Segui le istruzioni.

Domande frequenti

D: Dove posso trovare le specifiche associate alle entità menzionate in precedenza?

R: Puoi trovare le specifiche richieste qui.

Documentazione generale Link
SportsEvent Link
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Link
BroadcastEvent Link

D: Esiste un documento più dettagliato che spiega come modellare i canali e le selezioni di TV in diretta?

R: Sì, puoi trovare maggiori dettagli nella sezione Canale TV in diretta in Concetti. Se non riesci a visualizzare il documento, richiedi l'accesso in visualizzazione.

D: ViTA supporta anche le partite live complete e i replay delle partite complete?

R: ViTA supporta i metadati relativi alle partite in diretta complete e alle repliche delle partite complete basate sul campionato (oltre a un sottoinsieme di contenuti extra).

  • Per i partner che hanno già un feed Azioni multimediali funzionale con Google o che offrono video on demand o TV in diretta, Google richiede che il feed venga ampliato e includa anche i tipi di SportsEvent supportati.

    • A breve termine, i partner possono utilizzare ViTA per l'importazione di contenuti extra. Il supporto di tutti i tipi di contenuti tramite il feed dovrebbe essere implementato nel lungo termine.
  • Per i partner che non offrono video on demand o TV in diretta, ma solo sport basati su campionati e contenuti extra correlati, ViTA è un'ottima opzione per iniziare. Contatta il tuo rappresentante di Google per scoprire di più su ViTA.