SportsEvents - Modélisation, bonnes pratiques et exemple de flux

Définition

Un SportsEvent est un type d'entité représentant un jeu sportif ou la rediffusion complète d'un jeu.

Qu'est-ce qui peut être modélisé comme un événement sportif ? Un jeu de sport
Qu'est-ce qu'un événement sportif ne peut pas être modélisé ?

Tout contenu de courte durée, vidéo courte ou supplémentaire. En voici la liste:

  • Récapitulatif aléatoire ou relecture de courts extraits
  • Aperçus du jeu
  • Temps forts du match
  • Bêtisiers
  • Extraits d'interviews de joueurs
  • Vidéos des coulisses
  • Avis sur les jeux (générés ou non par un utilisateur)
  • Courts extraits aléatoires du jeu

Comment gérer ces contenus supplémentaires ?

Cas d'utilisation courants pour SportsEvents

No. Description Entités requises
Cas 1 Je dois modéliser un SportsEvent qui fait partie de mon catalogue de vidéos à la demande. SportsEvent représentant le jeu.
Cas 2

J'ai besoin de modéliser un SportsEvent intégré à mon catalogue TV en direct et en streaming

Le jeu est diffusé en streaming sur Internet et n'est associé à aucun canal.

SportsEvent représentant le jeu.

BroadcastEvent représentant la diffusion du jeu.

Cas 3 Je dois modéliser un événement sportif faisant partie de mon catalogue de télévision en direct et qui est diffusé en ligne sur une chaîne.

SportsEvent représentant le jeu.

Broadcast représentant la diffusion du jeu.

Entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant le canal et le lineup.

Cas 4 Combinaisons des trois cas précédents. Si vous combinez un sous-ensemble des cas d'utilisation précédents, vous devez fournir les types d'entités dans la colonne "Entités requises" correspondante.

Bonnes pratiques et insights concernant quelques vérifications que nous effectuons

N° de série Entités requises Consignes
Cas 1

Je dois modéliser un SportsEvent qui fait partie de mon catalogue de vidéos à la demande.

Entités requises

  • SportsEvent représentant le jeu

Consignes de modélisation

Le lien profond vers le jeu doit être fourni sur l'entité SportsEvent à l'aide de la propriété SportsEvent.potAction.

Contrôles de qualité à effectuer

  • Le jeu sportif ne peut pas faire partie du catalogue de vidéos à la demande avant d'être diffusé. Par exemple, SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts ne peut pas être défini avant SportsEvent.startDate.
Cas 2

Je dois modéliser un SportsEvent qui fait partie de mon catalogue TV en direct et diffuse des contenus en ligne.

Le jeu est diffusé en streaming sur Internet et n'est associé à aucun canal.

Entités requises

  • SportsEvent représentant le jeu
  • BroadcastEvent représentant la diffusion du jeu

Consignes de modélisation

Sous-cas 1: le jeu n'est disponible qu'en direct (et non dans le catalogue de vidéos à la demande)

  • L'entité BroadcastEvent doit être fournie pour partager la planification de la diffusion.
  • Le lien profond vers le jeu doit être fourni sur l'entité BroadcastEvent à l'aide de la propriété BroadcastEvent.potentialAction.
  • Comme le jeu ne peut être visionné qu'en direct, l'entité SportsEvent ne doit pas avoir de liens profonds. Autrement dit, le SportsEvent.potentialAction ne doit pas être fourni.
  • BroadcastEvent.broadcastOfEvent doit être fourni, car le jeu n'est associé à aucune diffusion de chaîne.

Sous-cas 2: Le jeu est disponible en direct et inclus dans le catalogue de vidéos à la demande (cela peut se produire lorsqu'une rediffusion du jeu est en cours de diffusion).

  • L'entité BroadcastEvent doit être fournie pour partager la planification de la diffusion.
  • Le lien profond vers le jeu doit être fourni sur l'entité BroadcastEvent à l'aide de la propriété BroadcastEvent.potentialAction.
  • Comme le jeu peut être visionné en direct dans le catalogue de vidéos à la demande, l'entité SportsEvent doit également comporter un lien profond. L'attribut SportsEvent.potentialAction doit être fourni pour rediriger l'utilisateur vers le catalogue de vidéos à la demande.
  • BroadcastEvent.publishedOn ne doit pas être fourni, car le jeu n'est associé à aucune diffusion de chaîne.

Contrôles de qualité à effectuer

  • Le jeu sportif ne peut pas faire partie du catalogue de vidéos à la demande avant d'être diffusé. Par exemple, SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts ne peut pas être antérieur à SportsEvent.startDate.
  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est actif. Ne définissez pas la propriété sur true pour une nouvelle partie.
  • Pour les éléments BroadcastEvents qui ne sont pas en ligne, BroadcastEvent.startDate ne peut généralement pas être antérieur à la valeur réelle startDate SportsEvent .
  • Pour les BroadcastEvents en direct (et non en rediffusion des jeux), les entités SportsEvent ne peuvent pas être disponibles dans le catalogue de vidéos à la demande. Par exemple, les entités SportsEvent ne peuvent pas comporter de lien profond.
  • BroadcastEvents ne devrait pas avoir de propriété publishedOn , car la diffusion est diffusée sur Internet et n'est pas associée à un canal.
Cas 3

Je dois modéliser un SportsEvent qui fait partie de mon catalogue de diffusions en direct et qui diffuse des contenus en ligne sur une chaîne.

Entités requises

  • SportsEvent qui représente le jeu.
  • BroadcastEvent qui représente la diffusion du jeu.
  • Entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant le canal et le lineup.

Consignes de modélisation

Sous-cas 1: le jeu n'est disponible qu'en direct (et non dans le catalogue de vidéos à la demande)

  • Partagez le calendrier de la diffusion. Pour ce faire, indiquez l'entité BroadcastEvent.
  • Représenter la chaîne et la gamme des fournisseurs Pour ce faire, indiquez les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService .
  • Fournissez le lien profond BroadcastService. Représentez-la avec la propriété BroadcastService.potentialAction.
  • N'indiquez pas la propriété BroadcastEvent.potentialAction.
  • Comme le jeu n'est disponible qu'en direct, l'entité SportsEvent ne doit pas avoir de lien profond. Par exemple, ne fournissez pas SportsEvent.potentialAction.
  • Fournissez BroadcastEvent.publishedOn et faites-le pointer vers l'entité BroadcastService représentant le canal sur lequel la diffusion aura lieu.

Sous-cas 2: le jeu est disponible en direct et inclus dans le catalogue de vidéos à la demande (cela peut se produire lorsqu'une rediffusion du jeu est en cours de diffusion).

  • Indiquez l'entité BroadcastEvent pour partager la programmation de la diffusion.
  • Indiquez les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant le canal et le lineup fournisseur.
  • Indiquez le lien profond BroadcastService vers le jeu, représenté par la propriété BroadcastService.potentialAction.
  • N'indiquez pas la propriété BroadcastEvent.potentialAction.
  • Comme le jeu peut être visionné en direct et qu'il fait partie du catalogue de vidéos à la demande, l'entité SportsEvent doit également comporter un lien profond. Par exemple, SportsEvent.potentialAction peut rediriger l'utilisateur vers le catalogue de vidéos à la demande.
  • Fournissez BroadcastEvent.publishedOn et faites-le pointer vers l'entité BroadcastService représentant le canal sur lequel la diffusion aura lieu.

Contrôles de qualité à effectuer

  • Le jeu sportif ne peut pas faire partie du catalogue de vidéos à la demande avant d'être diffusé. Par exemple, ne définissez pas SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts avant SportsEvent.startDate. .
  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est actif. Ne définissez pas la propriété sur true pour une nouvelle partie.
  • Pour les éléments BroadcastEvents qui ne sont pas en ligne, BroadcastEvent.startDate ne peut généralement pas être antérieur à l'élément startDate SportsEvent réel.
  • Pour les BroadcastEvents en direct (et non en rediffusion des jeux), les entités SportsEvent ne peuvent pas être disponibles dans le catalogue de vidéos à la demande. Par exemple, les entités SportsEvent ne peuvent pas comporter de lien profond.
  • Comme le jeu est diffusé sur une chaîne, ajoutez un lien profond à l'aide de la propriété BroadcastService.potentialAction. Dans ce cas, l'entité BroadcastEvent ne peut pas comporter de lien profond.

Exemples

Cas n° 1: un événement sportif faisant partie du catalogue de vidéos à la demande


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

Cas n° 2: un événement sportif diffusé en ligne sur un catalogue

Événement de diffusion


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

Événement sportif


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

Cas n° 3: un événement sportif diffusé en direct sur une chaîne via un catalogue

Événement de diffusion


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

Événement sportif


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

Entités BroadcastService, CableOrSatelliteService, TelevisionChannel, Organization telles que définies dans la section Chaîne de télévision en direct sous "Concepts"

Comment gérer les contenus supplémentaires ?

Qu'est-ce qu'un contenu supplémentaire ?
  • Récapitulatif aléatoire ou relecture de courts extraits
  • Aperçus du jeu
  • Temps forts du match
  • Bêtisiers
  • Extraits d'interviews de joueurs
  • Vidéos des coulisses
  • Avis sur les jeux (générés ou non par un utilisateur)
  • Autres extraits courts aléatoires du jeu
N° de série Cas d'utilisation Consignes de modélisation
Cas 1 J'ai ajouté des contenus supplémentaires dans mon catalogue de vidéos à la demande.
  • Cette option n'est pas acceptée et ne peut pas être fournie dans le flux.
  • ViTA permet toutefois de fournir un sous-ensemble de ce contenu. Contactez votre représentant Google pour en savoir plus sur ViTA.
Cas 2 J'ai des contenus supplémentaires dans mon catalogue en direct

Sous-cas 1: le contenu peut être diffusé en direct sur Internet

  • Indiquez l'entité BroadcastEvent pour partager la programmation de la diffusion.
  • Fournissez le lien profond du contenu à l'aide de la propriété BroadcastEvent.potentialAction .
  • Ajoutez toutes les métadonnées associées (à l'extrait) directement dans BroadcastEvent . Par exemple, vous pouvez ajouter des images à l'aide de la propriété BroadcastEvent.image . Vous pouvez ajouter des classifications par tranche d'âge à l'aide de la propriété BroadcastEvent.contentRating .
  • Comme ce type de contenu n'est pas de type SportsEvent, le flux ne doit pas contenir d'entité SportsEvent. Par conséquent, la propriété broadcastOfEvent sur BroadcastEvent ne doit pas être fournie.
  • Comme elle n'est pas associée à une chaîne, ne fournissez pas la propriété publishedOn sur BroadcastEvent.

Sous-cas 2: Le contenu est disponible en streaming sur Internet sur une chaîne

  • L'entité BroadcastEvent doit être fournie pour partager la planification de la diffusion.
  • Les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService doivent être fournies pour représenter le canal et le lineup fournisseur.
  • Le lien profond vers le jeu doit être simplement le lien profond BroadcastService , représenté par la propriété BroadcastService.potentialAction , qui doit être fournie.
  • La propriété BroadcastEvent.potentialAction ne doit pas être fournie.
  • Les métadonnées associées à l'extrait doivent être ajoutées directement à BroadcastEvent. Par exemple, des images peuvent être ajoutées à l'aide de la propriété BroadcastEvent.image. Vous pouvez ajouter des classifications par tranche d'âge à l'aide de la propriété BroadcastEvent.contentRating.
  • Comme ce type de contenu n'est pas de type SportsEvent, le flux ne doit pas contenir d'entité SportsEvent. Par conséquent, la propriété broadcastOfEvent sur BroadcastEvent ne doit pas être fournie.
  • Comme elle est liée à un canal, fournissez la propriété publishedOn sur BroadcastEvent.
Cas 3 Je propose des contenus supplémentaires dans le catalogue de vidéos à la demande et de la télévision en direct.

Étant donné que le contenu vidéo supplémentaire à la demande pour les contenus sportifs n'est pas accepté dans le flux aujourd'hui, il s'apparente au cas 2. Consultez les instructions.

Questions fréquentes

Q: Où puis-je trouver les spécifications associées aux entités mentionnées précédemment ?

R: Vous trouverez les spécifications requises ici.

Documentation générale Lien
SportsEvent Associer
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Associer
BroadcastEvent Associer

Q: Existe-t-il un document plus détaillé expliquant comment modéliser les chaînes de télévision en direct et les lineups ?

R: Oui. Vous trouverez plus d'informations dans la section Chaînes de télévision en direct, sous "Concepts". N'hésitez pas à demander l'accès en lecture si vous ne parvenez pas à afficher le document.

Q: ViTA est-il compatible avec des jeux en direct complets et des rediffusions de jeux complets ?

R: ViTA est compatible avec les métadonnées des rediffusions de jeux en direct complets et de l'ensemble des parties supplémentaires de la ligue (en plus d'un sous-ensemble de contenus supplémentaires).

  • Pour les partenaires disposant déjà d'un flux Media Actions fonctionnel avec Google, d'une offre de vidéo à la demande ou d'une offre de télévision en direct, le flux doit également se développer et inclure les types de SportsEvent compatibles.

    • À court terme, les partenaires peuvent utiliser ViTA pour l'ingestion de contenu supplémentaire. Permettre le déploiement à long terme de tous les types de contenus via le flux.
  • Pour les partenaires qui ne proposent pas de vidéo à la demande ni d'offre de télévision en direct, mais qui ne proposent que du sport de ligue et des contenus supplémentaires supplémentaires, ViTA est un excellent choix pour commencer. Contactez votre représentant Google pour en savoir plus sur ViTA.