SportsEvents: Modelado, prácticas recomendadas y feed de muestra

Definición

Un SportsEvent es un tipo de entidad que representa un juego deportivo o una repetición completa de uno.

¿Qué se puede modelar como un SportsEvent? Un partido deportivo
¿Qué no se puede modelar como SportsEvent?

Cualquier contenido de formato corto, clip o contenido complementario Esta es la lista:

  • Haz resúmenes aleatorios o vuelve a reproducir clips cortos.
  • Vistas previas del juego
  • Momentos destacados del juego
  • Errores de juegos
  • Clips de entrevistas con jugadores
  • Videos tras bambalinas
  • Opiniones de juegos (generadas por el usuario o de otra índole)
  • Clips cortos y aleatorios del juego

¿Qué debo hacer con este tipo de contenido complementario?

Casos de uso comunes de SportsEvents

Número de pedido Descripción Entidades obligatorias
Caso 1 Necesito modelar un SportsEvent que forma parte de mi catálogo de video on demand. Es SportsEvent, que representa el juego.
Caso 2

Necesito modelar un SportsEvent que forma parte de mi catálogo de TV en vivo y transmite en línea

El juego se transmite por Internet y no está conectado a ningún canal.

Es SportsEvent, que representa el juego.

Es BroadcastEvent, que representa la transmisión del partido.

Caso 3 Necesito modelar un SportsEvent que forma parte de mi catálogo de TV en vivo y se transmite en línea en un canal.

Es SportsEvent, que representa el juego.

Es Broadcast, que representa la emisión del juego.

Entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService que representan el canal y la selección de contenido.

Caso 4 Combinaciones de los tres casos anteriores. Si combinas un subconjunto de los casos prácticos anteriores, debes proporcionar los tipos de entidades en la columna "Entidades obligatorias".

Estadísticas y prácticas recomendadas sobre algunas verificaciones que realizamos

Número de serie Entidades requeridas Lineamientos
Caso 1

Necesito modelar un SportsEvent que forma parte de mi catálogo de video on demand.

Entidades obligatorias

  • SportsEvent, que representa al juego

Lineamientos para el modelado

El vínculo directo al juego se debe proporcionar en la entidad SportsEvent mediante la propiedad SportsEvent.performAction.

Caso 2

Necesito modelar un SportsEvent que forma parte de mi catálogo de TV en vivo y transmisiones en línea.

El juego se transmite por Internet y no está conectado a ningún canal.

Entidades obligatorias

  • SportsEvent, que representa al juego
  • BroadcastEvent, que representa la emisión del juego

Lineamientos para el modelado

Subcaso 1: El juego solo está disponible en vivo (y no como parte del catálogo de video on demand).

  • Se debe proporcionar la entidad BroadcastEvent para compartir la programación de la transmisión.
  • Se debe proporcionar el vínculo directo al juego en la entidad BroadcastEvent a través de la propiedad BroadcastEvent.potentialAction.
  • Dado que el juego solo está disponible para ver en vivo, la entidad SportsEvent no debe tener vínculos directos. Es decir, no se debe proporcionar el SportsEvent.potentialAction.
  • Se debe proporcionar BroadcastEvent.broadcastOfEvent porque el partido no está vinculado a ninguna transmisión de canal.

Subcaso 2: El partido está disponible en vivo y como parte del catálogo de video on demand (esto puede ocurrir cuando se transmite la repetición de un partido)

  • Se debe proporcionar la entidad BroadcastEvent para compartir la programación de la transmisión.
  • Se debe proporcionar el vínculo directo al juego en la entidad BroadcastEvent mediante la propiedad BroadcastEvent.potentialAction.
  • Dado que el juego está disponible para verlo en vivo como parte del catálogo de video on demand, la entidad SportsEvent también debe tener un vínculo directo. Se debe proporcionar el SportsEvent.potentialAction para redireccionar al usuario al catálogo de video on demand.
  • No se debe proporcionar BroadcastEvent.publishedOn porque el partido no está vinculado a ninguna transmisión de canal.

Verificaciones de calidad que se deben realizar

  • Establece la propiedad BroadcastEvent.isLiveBroadcast en true cuando el juego esté en vivo. No configures la propiedad como true para la repetición de un partido.
  • Para los BroadcastEvents que no están publicados, BroadcastEvent.startDate por lo general no puede ser anterior al SportsEvent startDate real.
  • BroadcastEvents no debe tener una propiedad publishedOn porque la transmisión se transmite en Internet y no se conecta a un canal.
Caso 3

Necesito modelar un SportsEvent que forma parte de mi catálogo de TV en vivo y se transmite en línea en un canal.

Entidades obligatorias

  • SportsEvent que representa el juego.
  • BroadcastEvent que representa la emisión del juego
  • Entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService que representan el canal y la selección de contenido.

Lineamientos para el modelado

Subcaso 1: El juego solo está disponible en vivo (y no como parte del catálogo de video on demand).

  • Compartir la programación de la transmisión. Para hacerlo, proporciona la entidad BroadcastEvent.
  • Representar al canal y la selección del proveedor Para hacerlo, proporciona las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService .
  • Proporciona el vínculo directo BroadcastService. Representarlo con la propiedad BroadcastService.potentialAction.
  • No proporciones la propiedad BroadcastEvent.potentialAction.
  • Dado que el juego solo está disponible para ver en vivo, la entidad SportsEvent no debe tener ningún vínculo directo. Por ejemplo, no proporciones SportsEvent.potentialAction.
  • Proporciona BroadcastEvent.publishedOn y haz que se dirija a la entidad BroadcastService que representa el canal en el que se realizará la transmisión.

Subcaso 2: El partido está disponible en vivo y como parte del catálogo de video on demand (esto puede ocurrir cuando se transmite la repetición de un partido)

  • Proporciona la entidad BroadcastEvent para compartir la programación de la transmisión.
  • Proporciona las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService que representan el canal y la selección de proveedores.
  • Proporciona el vínculo directo BroadcastService al canal en el que se realizará la transmisión del juego, representado por la propiedad BroadcastService.potentialAction.
  • No proporciones la propiedad BroadcastEvent.potentialAction.
  • Dado que el juego está disponible para verlo en vivo y como parte del catálogo de video on demand, la entidad SportsEvent también debe tener un vínculo directo. Por ejemplo, se puede proporcionar SportsEvent.potentialAction que redireccione al usuario al catálogo de Video on demand.
  • Proporciona BroadcastEvent.publishedOn y haz que se dirija a la entidad BroadcastService que representa el canal en el que se realizará la transmisión.

Verificaciones de calidad que se deben realizar

  • Establece la propiedad BroadcastEvent.isLiveBroadcast en true cuando el juego esté en vivo. No configures la propiedad como true para la repetición de un partido.
  • Para los BroadcastEvents que no están publicados, por lo general, BroadcastEvent.startDate no puede ser anterior al SportsEvent real startDate.
  • Dado que el juego se emite en un canal, agrega un vínculo directo usando la propiedad BroadcastService.potentialAction. La entidad BroadcastEvent no puede tener un vínculo directo en este caso.

Ejemplos

Caso 1: Un evento deportivo que forma parte del catálogo de Video 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: Un evento deportivo que forma parte del catálogo de TV en vivo y se transmite en línea

Evento de transmisión


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


{
  "@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: Un evento deportivo que forma parte del catálogo de TV en vivo y se transmite en línea a través de un canal

Evento de transmisión


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


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

Las entidades BroadcastService, CableOrSatelliteService, TelevisionChannel y Organization según se definen en la sección Canal de TV en vivo en Conceptos

¿Cómo puedo manejar el contenido complementario?

¿Qué califica como contenido complementario?
  • Haz resúmenes aleatorios o vuelve a reproducir clips cortos.
  • Vistas previas del juego
  • Momentos destacados del juego
  • Errores de juegos
  • Clips de entrevistas con jugadores
  • Videos tras bambalinas
  • Opiniones de juegos (generadas por el usuario o de otra índole)
  • Otros clips cortos aleatorios del juego
Número de serie Caso de uso Lineamientos para el modelado
Caso 1 Mi catálogo de Video on demand incluye contenido complementario.
  • No se admite y no se puede proporcionar en el feed.
  • ViTA se puede usar para proporcionar un subconjunto de este contenido. Comunícate con tu representante de Google para obtener más información sobre ViTA.
Caso 2 Mi catálogo de transmisiones en vivo incluye contenido complementario

Sub-Caso 1: El contenido está disponible para transmitirse en vivo en Internet

  • Proporciona la entidad BroadcastEvent para compartir la programación de la transmisión.
  • Proporciona el vínculo directo del contenido mediante la propiedad BroadcastEvent.potentialAction .
  • Agrega los metadatos asociados (al clip) directamente a BroadcastEvent . Por ejemplo, se pueden agregar imágenes con la propiedad BroadcastEvent.image . Las clasificaciones por edad se pueden agregar con la propiedad BroadcastEvent.contentRating .
  • Dado que este tipo de contenido no es SportsEvent, el feed no debe incluir una entidad SportsEvent. Por lo tanto, no se debe proporcionar la propiedad broadcastOfEvent en BroadcastEvent .
  • Dado que no está vinculado a un canal, no proporciones la propiedad publishedOn en BroadcastEvent.

Sub-Caso 2: El contenido está disponible para transmitirse en vivo en Internet en un canal

  • Se debe proporcionar la entidad BroadcastEvent para compartir la programación de la transmisión.
  • Se deben proporcionar las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService para representar el canal y la selección de proveedores.
  • El vínculo directo al juego debe ser simplemente BroadcastService , representado por la propiedad BroadcastService.potentialAction , que debe proporcionarse.
  • No se debe proporcionar la propiedad BroadcastEvent.potentialAction.
  • Todos los metadatos asociados (al clip) se deben agregar directamente a BroadcastEvent. Por ejemplo, se pueden agregar imágenes con la propiedad BroadcastEvent.image. Las clasificaciones por edad se pueden agregar con la propiedad BroadcastEvent.contentRating.
  • Dado que este tipo de contenido no es SportsEvent, el feed no debe incluir una entidad SportsEvent. Por lo tanto, no se debe proporcionar la propiedad broadcastOfEvent en BroadcastEvent.
  • Como está vinculado a un canal, proporciona la propiedad publishedOn en BroadcastEvent.
Caso 3 Tengo contenido complementario disponible como parte del catálogo de videos on demand y de TV en vivo.

Dado que actualmente el contenido complementario de deportes de video on demand no se acepta en el feed, este caso es similar al caso 2. Sigue las instrucciones que aparecen allí.

Preguntas frecuentes

P.: ¿Dónde puedo encontrar las especificaciones asociadas a las entidades mencionadas anteriormente?

R: Puede encontrar las especificaciones requeridas aquí.

Documentación general Vínculo
SportsEvent Vínculo
BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService Vínculo
BroadcastEvent Vínculo

P.: ¿Existe un documento más detallado que explica cómo modelar los canales de TV en vivo y las selecciones de contenido?

R.: Sí. Puedes encontrar más detalles en la sección Canal de TV en vivo en Conceptos. No dudes en solicitar acceso de lectura si no puedes ver el documento.

P.: ¿ViTA también admite partidos en vivo completos y repeticiones de partidos completos?

R.: ViTA admite metadatos en juegos en vivo completos basados en la liga y repeticiones completas de juegos (además de un subconjunto de contenido complementario).

  • En el caso de los socios que ya tienen un feed funcional de Acciones multimedia con Google o que tienen una oferta de video on demand o TV en vivo, Google requiere que el feed se expanda y también incluya los tipos de SportsEvent admitidos.

    • A corto plazo, los socios pueden usar la ViTA para la transferencia de contenido complementario. La compatibilidad con todo tipo de contenido a través del feed debe implementarse a largo plazo.
  • Para los socios que no tienen una oferta de video on demand o TV en vivo, pero solo transmiten deportes basados en la liga y contenido complementario relacionado, ViTA es una excelente opción para comenzar. Comunícate con tu representante de Google para obtener más información sobre ViTA.