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

Definição

Um SportsEvent é um tipo de entidade que representa uma partida ou uma reprise completa de uma partida esportiva.

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

Qualquer conteúdo de Shorts, clipes ou conteúdo extra. Confira a lista:

  • Resumir ou reproduzir clipes curtos aleatoriamente
  • Prévia do jogo
  • Destaques do jogo
  • Erros de gravação de jogos
  • Clipes de entrevistas com jogadores
  • Vídeos dos bastidores
  • Avaliações de jogos (geradas por usuários ou não)
  • Clipes curtos aleatórios do jogo

Como lidar com esse tipo de conteúdo extra?

Casos de uso comuns para SportsEvents

S.No. Descrição Entidades necessárias
Caso 1 Preciso modelar um SportsEvent que faz parte do meu catálogo de vídeo sob demanda. SportsEvent representando o jogo.
Caso 2

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

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

SportsEvent representando o jogo.

BroadcastEvent representando 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 representando o jogo.

Broadcast representando a transmissão do jogo.

BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService entidades que representam o canal e a programação.

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

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

S.No. Entidades obrigatórias Diretrizes
Caso 1

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

Entidades necessárias

  • SportsEvent representando o jogo

Diretrizes de modelagem

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

Verificações de qualidade a serem realizadas

  • Defina o SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts pelo menos 14 dias antes da SportsEvent.startDate. A intenção não é obrigar a disponibilização de dados de eventos esportivos com 14 dias de antecedência. Os dados podem ser entregues depois. No entanto, o valor "availabilityStarts" precisa ser definido pelo menos 14 dias antes do evento.
  • Defina o SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds depois do SportsEvent.endDate.
Caso 2

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

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

Entidades necessárias

  • SportsEvent representando o jogo
  • BroadcastEvent representando a transmissão do jogo

Diretrizes de modelagem

Subcaso 1: o jogo está disponível apenas ao vivo (e não como parte do catálogo de vídeo sob demanda)

  • 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 assistir 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 sob demanda (isso pode acontecer quando uma reprise de um 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 sob demanda.
  • 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 estiver ao vivo. Não defina a propriedade como true para uma repetição de jogo.
  • Para BroadcastEvents que não estão ativas, geralmente não é possível que BroadcastEvent.startDate seja anterior ao SportsEvent startDate real.
  • BroadcastEvents não pode ter uma propriedade publishedOn porque a transmissão é feita na Internet e não está vinculada a um canal.
Caso 3

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

Entidades necessárias

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

Diretrizes de modelagem

Subcaso 1: o jogo está disponível apenas ao vivo (e não como parte do catálogo de vídeo sob demanda)

  • Compartilhe a programação da transmissão. Para isso, forneça a entidade BroadcastEvent.
  • Representar o canal e a programação do provedor. Para isso, forneça as entidades BroadcastService, Organization, TelevisionChannel e CableOrSatelliteService .
  • Informe 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 assistir 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 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 sob demanda (isso pode acontecer quando um replay de um jogo está sendo transmitido)

  • 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 a programação do 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 assistir 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, SportsEvent.potentialAction pode ser fornecido para redirecionar o usuário ao catálogo de vídeo sob demanda.
  • Forneça BroadcastEvent.publishedOn e aponte 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 estiver ao vivo. Não defina a propriedade como true para uma repetição de jogo.
  • Para BroadcastEvents que não estão ativos, BroadcastEvent.startDate geralmente não pode ser anterior ao SportsEvent startDate real.
  • Como o jogo é transmitido 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 sob demanda


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

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

Como gerenciar conteúdo extra?

O que é considerado conteúdo extra?
  • Resumir ou reproduzir clipes curtos aleatoriamente
  • Prévia do jogo
  • Destaques do jogo
  • Erros de gravação de jogos
  • Clipes de entrevistas com jogadores
  • Vídeos dos bastidores
  • Avaliações de jogos (geradas por usuários ou não)
  • Outros clipes curtos aleatórios do jogo
S.No. Caso de uso Diretrizes de modelagem
Caso 1 Tenho conteúdo extra no meu catálogo de vídeo on demand.
  • Isso não é aceito e não pode ser fornecido no feed.
  • No entanto, 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.
Caso 2 Tenho conteúdo extra no meu catálogo de transmissões ao vivo

Subcaso 1: o conteúdo está 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, é possível adicionar imagens 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. Portanto, 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 programação do provedor.
  • O link direto para o jogo precisa ser o BroadcastService , representado pela propriedade BroadcastService.potentialAction , que precisa ser fornecida.
  • A propriedade BroadcastEvent.potentialAction não pode ser fornecida.
  • Todos os metadados associados ao clipe precisam ser adicionados diretamente ao BroadcastEvent. Por exemplo, é possível adicionar imagens usando a propriedade BroadcastEvent.image. As classificações indicativas 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. Portanto, 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 do catálogo de TV ao vivo e de vídeo on demand.

Como o conteúdo de esportes de vídeo on demand não é aceito no feed hoje, esse caso é semelhante ao caso 2. Siga as instruções.

Perguntas frequentes

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

R: Confira 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 as programações de TV ao vivo?

R: Sim, confira mais detalhes na seção Canal de TV ao vivo em "Conceitos". Solicite acesso de visualização se não conseguir visualizar o documento.

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

O ViTA oferece suporte a metadados em jogos completos ao vivo e replays de jogos completos de campeonatos (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 uma oferta de vídeo on demand ou TV ao vivo, o Google exige que o feed seja expandido e inclua também os tipos de SportsEvent compatíveis.

    • No curto prazo, os parceiros podem usar o ViTA para a ingestão de conteúdo extra. O suporte a todos os tipos de conteúdo no feed será lançado a longo prazo.
  • Para parceiros que não oferecem vídeo on demand ou TV ao vivo, mas transmitem apenas esportes de 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.