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

Definición

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

¿Qué se puede modelar como SportsEvent? Un juego de deportes
¿Qué no se puede modelar como SportsEvent?

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

  • Resúmenes aleatorios o repetición de clips cortos
  • Avances del juego
  • Lo más destacado del partido
  • Errores de juegos
  • Clips de entrevistas con jugadores
  • Videos detrás de escena
  • Opiniones sobre juegos (generadas por usuarios o de otro tipo)
  • Clips cortos aleatorios del juego

¿Cómo debo manejar ese contenido complementario?

Casos de uso habituales de SportsEvents

Descripción Entidades requeridas
Caso 1 Necesito modelar un SportsEvent que forme parte de mi catálogo de videos a pedido. SportsEvent que representa el juego.
Caso 2

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

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

SportsEvent que representa el juego.

BroadcastEvent que representa la transmisión del juego.

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

SportsEvent que representa el juego.

Broadcast que representa la emisión del juego.

BroadcastService, Organization,TelevisionChannel y CableOrSatelliteService son entidades que representan el canal y la programación.

Caso 4 Combinaciones de los tres casos anteriores. Si combinas un subconjunto de los casos de uso anteriores, debes proporcionar los tipos de entidades en la columna correspondiente "Entidades requeridas".

Prácticas recomendadas y estadísticas sobre algunas de las verificaciones que realizamos

S.No. Entidades obligatorias Lineamientos
Caso 1

Necesito modelar un SportsEvent que forme parte de mi catálogo de videos a pedido.

Entidades requeridas

  • SportsEvent que representa el juego

Lineamientos para el modelado

El vínculo directo al juego se debe proporcionar en la entidad SportsEvent a través de la propiedad SportsEvent.potentialAction.

Verificaciones de calidad que se deben realizar

  • Establece el SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts al menos 14 días antes del SportsEvent.startDate. La intención no es exigir la provisión de datos de eventos deportivos con 14 días de anticipación, sino que los datos de eventos se pueden entregar más tarde. Sin embargo, el valor de availabilityStarts debe establecerse al menos 14 días antes del evento.
  • Establece el SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds después del SportsEvent.endDate.
Caso 2

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

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

Entidades requeridas

  • SportsEvent que representa el juego
  • BroadcastEvent que representa la emisión del partido

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 el programa de la transmisión.
  • El vínculo directo al juego se debe proporcionar en la entidad BroadcastEvent con la propiedad BroadcastEvent.potentialAction.
  • Dado que el partido solo está disponible para verlo en vivo, la entidad SportsEvent no debe tener vínculos directos. Es decir, no se debe proporcionar SportsEvent.potentialAction.
  • Se debe proporcionar BroadcastEvent.broadcastOfEvent porque el juego no está vinculado a ninguna transmisión de canal.

Subcaso 2: El juego está disponible en vivo y como parte del catálogo de video on demand (esto podría ocurrir cuando se transmite una repetición del juego)

  • Se debe proporcionar la entidad BroadcastEvent para compartir el programa de la transmisión.
  • El vínculo directo al juego se debe proporcionar en la entidad BroadcastEvent con la propiedad BroadcastEvent.potentialAction.
  • Dado que el partido 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 videos a pedido.
  • No se debe proporcionar BroadcastEvent.publishedOn porque el juego 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é realmente en vivo. No establezcas la propiedad en true para una repetición de juego.
  • En el caso de los BroadcastEvents que no están en vivo, BroadcastEvent.startDate no suele ser anterior al SportsEvent startDate real.
  • BroadcastEvents no debe tener una propiedad publishedOn porque transmite en Internet y no se adjunta 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 requeridas

  • SportsEvent que representa el juego.
  • BroadcastEvent que representa la emisión del juego.
  • BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService son entidades 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)

  • Comparte la programación de la transmisión. Para ello, proporciona la entidad BroadcastEvent.
  • Representan el canal y la selección de contenido del proveedor. Para ello, proporciona las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService .
  • Proporciona el vínculo directo de BroadcastService. Represéntalo con la propiedad BroadcastService.potentialAction.
  • No proporciones la propiedad BroadcastEvent.potentialAction.
  • Dado que el partido solo está disponible para verlo en vivo, la entidad SportsEvent no debe tener ningún vínculo directo. Por ejemplo, no proporciones SportsEvent.potentialAction.
  • Proporciona BroadcastEvent.publishedOn y dirígelo a la entidad BroadcastService que representa el canal en el que se realizará la transmisión.

Subcaso 2: El juego está disponible en vivo y como parte del catálogo de videos on demand (esto podría ocurrir cuando se transmite una repetición del juego)

  • Proporciona la entidad BroadcastEvent para compartir el programa de la transmisión.
  • Proporciona las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService que representan el canal y la programación del proveedor.
  • 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 videos on demand, la entidad SportsEvent también debe tener un vínculo directo. Por ejemplo, se puede proporcionar SportsEvent.potentialAction que redirecciona al usuario al catálogo de videos a pedido.
  • Proporciona BroadcastEvent.publishedOn y dirígelo 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 establezcas la propiedad en true para una repetición de juego.
  • En el caso de los BroadcastEvents que no están en vivo, BroadcastEvent.startDate por lo general, no puede ser anterior al SportsEvent startDate real.
  • Dado que el juego se transmite en un canal, agrega un vínculo directo con la propiedad BroadcastService.potentialAction. En este caso, la entidad BroadcastEvent no puede tener un vínculo directo.

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-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: 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 en 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"
    }
  ]
}

Entidades BroadcastService, CableOrSatelliteService, TelevisionChannel y Organization tal como se definen en la sección Canal de TV en vivo de Conceptos

¿Cómo manejo el contenido complementario?

¿Qué se considera contenido complementario?
  • Resúmenes aleatorios o repetición de clips cortos
  • Avances del juego
  • Lo más destacado del partido
  • Errores de juegos
  • Clips de entrevistas con jugadores
  • Videos detrás de escena
  • Opiniones sobre juegos (generadas por usuarios o de otro tipo)
  • Otros clips cortos aleatorios del juego
S.No. Caso de uso Lineamientos de modelado
Caso 1 Tengo contenido complementario en mi catálogo de video on demand.
  • Esto 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 Tengo contenido complementario en mi catálogo de contenido en vivo

Subcaso 1: El contenido está disponible para transmitir en vivo por Internet

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

Subcaso 2: El contenido está disponible para transmitirse en vivo en Internet en un canal

  • Se debe proporcionar la entidad BroadcastEvent para compartir el programa de la transmisión.
  • Se deben proporcionar las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService para representar el canal y la selección de contenido del proveedor.
  • El vínculo directo al juego debe ser simplemente el vínculo directo BroadcastService , representado por la propiedad BroadcastService.potentialAction , que se debe proporcionar.
  • No se debe proporcionar la propiedad BroadcastEvent.potentialAction.
  • Todos los metadatos asociados (al clip) deben agregarse directamente al objeto BroadcastEvent. Por ejemplo, las imágenes se pueden agregar 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 un SportsEvent, el feed no debe contener una entidad SportsEvent. Por lo tanto, no se debe proporcionar la propiedad broadcastOfEvent en el objeto BroadcastEvent.
  • Como está vinculado a un canal, proporciona la propiedad publishedOn en el objeto BroadcastEvent.
Caso 3 Tengo contenido complementario disponible como parte del catálogo de TV en vivo y de video on demand.

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

Preguntas frecuentes

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

R.: Puedes encontrar las especificaciones requeridas aquí.

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

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

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

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

ViTA admite metadatos en juegos completos en vivo y repeticiones de juegos completos basados en ligas (además de un subconjunto de contenido complementario).

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

    • A corto plazo, los socios pueden usar ViTA para la transferencia de contenido complementario. La compatibilidad con todos los tipos de contenido a través del feed se implementará a largo plazo.
  • Para los socios que no ofrecen TV en vivo ni video on demand, pero solo tienen deportes basados en ligas 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.