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 partido deportivo
¿Qué no se puede modelar como SportsEvent?

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

  • Repetir clips cortos o ver un resumen aleatorio
  • Vistas previas del juego
  • Lo más destacado del partido
  • Metidas de pata en los juegos
  • Clips de entrevistas de jugadores
  • Videos tras bambalinas
  • Opiniones sobre juegos (generadas por usuarios o de otro tipo)
  • Clips cortos aleatorios del juego

¿Cómo manejo ese contenido?

Casos de uso comunes de SportsEvents

S.No. Descripción Entidades obligatorias
Caso 1 Necesito modelar un SportsEvent que forme parte de mi catálogo de video on demand. SportsEvent que representa el juego.
Caso 2

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

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

SportsEvent que representa el juego.

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.

SportsEvent que representa el juego.

Broadcast que representa la emisión del partido.

Entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService 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 “Entidades requeridas” correspondiente.

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

Núm. de serie Entidades obligatorias Lineamientos
Caso 1

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

Entidades obligatorias

  • SportsEvent que representa el juego

Lineamientos para el modelado

El vínculo directo al partido se debe proporcionar en la entidad SportsEvent con la propiedad SportsEvent.potentialAction.

Verificaciones de calidad que debes realizar

  • Establece el SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts al menos 14 días antes del SportsEvent.startDate. La intención no es exigir la entrega de datos de eventos deportivos con 14 días de anticipación; los datos de eventos se pueden entregar más adelante. Sin embargo, el valor de availabilityStarts se debe establecer 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 forme parte de mi catálogo de TV en vivo y se transmita en línea.

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

Entidades obligatorias

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

Lineamientos para el modelado

Caso secundario 1: El partido 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.
  • Como 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 partido no está vinculado a ninguna transmisión de canal.

Caso secundario 2: El partido está disponible en vivo y como parte del catálogo de Video on demand (esto puede ocurrir cuando se transmite una repetición del partido)

  • 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 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 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 debes realizar

  • Establece la propiedad BroadcastEvent.isLiveBroadcast en true cuando el partido esté en vivo. No configures la propiedad en true para una repetición de juego.
  • En el caso de los BroadcastEvents que no están activos, BroadcastEvent.startDate no suele ser anterior a la SportsEvent startDate real.
  • BroadcastEvents no debe tener una propiedad publishedOn porque la transmisión se transmite en Internet y no se adjunta a un canal.
Caso 3

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

Entidades obligatorias

  • SportsEvent que representa el juego.
  • BroadcastEvent que representa la emisión del partido.
  • BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService: Entidades que representan el canal y la programación.

Lineamientos para el modelado

Caso secundario 1: El partido 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 programación del proveedor. Para ello, proporciona las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService .
  • Proporciona el vínculo directo de BroadcastService. Represéntala con la propiedad BroadcastService.potentialAction.
  • No proporciones la propiedad BroadcastEvent.potentialAction.
  • Como 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íjalo a la entidad BroadcastService que representa el canal en el que se realizará la transmisión.

Caso secundario 2: El partido está disponible en vivo y como parte del catálogo de videos on demand (esto puede ocurrir cuando se transmite una repetición del partido)

  • Proporciona la entidad BroadcastEvent para compartir la agenda de la transmisión.
  • Proporciona las entidades BroadcastService, Organization, TelevisionChannel y CableOrSatelliteService que representan el canal y la alineación del proveedor.
  • Proporciona el vínculo directo BroadcastService al canal en el que se realizará la transmisión del partido, representado por la propiedad BroadcastService.potentialAction.
  • No proporciones la propiedad BroadcastEvent.potentialAction.
  • Dado que el partido 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 redirecciona al usuario al catálogo de Video on Demand.
  • Proporciona BroadcastEvent.publishedOn y diríjalo a la entidad BroadcastService que representa el canal en el que se realizará la transmisión.

Verificaciones de calidad que debes realizar

  • Establece la propiedad BroadcastEvent.isLiveBroadcast en true cuando el partido esté en vivo. No configures la propiedad en true para una repetición de juego.
  • En el caso de los BroadcastEvents que no están activos, BroadcastEvent.startDate por lo general, no puede ser anterior a la SportsEvent startDate real.
  • Como el partido 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, como se define en la sección Canal de TV en vivo en Conceptos

¿Cómo manejo el contenido complementario?

¿Qué se considera contenido complementario?
  • Repetir clips cortos o ver un resumen aleatorio
  • Vistas previas del juego
  • Lo más destacado del partido
  • Metidas de pata en los juegos
  • Clips de entrevistas de jugadores
  • Videos tras bambalinas
  • Opiniones sobre juegos (generadas por usuarios o de otro tipo)
  • Otros clips cortos aleatorios del partido
Núm. de serie Caso de uso Lineamientos de modelado
Caso 1 Tengo contenido complementario en mi catálogo de video on demand.
  • No se admite y no se puede proporcionar en el feed.
  • Sin embargo, se puede usar ViTA 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 en vivo

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

  • Proporciona la entidad BroadcastEvent para compartir la agenda de la transmisión.
  • Proporciona el vínculo directo del contenido con la propiedad BroadcastEvent.potentialAction .
  • Agrega los metadatos asociados (al clip) directamente a 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 SportsEvent, el feed no debe contener una entidad SportsEvent. Por lo tanto, no se debe proporcionar la propiedad broadcastOfEvent en BroadcastEvent .
  • Como no está vinculado a un canal, no proporciones la propiedad publishedOn en BroadcastEvent.

Caso secundario 2: El contenido está disponible para transmitirse en vivo por 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 alineación 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.
  • Cualquier metadato asociado (al clip) se debe agregar directamente a 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 SportsEvent, el feed no debe contener 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 el BroadcastEvent.
Caso 3 Tengo contenido complementario disponible como parte del catálogo de video on demand y de TV en vivo.

Dado que actualmente no se acepta contenido de contenido deportivo 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.: ¿Hay un documento más detallado que explique cómo modelar los canales de TV en vivo y las alineaciones?

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 completos en vivo y repeticiones completas?

R.: ViTA admite metadatos en partidos completos en vivo y repeticiones de partidos completos basados en la liga (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 compatibles.

    • A corto plazo, los socios pueden usar ViTA para transferir contenido de hombro. La compatibilidad con todos los tipos de contenido a través del feed debería lanzarse a largo plazo.
  • Para los socios que no tienen una oferta de video on demand ni de TV en vivo, pero solo transmiten contenido relacionado con deportes de ligas y contenido complementario, ViTA es una excelente opción para comenzar. Comunícate con tu representante de Google para obtener más información sobre ViTA.