SportsEvents: modelagem, práticas recomendadas e exemplo de feed

Definição

Um SportsEvent é um tipo de entidade que representa um jogo de esportes ou uma reprodução completa de um jogo esportivo.

O que pode ser definido como um SportsEvent? Um jogo de esportes
O que não pode ser modelado como SportsEvent?

Qualquer formato curto, conteúdo de clipe ou conteúdo extra. Confira a lista:

  • Recapitulação aleatória ou repetição de clipes curtos
  • Prévias do jogo
  • Destaques do jogo
  • Erros de gravação de jogos
  • Clipes das entrevistas com os jogadores
  • Vídeos dos bastidores
  • Avaliações de jogos (geradas pelo usuário ou não)
  • Clipes curtos aleatórios do jogo

Como lidar com esse conteúdo extra?

Casos de uso comuns de SportsEvents

S.No. Descrição Entidades obrigatórias
Caso 1 Preciso modelar um SportsEvent que faz parte do meu catálogo de vídeo on demand. SportsEvent que representa o jogo.
Caso 2

Preciso modelar um SportsEvent que faz parte do meu catálogo de TV ao vivo e transmissões on-line

O jogo é transmitido pela Internet e não está conectado a nenhum canal.

SportsEvent que representa o jogo.

BroadcastEvent que representa a transmissão do jogo.

Caso 3 Preciso modelar um SportsEvent que faz parte do meu catálogo de TV ao vivo e é transmitido on-line em um canal.

SportsEvent que representa o jogo.

Broadcast que representa a transmissão do jogo.

Entidades BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService que representam o canal e a lineup.

Caso 4 Combinações dos três casos anteriores. Se você combinar um subconjunto dos casos de uso anteriores, será necessário fornecer os tipos de entidade na coluna "Entidades necessárias" correspondente.

Práticas recomendadas e insights sobre algumas verificações que fazemos

Número de série Entidades obrigatórias Diretrizes
Caso 1

Preciso modelar um SportsEvent que faz parte do meu catálogo de vídeo on demand.

Entidades obrigatórias

  • SportsEvent que representa o jogo

Diretrizes de estimativa

O link direto para o jogo precisa ser fornecido na entidade SportsEvent usando a propriedade SportsEvent.potentialAction.

Caso 2

Preciso modelar um SportsEvent que faz parte do meu catálogo de TV ao vivo e transmissões on-line.

O jogo é transmitido pela Internet e não está conectado a nenhum canal.

Entidades obrigatórias

  • SportsEvent que representa o jogo
  • BroadcastEvent, que representa a transmissão do jogo

Diretrizes de estimativa

Subcaso 1: o jogo só está disponível ao vivo (e não como parte do catálogo de vídeo on demand)

  • A entidade BroadcastEvent precisa ser fornecida para compartilhar a programação da transmissão.
  • O link direto para o jogo precisa ser fornecido na entidade BroadcastEvent usando a propriedade BroadcastEvent.potentialAction.
  • Como o jogo só está disponível para visualização ao vivo, a entidade SportsEvent não pode ter links diretos. Ou seja, o SportsEvent.potentialAction não pode ser fornecido.
  • O BroadcastEvent.broadcastOfEvent precisa ser fornecido porque o jogo não está vinculado a nenhuma transmissão de canal.

Subcaso 2: o jogo está disponível ao vivo e como parte do catálogo de vídeo on demand. Isso pode acontecer quando uma repetição do jogo está sendo transmitida.

  • A entidade BroadcastEvent precisa ser fornecida para compartilhar a programação da transmissão.
  • O link direto para o jogo precisa ser fornecido na entidade BroadcastEvent usando a propriedade BroadcastEvent.potentialAction.
  • Como o jogo está disponível para visualização ao vivo como parte do catálogo de vídeo on demand, a entidade SportsEvent também precisa ter um link direto. O SportsEvent.potentialAction precisa ser fornecido para redirecionar o usuário ao catálogo de vídeo on demand.
  • BroadcastEvent.publishedOn não pode ser fornecido porque o jogo não está vinculado a nenhuma transmissão de canal.

Verificações de qualidade a serem realizadas

  • Defina a propriedade BroadcastEvent.isLiveBroadcast como true quando o jogo for publicado. Não defina a propriedade como true para uma repetição de jogo.
  • Para BroadcastEvents que não estão ativos, o parâmetro BroadcastEvent.startDate geralmente não pode ser anterior ao startDate do SportsEvent .
  • BroadcastEvents não pode ter uma propriedade publishedOn porque a transmissão é transmitida na Internet e não é anexada a um canal.
Caso 3

Preciso modelar um SportsEvent que faz parte do meu catálogo de TV ao vivo e transmissões on-line em um canal.

Entidades obrigatórias

  • SportsEvent, que representa o jogo.
  • BroadcastEvent, que representa a transmissão do jogo.
  • Entidades BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService que representam o canal e a lineup.

Diretrizes de estimativa

Subcaso 1: o jogo só está disponível ao vivo (e não como parte do catálogo de vídeo on demand)

  • Compartilhar a programação da transmissão. Para fazer isso, forneça a entidade BroadcastEvent.
  • Representar o canal e o lineup do provedor. Para fazer isso, forneça as entidades BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService .
  • Forneça o link direto BroadcastService. Represente-o com a propriedade BroadcastService.potentialAction.
  • Não forneça a propriedade BroadcastEvent.potentialAction.
  • Como o jogo só está disponível para visualização ao vivo, a entidade SportsEvent não pode ter um link direto. Por exemplo, não forneça SportsEvent.potentialAction.
  • Forneça BroadcastEvent.publishedOn e aponte-o para a entidade BroadcastService que representa o canal em que a transmissão vai acontecer.

Subcaso 2: o jogo está disponível ao vivo e como parte do catálogo de vídeo on demand. Isso pode acontecer quando uma repetição do jogo está sendo transmitida

  • Forneça a entidade BroadcastEvent para compartilhar a programação da transmissão.
  • Forneça as entidades BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService que representam o canal e o lineup de provedor.
  • Forneça o link direto BroadcastService para o canal em que a transmissão do jogo vai acontecer, representado pela propriedade BroadcastService.potentialAction.
  • Não forneça a propriedade BroadcastEvent.potentialAction.
  • Como o jogo está disponível para visualização ao vivo e como parte do catálogo de vídeo on demand, a entidade SportsEvent também precisa ter um link direto. Por exemplo, é possível fornecer SportsEvent.potentialAction que redireciona o usuário para o catálogo de vídeo on demand.
  • Forneça BroadcastEvent.publishedOn e aponte-o para a entidade BroadcastService que representa o canal em que a transmissão vai acontecer.

Verificações de qualidade a serem realizadas

  • Defina a propriedade BroadcastEvent.isLiveBroadcast como true quando o jogo for publicado. Não defina a propriedade como true para uma repetição de jogo.
  • Para BroadcastEvents que não estão ativas, BroadcastEvent.startDate geralmente não podem ser anteriores ao startDate do SportsEvent real.
  • Como o jogo vai ao ar em um canal, adicione um link direto usando a propriedade BroadcastService.potentialAction. A entidade BroadcastEvent não pode ter um link direto nesse caso.

Exemplos

Caso 1: um evento esportivo que faz parte do catálogo de vídeo on demand


{
  "@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": "2018-09-16T10:00-08:00",
  "endDate": "2018-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"
    }
  ],
"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-17T10:00-08:00",
      "availabilityEnds": "2019-10-21T10:35:29Z",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
       },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Caso 2: um evento esportivo que faz parte do catálogo de TV ao vivo e é transmitido on-line

Evento de transmissão


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

Evento esportivo


{
  "@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": "2018-09-16T10:00-08:00",
  "endDate": "2018-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"
    }
  ]
}

Caso 3: um evento esportivo que faz parte do catálogo de TV ao vivo e é transmitido on-line em um canal

Evento de transmissão


{
  "@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",
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  }
}

Evento esportivo


{
  "@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": "2018-09-16T10:00-08:00",
  "endDate": "2018-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"
    }
  ]
}

Entidades BroadcastService, CableOrSatelliteService, TelevisionChannel e Organization, conforme definido na seção Canal de TV ao vivo em "Conceitos".

Como lidar com conteúdo extra?

O que se qualifica como conteúdo extra?
  • Recapitulação aleatória ou repetição de clipes curtos
  • Prévias do jogo
  • Destaques do jogo
  • Erros de gravação de jogos
  • Clipes das entrevistas com os jogadores
  • Vídeos dos bastidores
  • Avaliações de jogos (geradas pelo usuário ou não)
  • Outros clipes curtos aleatórios do jogo
Número de série Caso de uso Diretrizes de modelagem
Caso 1 Tenho conteúdo extra no meu catálogo de vídeo on demand.
  • Isso não é compatível e não pode ser fornecido no feed.
  • O ViTA pode ser usado para fornecer um subconjunto desse conteúdo. Entre em contato com seu representante do Google para saber mais sobre o ViTA (em inglês).
Caso 2 Tenho conteúdo extra no meu catálogo ao vivo

Subcaso 1: conteúdo disponível para transmissão ao vivo na Internet

  • Forneça a entidade BroadcastEvent para compartilhar a programação da transmissão.
  • Forneça o link direto do conteúdo usando a propriedade BroadcastEvent.potentialAction .
  • Adicione os metadados associados ao clipe diretamente ao BroadcastEvent . Por exemplo, as imagens podem ser adicionadas usando a propriedade BroadcastEvent.image . As classificações etárias podem ser adicionadas usando a propriedade BroadcastEvent.contentRating .
  • Como esse tipo de conteúdo não é um SportsEvent, o feed não pode conter uma entidade SportsEvent. Como tal, a propriedade broadcastOfEvent no BroadcastEvent não pode ser fornecida.
  • Como ele não está vinculado a um canal, não forneça a propriedade publishedOn no BroadcastEvent.

Subcaso 2: o conteúdo está disponível para transmissão ao vivo na Internet em um canal

  • A entidade BroadcastEvent precisa ser fornecida para compartilhar a programação da transmissão.
  • As entidades BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService precisam ser fornecidas para representar o canal e a linha de provedores.
  • O link direto para o jogo precisa ser simplesmente o BroadcastService , representado pela propriedade BroadcastService.potentialAction , que precisa ser informado.
  • A propriedade BroadcastEvent.potentialAction não pode ser fornecida.
  • Todos os metadados associados ao clipe precisam ser adicionados diretamente a BroadcastEvent. Por exemplo, as imagens podem ser adicionadas usando a propriedade BroadcastEvent.image. As classificações etárias podem ser adicionadas usando a propriedade BroadcastEvent.contentRating.
  • Como esse tipo de conteúdo não é um SportsEvent, o feed não pode conter uma entidade SportsEvent. Como tal, a propriedade broadcastOfEvent no BroadcastEvent não pode ser fornecida.
  • Como ele está vinculado a um canal, forneça a propriedade publishedOn no BroadcastEvent.
Caso 3 Tenho conteúdo extra disponível como parte dos catálogos de vídeo on demand e TV ao vivo

Considerando que o conteúdo secundário de vídeos on demand não é aceito no feed atualmente, isso é semelhante ao caso 2. Veja as instruções a partir daí.

Perguntas frequentes

P: Onde posso encontrar as especificações associadas às entidades mencionadas anteriormente?

R: Veja as especificações necessárias aqui.

Documentação geral Link
SportsEvent Link
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Link
BroadcastEvent Link

P: Existe um documento mais detalhado que explique como modelar os canais e lineups de TV ao vivo?

R: Sim. Encontre mais detalhes na seção Canal de TV ao vivo em "Conceitos". Sinta-se à vontade para solicitar acesso de leitura se você não conseguir ver o documento.

P: O ViTA também oferece suporte a jogos ao vivo completos e replays completos?

R: O ViTA oferece suporte a metadados de jogos ao vivo completos com base em ligas e reproduções completas de jogos, além de um subconjunto de conteúdo extra.

  • Para parceiros que já têm um feed de ações de mídia funcional com o Google ou têm uma oferta de vídeo on demand ou TV ao vivo, o Google exige que o feed seja expandido e também inclua os tipos de SportsEvent com suporte.

    • No curto prazo, os parceiros podem usar o ViTA para processamento de conteúdo extra. A compatibilidade com todos os tipos de conteúdo pelo feed será implantada em longo prazo.
  • Para parceiros que não têm uma oferta de vídeo on demand ou TV ao vivo, mas que transmitem apenas esportes com base em ligas e conteúdo extra relacionado, o ViTA é uma ótima opção para começar. Entre em contato com seu representante do Google para saber mais sobre o ViTA (em inglês).