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

Quels éléments peuvent être modélisés en tant qu'événements sportifs ? Un match de sport
Quels éléments ne peuvent pas être modélisés en tant qu'événements sportifs ?

Contenus courts, extraits ou 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 de match
  • 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 des é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éos à 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 de mes diffusions 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 jeu.

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 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 S. 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 dans l'entité SportsEvent à l'aide de la propriété SportsEvent.potentialAction.

Des contrôles qualité à effectuer

  • Le jeu "Sports" 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 de télévision en direct et de mes diffusions 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 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 ne peut être regardé qu'en direct, l'entité SportsEvent ne doit comporter aucun lien profond. Autrement dit, l'SportsEvent.potentialAction ne doit pas être fourni.
  • BroadcastEvent.broadcastOfEvent doit être fourni, car le jeu n'est lié à aucune chaîne de diffusion.

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

  • Vous devez fournir l'entité BroadcastEvent 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éos à la demande, l'entité SportsEvent doit également disposer d'un lien profond. L'SportsEvent.potentialAction doit être fourni pour rediriger l'utilisateur vers le catalogue de vidéo à la demande.
  • Vous ne devez pas indiquer BroadcastEvent.publishedOn, car le jeu n'est lié à aucune diffusion de canal.

Des contrôles qualité à effectuer

  • Le jeu "Sports" 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 placé avant SportsEvent.startDate.
  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est en cours de diffusion. Ne définissez pas la propriété sur true pour une rediffusion de jeu.
  • Pour les BroadcastEvents qui ne sont pas en ligne, la valeur 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 ne s'associe pas à un canal.
Cas 3

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 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-le avec la propriété BroadcastService.potentialAction.
  • Ne fournissez pas 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. Par exemple, ne fournissez pas SportsEvent.potentialAction.
  • Indiquez 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 fait partie du catalogue de vidéo à la demande (cela peut se produire lorsqu'une rediffusion de jeu est en cours de diffusion).

  • Indiquez l'entité BroadcastEvent pour partager le calendrier de 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.
  • Ne fournissez pas la propriété BroadcastEvent.potentialAction.
  • Le jeu pouvant être visionné en direct et faisant partie du 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.
  • Indiquez 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

  • Le jeu "Sports" 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 en cours de diffusion. Ne définissez pas la propriété sur true pour une rediffusion de jeu.
  • Pour les BroadcastEvents qui ne sont pas actifs, BroadcastEvent.startDate ne peut généralement pas être antérieur à 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 sous "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 de match
  • Extraits d'interviews de joueurs
  • Vidéos des coulisses
  • Avis sur les jeux (générés par les utilisateurs ou non)
  • Autres courts extraits aléatoires du jeu
Numéro S. Cas d'utilisation Consignes de modélisation
Cas 1 Mon catalogue de vidéos à la demande comporte des contenus supplémentaires.
  • Cet élément n'est pas accepté et ne peut pas être fourni dans le flux.
  • Vous pouvez toutefois utiliser ViTA 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 est disponible en streaming sur Internet.

  • Indiquez l'entité BroadcastEvent pour partager le calendrier de diffusion.
  • Fournissez le lien profond du contenu à l'aide de la propriété BroadcastEvent.potentialAction .
  • Ajoutez les métadonnées associées (à l'extrait) directement dans la BroadcastEvent . Par exemple, vous pouvez ajouter des images à l'aide de la propriété BroadcastEvent.image . Vous pouvez ajouter une classification par âge à l'aide de la propriété BroadcastEvent.contentRating .
  • Étant donné que 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, ne fournissez pas la propriété publishedOn sur BroadcastEvent.

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

  • Vous devez fournir l'entité BroadcastEvent pour partager le planning de la diffusion.
  • Les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService doivent être fournies 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 renseigner la propriété BroadcastEvent.potentialAction.
  • Toutes les métadonnées associées à l'extrait doivent être directement ajoutées à BroadcastEvent. Par exemple, vous pouvez ajouter des images à l'aide de la propriété BroadcastEvent.image. Vous pouvez ajouter des classifications par âge à l'aide de la propriété BroadcastEvent.contentRating.
  • Étant donné que 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'il est lié à un canal, indiquez la propriété publishedOn sur BroadcastEvent.
Cas 3 Je dispose de contenus supplémentaires dans mon catalogue de vidéos à la demande et de télévision en direct

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

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". N'hésitez pas à demander un accès en lecture si vous ne parvenez pas à afficher le document.

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

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

  • Pour les partenaires qui disposent déjà d'un flux d'actions multimédias fonctionnel avec Google, ou qui proposent une offre de vidéo à la demande ou de télévision en direct, Google exige 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é de tous les types de contenus via le flux devrait être déployée à long terme.
  • ViTA est une excellente option de départ pour les partenaires qui ne proposent pas d'offre de vidéo à la demande ni de télévision en direct, mais qui ne proposent que des contenus sportifs et autres liés à des championnats. Contactez votre représentant Google pour en savoir plus sur ViTA.