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

Définition

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

Que peut-on modéliser en tant que SportsEvent ? Un match
Que ne pouvez-vous pas modéliser en tant que SportsEvent ?

Tout contenu court, extrait ou contenu supplémentaire Voici la liste:

  • Revoir des extraits courts ou regarder un Recap aléatoire
  • Aperçus du jeu
  • Moments forts du match
  • Bêtisiers de jeux
  • Extraits d'interviews de joueurs
  • Vidéos des coulisses
  • Avis sur les jeux (générés par les utilisateurs ou non)
  • Shorts courts aléatoires du jeu

Comment gérer ce type de contenu ?

Cas d'utilisation courants pour SportsEvents

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 programmes TV en direct et qui est diffusé en ligne

Le jeu est diffusé en streaming sur Internet et n'est associé à aucune chaîne.

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 programmes télévisés 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 la programmation.

Exemple 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 sur quelques vérifications que nous effectuons

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 match doit être fourni dans l'entité SportsEvent à l'aide de la propriété SportsEvent.potentialAction.

Contrôles qualité à effectuer

  • Définissez la SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts au moins 14 jours avant la SportsEvent.startDate. L'objectif n'est pas de rendre obligatoire la fourniture de données sur les événements sportifs 14 jours à l'avance. Les données sur les événements peuvent être fournies plus tard. Toutefois, la valeur "availabilityStarts" doit être définie au moins 14 jours avant l'événement.
  • Définissez SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds après SportsEvent.endDate.
Cas 2

Je dois modéliser un SportsEvent qui fait partie de mon catalogue de programmes TV en direct et qui est diffusé en ligne.

Le jeu est diffusé en streaming sur Internet et n'est associé à aucune chaîne.

Entités requises

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

Consignes de modélisation

Sous-cas 1: Le match 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 programmation de la diffusion.
  • Le lien profond vers le jeu doit être fourni dans l'entité BroadcastEvent à l'aide de la propriété BroadcastEvent.potentialAction.
  • Étant donné que le match ne peut être regardé qu'en direct, l'entité SportsEvent ne doit pas comporter de liens profonds. Autrement dit, SportsEvent.potentialAction ne doit pas être fourni.
  • BroadcastEvent.broadcastOfEvent doit être fourni, car le match n'est associé à aucune diffusion de chaîne.

Sous-cas 2: Le match est disponible en direct et dans le catalogue de vidéos à la demande (cela peut se produire lorsqu'une rediffusion d'un match est diffusée)

  • L'entité BroadcastEvent doit être fournie pour partager la programmation 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 est disponible en direct dans le catalogue de vidéos à la demande, l'entité SportsEvent doit également comporter un lien profond. Le 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 match n'est associé à aucune diffusion de chaîne.

Contrôles qualité à effectuer

  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est effectivement en ligne. Ne définissez pas la propriété sur true pour une relecture de jeu.
  • Pour les BroadcastEvents qui ne sont pas diffusées, BroadcastEvent.startDate ne peut généralement pas être antérieur à l'startDate SportsEvent réel.
  • BroadcastEvents ne doit pas avoir de propriété publishedOn , car la diffusion est diffusée sur Internet et ne s'associe pas à une 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 match.
  • Entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant la chaîne et la programmation.

Consignes de modélisation

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

  • Partager le calendrier de la diffusion Pour ce faire, fournissez l'entité BroadcastEvent.
  • Représenter la chaîne et la gamme de fournisseurs Pour ce faire, fournissez les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService .
  • Indiquez 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 pas comporter de lien profond. Par exemple, ne fournissez pas SportsEvent.potentialAction.
  • Fournissez BroadcastEvent.publishedOn et pointez-le vers l'entité BroadcastService représentant la chaîne sur laquelle la diffusion aura lieu.

Sous-cas 2: Le match est disponible en direct et dans le catalogue de vidéos à la demande (cela peut se produire lorsqu'une rediffusion d'un match est diffusée)

  • Fournissez l'entité BroadcastEvent pour partager le calendrier de la diffusion.
  • Fournissez les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService représentant la chaîne et la programmation du fournisseur.
  • Fournissez le lien profond BroadcastService vers la chaîne sur laquelle la diffusion du match aura lieu, représentée par la propriété BroadcastService.potentialAction.
  • Ne fournissez pas la propriété BroadcastEvent.potentialAction.
  • Étant donné que le jeu est disponible en direct et dans le catalogue de vidéos à la demande, l'entité SportsEvent doit également comporter un lien profond. Par exemple, vous pouvez fournir SportsEvent.potentialAction , qui redirige l'utilisateur vers le catalogue de vidéos à la demande.
  • Fournissez BroadcastEvent.publishedOn et pointez-le vers l'entité BroadcastService représentant la chaîne sur laquelle la diffusion aura lieu.

Contrôles qualité à effectuer

  • Définissez la propriété BroadcastEvent.isLiveBroadcast sur true lorsque le jeu est effectivement en ligne. Ne définissez pas la propriété sur true pour une relecture de jeu.
  • Pour les BroadcastEvents qui ne sont pas actives, BroadcastEvent.startDate ne peut généralement pas être antérieur à l'startDate SportsEvent réel.
  • Étant donné que le match 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 avoir de lien profond.

Exemples

Cas 1: É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-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"
        }
      ]
    }
  }
}

Cas 2: Événement sportif faisant partie du catalogue de TV en direct et diffusé en streaming 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 du catalogue de TV en direct et diffusé en streaming 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 le contenu supplémentaire ?

Qu'est-ce qu'un contenu supplémentaire ?
  • Revoir des extraits courts ou regarder un Recap aléatoire
  • Aperçus du jeu
  • Moments forts du match
  • Bêtisiers de jeux
  • Extraits d'interviews de joueurs
  • Vidéos des coulisses
  • Avis sur les jeux (générés par les utilisateurs ou non)
  • Autres extraits courts aléatoires du jeu
Cas d'utilisation Consignes de modélisation
Cas 1 Je propose des contenus complémentaires dans mon catalogue de vidéo à la demande.
  • Cette fonctionnalité n'est pas prise en charge et ne peut pas être fournie 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 Je dispose de contenus supplémentaires dans mon catalogue en ligne

Sous-cas 1: Le contenu est disponible en streaming en direct sur Internet

  • Fournissez l'entité BroadcastEvent pour partager le calendrier de la diffusion.
  • Indiquez le lien profond du contenu à l'aide de la propriété BroadcastEvent.potentialAction .
  • Ajoutez les métadonnées associées (au clip) directement à 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 un 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 il n'est pas associé à un canal, ne fournissez pas la propriété publishedOn sur BroadcastEvent.

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

  • L'entité BroadcastEvent doit être fournie pour partager la programmation de la diffusion.
  • Les entités BroadcastService, Organization, TelevisionChannel et CableOrSatelliteService doivent être fournies pour représenter la chaîne et la programmation 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 fournie.
  • La propriété BroadcastEvent.potentialAction ne doit pas être fournie.
  • Toutes les métadonnées associées (au clip) doivent être ajoutées directement à 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 un 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 il est associé à une chaîne, fournissez la propriété publishedOn sur le BroadcastEvent.
Cas 3 Je propose des contenus supplémentaires dans le catalogue de vidéos à la demande et de programmes télévisés en direct.

Étant donné que les contenus de sport à la demande ne sont pas acceptés dans le flux pour le moment, cette situation est similaire à celle du cas 2. Suivez 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 globale 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 et les programmes de télévision en direct ?

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 l'accès en lecture si vous ne parvenez pas à consulter le document.

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

R: ViTA est compatible avec les métadonnées sur les matchs en direct complets et les rediffusions de matchs complets basés sur les ligues (en plus d'un sous-ensemble de contenus associés).

  • Pour les partenaires qui disposent déjà d'un flux d'actions multimédias fonctionnel avec Google ou d'une offre de vidéo à la demande ou de télévision en direct, Google exige que le flux soit étendu et inclue également les types SportsEvent compatibles.

    • À court terme, les partenaires peuvent utiliser ViTA pour l'ingestion de contenus en marge. La prise en charge de tous les types de contenus via le flux devrait être déployée à long terme.
  • Pour les partenaires qui ne proposent pas de vidéo à la demande ni de télévision en direct, mais qui diffusent uniquement des contenus sportifs et des contenus associés basés sur des ligues, ViTA est une excellente option pour commencer. Contactez votre représentant Google pour en savoir plus sur ViTA.