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

Definição

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

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 formato curto ou clipe ou conteúdo extra. Confira a lista:

  • Reproduzir clipes curtos ou assistir a um resumo aleatório
  • Prévias 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 pelo usuário ou não)
  • Clipes curtos aleatórios do jogo

Como lidar com esse tipo de conteúdo?

Casos de uso comuns para 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 representando o jogo.
Caso 2

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

O jogo é transmitido pela Internet e não está associado 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, 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

S.No. 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 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 a SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts pelo menos 14 dias antes da SportsEvent.startDate. A intenção não é exigir a prestação de dados de eventos esportivos com 14 dias de antecedência. Os dados do evento podem ser enviados mais tarde. No entanto, o valor de 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 das transmissões on-line.

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

Entidades obrigatórias

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

Diretrizes de modelagem

Subcenário 1: o jogo só está disponível 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 visualização ao vivo, a entidade SportsEvent não pode ter links diretos. Ou seja, o SportsEvent.potentialAction não precisa 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 um replay do jogo está sendo transmitido)

  • 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 em tempo real 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 ativo. Não defina a propriedade como true para uma repetição de jogo.
  • Para BroadcastEvents que não estão ativos, o BroadcastEvent.startDate geralmente não pode ser anterior ao startDate SportsEvent real.
  • BroadcastEvents não pode ter uma propriedade publishedOn porque a transmissão é transmitida pela 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 é transmitido on-line em um canal.

Entidades obrigató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

Subcenário 1: o jogo só está disponível 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 fazer 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 visualização ao vivo, a entidade SportsEvent não pode ter nenhum 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 do 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 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, 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 ativo. Não defina a propriedade como true para uma repetição de jogo.
  • Para BroadcastEvents que não estão ativos, o BroadcastEvent.startDate geralmente não pode ser anterior ao startDate SportsEvent 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"
    }
  ]
}

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

Como lidar com conteúdo extra?

O que é considerado conteúdo extra?
  • Reproduzir clipes curtos ou assistir a um resumo aleatório
  • Prévias 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 pelo usuário ou não)
  • Outros clipes curtos aleatórios do jogo
S.No. Caso de uso Diretrizes de modelagem
Caso 1 Tenho conteúdo de terceiros no meu catálogo de vídeo on demand.
  • Não é possível usar esse recurso e ele 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 ativo

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, as imagens podem ser adicionadas usando a propriedade BroadcastEvent.image . As classificações por faixa etária 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 precisa ser fornecida.
  • Como não está vinculada 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 link direto BroadcastService , representado pela propriedade BroadcastService.potentialAction , que precisa ser fornecida.
  • A propriedade BroadcastEvent.potentialAction não precisa ser fornecida.
  • Todos os metadados associados (ao clipe) precisam ser adicionados diretamente ao BroadcastEvent. Por exemplo, as imagens podem ser adicionadas usando a propriedade BroadcastEvent.image. As classificações por faixa etária 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 precisa ser fornecida.
  • Como está vinculada a um canal, forneça a propriedade publishedOn no BroadcastEvent.
Caso 3 Tenho conteúdo extra disponível como parte do catálogo de vídeo on demand e TV ao vivo

Como o conteúdo de vídeo on demand de esportes não é aceito no feed, este caso é semelhante ao 2. Confira 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: Há um documento mais detalhado que explica como modelar os canais e as programações de TV ao vivo?

R: Sim, você pode encontrar mais detalhes na seção Canal de TV ao vivo em "Conceitos". Solicite acesso de leitura se não conseguir acessar o documento.

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

A: A ViTA oferece suporte a metadados em jogos completos ao vivo e reprises completas com base na liga, além de um subconjunto de conteúdo secundário.

  • Para parceiros que já têm um feed de Ações de mídia funcional com o Google ou oferecem vídeo on demand ou TV ao vivo, o Google exige que o feed seja expandido e inclua os tipos de SportsEvent compatíveis.

    • No curto prazo, os parceiros podem usar o ViTA para ingestão de conteúdo. O suporte a todos os tipos de conteúdo no feed será lançado a longo prazo.
  • Para parceiros que não têm uma oferta de vídeo on demand ou TV ao vivo, mas transmitem apenas esportes baseados em ligas e conteúdo relacionado, a ViTA é uma ótima opção para começar. Entre em contato com seu representante do Google para saber mais sobre a ViTA.