SportsEvents : modélisation, bonnes pratiques et exemple de flux

Définition

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

Quels éléments peuvent être modélisés en tant qu'événement sportif ? Un match de sport
Qu'est-ce qui ne peut pas être modélisé en tant qu'événement sportif ?

Contenus courts, extraits ou vidéo supplémentaires En voici la liste:

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

Comment gérer ces contenus supplémentaires ?

Cas d'utilisation courants pour les événements sportifs

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

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

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 match.

Cas 3 Je dois modéliser un événement sportif qui fait 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 match.

Entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant la chaîne 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 alors indiquer les types d'entités dans la colonne "Entités requises" correspondante.

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

Numéro de série Entités requises Consignes
Cas 1

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

Entités requises

  • SportsEvent représentant le jeu

Consignes de modélisation

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

Cas 2

Je dois modéliser un SportsEvent qui fait partie de mon catalogue de télévision en direct et qui 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 match

Consignes de modélisation

Sous-cas 1: Le jeu n'est disponible qu'en direct (et ne fait pas partie du catalogue de vidéo à la demande).

  • L'entité BroadcastEvent doit être fournie pour partager le planning de la diffusion.
  • Le lien profond vers le jeu doit être fourni sur l'entité BroadcastEvent à l'aide de la propriété BroadcastEvent.potentialAction.
  • Étant donné que le jeu n'est disponible qu'en direct, l'entité SportsEvent ne doit comporter aucun lien profond. Autrement dit, l'attribut SportsEvent.potentialAction ne doit pas être fourni.
  • BroadcastEvent.broadcastOfEvent doit être fourni, car le jeu n'est associé à aucune chaîne de diffusion.

Sous-cas 2: Le jeu est disponible en direct et dans le catalogue de vidéo à la demande (ceci peut se produire lorsqu'une rediffusion de jeu est diffusée).

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

Des contrôles qualité à effectuer

  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est en cours. Ne définissez pas cette propriété sur true pour une rediffusion de jeu.
  • Pour les BroadcastEvents qui ne sont pas en ligne, la date BroadcastEvent.startDate ne peut généralement pas être antérieure à la startDate SportsEvent réelle.
  • BroadcastEvents ne doit pas avoir de propriété publishedOn , car la diffusion est diffusée sur Internet et n'est associée à aucune chaîne.
Cas 3

Je dois modéliser un SportsEvent qui fait partie de mon catalogue de télévision en direct et qui est diffusé 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 la chaîne et le lineup.

Consignes de modélisation

Sous-cas 1: Le jeu n'est disponible qu'en direct (et ne fait pas partie du catalogue de vidéo à la demande).

  • Partagez le programme de la diffusion. Pour ce faire, indiquez l'entité BroadcastEvent.
  • Représente le canal et le lineup du fournisseur. Pour ce faire, fournissez 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.
  • Étant donné que le jeu n'est disponible que pour le visionnage en direct, l'entité SportsEvent ne doit contenir aucun 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 dans le catalogue de vidéo à la demande (ceci peut se produire lorsqu'une rediffusion de jeu est diffusée).

  • Indiquez l'entité BroadcastEvent pour partager le planning de la diffusion.
  • Indiquez les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant le canal et le lineup du fournisseur.
  • Fournissez le lien profond BroadcastService vers la chaîne sur laquelle la diffusion du jeu aura lieu, représenté par la propriété BroadcastService.potentialAction.
  • N'indiquez pas la propriété BroadcastEvent.potentialAction.
  • Étant donné que le jeu est disponible pour le visionnage en direct et dans le catalogue de vidéo à la demande, l'entité SportsEvent doit également comporter un lien profond. Par exemple, vous pouvez fournir SportsEvent.potentialAction pour rediriger l'utilisateur vers le catalogue de vidéo à la demande.
  • Fournissez BroadcastEvent.publishedOn et faites-le pointer vers l'entité BroadcastService représentant le canal sur lequel la diffusion aura lieu.

Des contrôles qualité à effectuer

  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est en cours. Ne définissez pas cette propriété sur true pour une rediffusion de jeu.
  • Pour les BroadcastEvents qui ne sont pas en direct, la valeur BroadcastEvent.startDate ne peut généralement pas être antérieure à la startDate SportsEvent réelle.
  • Étant donné que 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 1: événement sportif faisant partie d'un catalogue de vidéo à 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 2: événement sportif faisant partie d'un catalogue de télévision en direct et diffusé en ligne

É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 3: événement sportif faisant partie d'un catalogue de télévision en direct et diffusé en ligne sur une chaîne

É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 et Organization telles que définies dans la section Chaîne de télévision en direct de la section "Concepts".

Comment gérer les contenus supplémentaires ?

Qu'est-ce qu'un contenu supplémentaire ?
  • Résumés aléatoires ou rediffusion de courts extraits
  • Aperçus du jeu
  • Temps forts du match
  • Bêtisiers dans les jeux
  • Extraits d'interviews de joueurs
  • Vidéos des coulisses
  • Avis sur les jeux (générés par les utilisateurs ou non)
  • D'autres courts extraits aléatoires provenant du jeu
Numéro de série Cas d'utilisation Consignes de modélisation
Cas 1 Mon catalogue de vidéo à la demande comporte du contenu supplémentaire.
  • Cet élément n'est pas accepté et ne peut pas être fourni dans le flux.
  • ViTA peut toutefois être utilisé pour fournir un sous-ensemble de ce contenu. Contactez votre représentant Google pour en savoir plus sur ViTA.
Cas 2 Mon catalogue en direct comporte du contenu supplémentaire

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

  • Indiquez l'entité BroadcastEvent pour partager le planning 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 la BroadcastEvent . Par exemple, des images peuvent être ajoutées à l'aide de la propriété BroadcastEvent.image . Les classifications par âge peuvent être ajoutées à 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.
  • Étant donné qu'elle n'est pas liée à un canal, n'indiquez pas la propriété publishedOn sur BroadcastEvent.

Sous-cas 2: Le contenu peut être diffusé en direct sur Internet sur une chaîne

  • L'entité BroadcastEvent doit être fournie pour partager le planning de la diffusion.
  • Vous devez fournir les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService pour représenter le canal et le lineup du fournisseur.
  • Le lien profond vers le jeu doit simplement être le lien profond BroadcastService , représenté par la propriété BroadcastService.potentialAction , qui doit être fourni.
  • Vous ne devez pas indiquer la propriété BroadcastEvent.potentialAction.
  • Toutes les métadonnées associées à l'extrait doivent être ajoutées directement à la BroadcastEvent. Par exemple, des images peuvent être ajoutées à l'aide de la propriété BroadcastEvent.image. Les classifications par âge peuvent être ajoutées à 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.
  • Étant donné qu'elle est liée à un canal, indiquez la propriété publishedOn sur le BroadcastEvent.
Cas 3 J'ai des contenus supplémentaires disponibles dans mon catalogue de vidéos à la demande et de télévision en direct

Étant donné que le contenu supplémentaire de la vidéo à la demande sur le sport n'est pas accepté dans le flux aujourd'hui, c'est semblable au cas 2. Consultez les instructions qui s'affichent ensuite.

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 Lien
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Lien
BroadcastEvent Lien

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îne de télévision en direct sous "Concepts". Si vous ne parvenez pas à afficher le document, n'hésitez pas à demander un accès en lecture.

Q: ViTA est-il compatible avec les matchs en direct et les rediffusions complètes ?

R: ViTA accepte les métadonnées sur les matchs complets en direct et les rediffusions de matchs dans leur intégralité (en plus d'un sous-ensemble de contenus supplémentaires).

  • Pour les partenaires qui disposent déjà d'un flux Media Actions fonctionnel avec Google, ou qui proposent une offre de vidéo à la demande ou de télévision en direct, Google a besoin que le flux soit étendu et qu'il inclue également les types SportsEvent acceptés.

    • À court terme, les partenaires peuvent utiliser ViTA pour l'ingestion de contenu supplémentaire. La compatibilité avec tous les types de contenus via le flux devrait s'étendre sur le long terme.
  • Pour les partenaires qui n'ont pas d'offre de vidéo à la demande ou de télévision en direct, mais qui ne proposent que des contenus sportifs et similaires associés à des ligues, ViTA est une excellente option pour commencer. Contactez votre représentant Google pour en savoir plus sur ViTA.