SportsEvents – Modellierung, Best Practices und Beispielfeed

Definition

Ein SportsEvent ist ein Entitätstyp, der ein Sportspiel oder eine vollständige Wiederholung eines Sportspiels darstellt.

Was kann als „SportsEvent“ modelliert werden? Ein Sportspiel
Was kann nicht als SportsEvent modelliert werden?

Kurzvideos, Clips oder begleitende Inhalte. Hier ist die Liste:

  • Zufällige Zusammenfassung oder kurze Clips wiedergeben
  • Vorschauen des Spiels
  • Highlights des Spiels
  • Bloopers im Spiel
  • Interviewclips mit Spielern
  • Videos mit Einblicken hinter die Kulissen
  • Spielrezensionen (von Nutzern erstellt oder anderweitig)
  • Zufällige kurze Clips aus dem Spiel

Wie gehe ich mit solchen begleitenden Inhalten um?

Gängige Anwendungsfälle für „SportsEvent“

S.No. Beschreibung Erforderliche Entitäten
Fall 1

Ich muss ein SportsEvent-Objekt modellieren, das Teil meines Live-TV-Katalogs ist und online gestreamt wird.

Das Spiel wird über das Internet gestreamt und ist keinem Kanal zugeordnet.

SportsEvent, das das Spiel repräsentiert.

BroadcastEvent, das die Übertragung des Spiels darstellt.

Fall 2 Ich möchte ein SportsEvent-Element modellieren, das Teil meines Live-TV-Katalogs ist und online auf einem Kanal gestreamt wird.

SportsEvent, das das Spiel repräsentiert.

BroadcastEvent, das die Ausstrahlung des Spiels darstellt.

BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService, die den Kanal und das Paket darstellen.

Fall 3 Kombinationen der beiden vorherigen Fälle. Wenn Sie die vorherigen Anwendungsfälle kombinieren, geben Sie alle Entitätstypen an, die in der entsprechenden Spalte „Erforderliche Entitäten“ aufgeführt sind.

Best Practices und Einblicke in einige unserer Prüfungen

Die folgenden Richtlinien und Qualitätsprüfungen gelten für die Modellierung von Sportveranstaltungen und deren Übertragungen.

Wenden Sie die folgenden Regeln auf alle SportsEvent-Integrationen an:

  • Alle Deeplinks für Sport auf SportsEvent.potentialAction platzieren: Deeplinks auf Spielebene (WatchAction) – sowohl für Livestreams ohne Kanal als auch für Video-on-Demand-Wiederholungen – müssen sich ausschließlich auf der Entität SportsEvent (SportsEvent.potentialAction) befinden. Platziere potentialAction niemals auf einem BroadcastEvent, der auf einen SportsEvent verweist. (Gib für lineare Kanalsendungen ohne ereignisspezifischen Deeplink den Deeplink des Kanals auf BroadcastService.potentialAction an.) Wenn ein Spiel mehrere Streams hat (z. B. regionale Feeds, Heim- oder Auswärtsübertragungen, mehrere Sprachen oder separate URLs für Live- und Video-on-Demand-Wiederholungen), gib ein Array von WatchAction-Objekten in SportsEvent.potentialAction an.
  • Pre-Roll-Zeitfenster (availabilityStarts): Legen Sie SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts mindestens 14 Tage vor SportsEvent.startDate (availabilityStarts <= SportsEvent.startDate - 14 days) fest, damit Kacheln für anstehende Spiele und Benachrichtigungen zum Einschalten im Voraus angezeigt werden können. Du musst die Feed-Entität nicht 14 Tage im Voraus bereitstellen. Ereignisdaten können auch kurz vor dem Spieltag bereitgestellt werden, solange der Zeitstempel availabilityStarts mindestens 14 Tage vor SportsEvent.startDate liegt.
  • Puffer für Verlängerung (availabilityEnds): Lege SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds nach SportsEvent.endDate mit einem Puffer von mindestens 2 bis 3 Stunden (availabilityEnds >= SportsEvent.endDate + 2 to 3 hours oder bis zum Ende des Wiedergabefensters für Video-on-Demand) fest, damit der Deeplink nicht während einer Verlängerung oder der Berichterstattung nach dem Spiel abläuft.
  • Anforderungen für @id und url:
    • Verwenden Sie unterschiedliche @id-Werte: BroadcastEvent.@id muss sich von SportsEvent.@id unterscheiden.
    • url weglassen: Fügen Sie BroadcastEvent- oder SportsEvent-Entitäten keine url-Property hinzu.
S.No. Erforderliche Entitäten Richtlinien
Fall 1

Ich muss ein SportsEvent-Objekt modellieren, das Teil meines Live-TV-Katalogs ist und online gestreamt wird.

Das Spiel wird über das Internet gestreamt und ist an keinen Kanal gebunden.

Erforderliche Entitäten

  • SportsEvent, das das Spiel darstellt
  • BroadcastEvent, das die Ausstrahlung des Spiels darstellt

Richtlinien für die Modellierung

Unterfall 1: Das Spiel ist nur live verfügbar (und nicht als Teil des Video-on-Demand-Katalogs)

  • Gib die Entität BroadcastEvent an, um den Sendeplan der Übertragung zu teilen. Verweise dabei mit BroadcastEvent.broadcastOfEvent auf das Spiel und gib das Land der Übertragung in BroadcastEvent.location an.
  • Gib den Deeplink zum Livestream in der Entität SportsEvent mit SportsEvent.potentialAction an (konfiguriert mit dem 14-tägigen Pre-Roll availabilityStarts und dem 2–3-stündigen Überzeitpuffer availabilityEnds).
  • Geben Sie nicht BroadcastEvent.potentialAction, BroadcastEvent.url oder SportsEvent.url an.
  • Gib keinen Wert für BroadcastEvent.publishedOn an, da das Spiel online ohne linearen Kanal gestreamt wird.

Unterfall 2: Das Spiel ist live und als Teil des Video-on-Demand-Katalogs verfügbar (z. B. wenn vollständige Spielwiederholungen on demand verfügbar bleiben)

  • Gib die Entität BroadcastEvent an, um das Programm jeder Sendung zu teilen (mit Verweis auf BroadcastEvent.broadcastOfEvent und Angabe von BroadcastEvent.location).
  • Fasse sowohl die Live- als auch die Video-on-Demand-Wiedergabe in SportsEvent.potentialAction zusammen. Dazu kannst du entweder availabilityEnds bis zum Ende des Video-on-Demand-Fensters verlängern, wenn die URL und die Berechtigungen identisch sind, oder mehrere WatchAction-Objekte in SportsEvent.potentialAction mit den entsprechenden actionAccessibilityRequirement-Fenstern angeben.
  • Geben Sie nicht BroadcastEvent.potentialAction, BroadcastEvent.url, SportsEvent.url oder BroadcastEvent.publishedOn an.

Qualitätsprüfungen

  • Setze BroadcastEvent.isLiveBroadcast auf den booleschen Wert true (ohne Anführungszeichen), wenn das Spiel live übertragen wird. Legen Sie false für eine geplante Wiederholung fest.
  • Bei BroadcastEvent-Entitäten, die nicht live sind, darf BroadcastEvent.startDate nicht vor SportsEvent.startDate liegen.
  • Füge parentOrganization (mit einer Wikipedia-sameAs-URL) sowohl in homeTeam als auch in awayTeam ein.
Fall 2

Ich möchte ein SportsEvent modellieren, das Teil meines Live-TV-Katalogs ist und auf einem Kanal online gestreamt wird.

Erforderliche Entitäten

  • SportsEvent, die das Spiel repräsentiert.
  • BroadcastEvent, das die Ausstrahlung des Spiels darstellt.
  • BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService Entitäten, die den Kanal und das Paket darstellen.

Richtlinien für die Modellierung

Unterfall 1: Das Spiel ist nur live auf dem linearen Kanal verfügbar (und nicht als Teil des Video-on-Demand-Katalogs)

  • Gib die Entität BroadcastEvent an, um das Programm der Übertragung zu teilen. Dabei verweist BroadcastEvent.publishedOn auf die Entität BroadcastService, BroadcastEvent.broadcastOfEvent auf die Entität SportsEvent und BroadcastEvent.location auf das Land der Übertragung.
  • Gib die Entitäten BroadcastService, Organization, TelevisionChannel und CableOrSatelliteService an, um den Kanal und das Line-up darzustellen, und den Deeplink des Kanals in BroadcastService.potentialAction.
  • Geben Sie niemals BroadcastEvent.potentialAction, BroadcastEvent.url oder SportsEvent.url an.
  • Wenn du auch einen direkten spielspezifischen Deeplink unterstützt, gib ihn unter SportsEvent.potentialAction an. Wenn die Wiedergabe nur über den Deeplink des linearen Kanals unter BroadcastService.potentialAction verfügbar ist, lass SportsEvent.potentialAction weg.

Unterfall 2: Das Spiel ist live auf einem Kanal und als Teil des Video-on-Demand-Katalogs verfügbar

  • Gib die Entität BroadcastEvent (mit publishedOn, broadcastOfEvent und location) an, um das Sendeprogramm des Kanals zu teilen.
  • Gib die Entitäten BroadcastService, Organization, TelevisionChannel und CableOrSatelliteService mit dem Deeplink des Kanals auf BroadcastService.potentialAction an.
  • Geben Sie niemals BroadcastEvent.potentialAction, BroadcastEvent.url oder SportsEvent.url an.
  • Gib SportsEvent.potentialAction für die Entität SportsEvent für das Wiedergabefenster auf Ereignisebene / Video-on-Demand an.

Qualitätsprüfungen

  • Setze BroadcastEvent.isLiveBroadcast auf den booleschen Wert true (ohne Anführungszeichen), wenn das Spiel live ist, und auf false für eine Wiederholung des Spiels.
  • Bei BroadcastEvent-Entitäten, die nicht live sind, darf BroadcastEvent.startDate nicht vor SportsEvent.startDate liegen.
  • Füge parentOrganization (mit einer Wikipedia-sameAs-URL) sowohl in homeTeam als auch in awayTeam ein.

Beispiele

Fall 1: Eine Sportveranstaltung, die Teil eines Live-TV-Katalogs ist und online gestreamt wird

Übertragungsereignis

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live_event/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": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": true,
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  },
  "location": {
    "@type": "Country",
    "name": "US"
  }
}

Sportveranstaltung

{
  "@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": "2019-09-16T10:00-08:00",
  "endDate": "2019-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": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "John Doe"
      }
    ]
  },
  "awayTeam": {
    "@type": "SportsTeam",
    "name": "Team A",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "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": "EP000194303282"
    }
  ],
  "potentialAction": {
    "@type": "WatchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "http://www.example.com/pbl_finals_game_6?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": "2019-09-01T10:00-08:00",
      "availabilityEnds": "2019-09-16T16:00-08:00",
      "requiresSubscription": {
        "@type": "MediaSubscription",
        "name": "Example Package",
        "commonTier": true,
        "@id": "http://www.example.com/example_package"
      },
      "eligibleRegion": [
        {
          "@type": "Country",
          "name": "US"
        }
      ]
    }
  }
}

Fall 2: Ein Sportereignis, das Teil eines Live-TV-Katalogs ist und online auf einem Kanal gestreamt wird

Übertragungsereignis

{
  "@context": ["http://schema.org", {"@language": "en"}],
  "@type": "BroadcastEvent",
  "@id": "http://example.com/live_event/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": "2019-09-16T10:00-08:00",
  "endDate": "2019-09-16T13:00-08:00",
  "videoFormat": "HD",
  "isLiveBroadcast": true,
  "publishedOn": {
    "@type": "BroadcastService",
    "@id": "http://example.com/stations/example_tv"
  },
  "broadcastOfEvent": {
    "@type": "SportsEvent",
    "@id": "http://example.com/basketball/professional/final_game_6"
  },
  "location": {
    "@type": "Country",
    "name": "US"
  }
}

Sportveranstaltung

{
  "@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": "2019-09-16T10:00-08:00",
  "endDate": "2019-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": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "athlete": [
      {
        "@type": "Person",
        "name": "John Doe"
      }
    ]
  },
  "awayTeam": {
    "@type": "SportsTeam",
    "name": "Team A",
    "sport": "https://en.wikipedia.org/wiki/Basketball",
    "parentOrganization": {
      "@type": "SportsOrganization",
      "name": "Professional Basketball League",
      "sameAs": "https://en.wikipedia.org/wiki/Professional_Basketball_League"
    },
    "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": "EP000194303282"
    }
  ]
}

BroadcastService-, CableOrSatelliteService-, TelevisionChannel- und Organization-Entitäten, wie im Abschnitt Live-TV-Kanal unter „Konzepte“ definiert.

Wie gehe ich mit begleitenden Inhalten um?

Was sind begleitende Inhalte?
  • Zufällige Zusammenfassung oder kurze Clips wiedergeben
  • Vorschauen des Spiels
  • Highlights des Spiels
  • Bloopers im Spiel
  • Interviewclips mit Spielern
  • Videos mit Einblicken hinter die Kulissen
  • Spielrezensionen (von Nutzern erstellt oder anderweitig)
  • Andere zufällige kurze Clips aus dem Spiel
S.No. Anwendungsfall Richtlinien für die Modellierung
Fall 1 Ich habe begleitende Inhalte in meinem Video-on-Demand-Katalog.
  • Dies wird nicht unterstützt und kann im Feed nicht angegeben werden.
  • ViTA kann jedoch verwendet werden, um einen Teil dieser Inhalte bereitzustellen. Weitere Informationen zu ViTA erhalten Sie von Ihrem Google-Ansprechpartner.
Fall 2 Ich habe begleitende Inhalte in meinem Live-Katalog.

Unterfall 1: Inhalte sind als Livestream im Internet verfügbar

  • Gib die Entität BroadcastEvent an, um das Programm der Übertragung zu teilen.
  • Geben Sie den Deeplink der begleitenden Inhalte mit dem Attribut BroadcastEvent.potentialAction an. Diese Ausnahme gilt nur für eigenständige begleitende Live-Inhalte, da im Feed keine SportsEvent-Entität vorhanden ist.
  • Füge alle zugehörigen Metadaten (zum Clip) direkt zum BroadcastEvent hinzu. Bilder können beispielsweise mit der Property BroadcastEvent.image hinzugefügt werden. Altersfreigaben können mit der Property BroadcastEvent.contentRating hinzugefügt werden.
  • Da dieser Inhaltstyp kein SportsEvent ist, darf der Feed keine SportsEvent-Entität enthalten. Daher darf die Property broadcastOfEvent für BroadcastEvent nicht angegeben werden.
  • Da es nicht mit einem Kanal verknüpft ist, gib das Attribut publishedOn nicht für BroadcastEvent an.

Unterfall 2: Inhalte sind als Livestream im Internet auf einem Kanal verfügbar

  • Die Entität BroadcastEvent muss angegeben werden, um den Sendeplan der Übertragung zu teilen.
  • Die Entitäten BroadcastService, Organization, TelevisionChannel und CableOrSatelliteService müssen angegeben werden, um den Kanal und das Angebot des Anbieters darzustellen.
  • Der Deeplink zum Spiel muss einfach der Deeplink BroadcastService sein, der durch die Property BroadcastService.potentialAction dargestellt wird, die angegeben werden muss.
  • Das Attribut BroadcastEvent.potentialAction darf nicht angegeben werden.
  • Alle mit dem Clip verknüpften Metadaten müssen direkt dem BroadcastEvent hinzugefügt werden. Bilder können beispielsweise mit der Property BroadcastEvent.image hinzugefügt werden. Altersfreigaben können mit der Property BroadcastEvent.contentRating hinzugefügt werden.
  • Da dieser Inhaltstyp kein SportsEvent ist, darf der Feed keine SportsEvent-Entität enthalten. Daher darf die Property broadcastOfEvent für BroadcastEvent nicht angegeben werden.
  • Da es mit einem Kanal verknüpft ist, gib die Property publishedOn für BroadcastEvent an.
Fall 3 Ich habe begleitende Inhalte sowohl im Video-on-Demand- als auch im Live-TV-Katalog.

Da begleitende Inhalte zu On-Demand-Sportvideos derzeit nicht im Feed akzeptiert werden, ist dies ähnlich wie Fall 2. Folgen Sie der Anleitung.

Häufig gestellte Fragen

F: Wo finde ich die zugehörigen Spezifikationen für die oben genannten Entitäten?

A: Die erforderlichen Spezifikationen finden Sie hier.

Allgemeine Dokumentation Link
SportsEvent Link
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Link
BroadcastEvent Link

F: Gibt es ein detaillierteres Dokument, in dem erklärt wird, wie die Live-TV-Kanäle und ‑Senderlisten modelliert werden?

A: Ja. Weitere Informationen findest du im Abschnitt Live-TV-Kanal unter „Konzepte“. Wenn Sie das Dokument nicht aufrufen können, fordern Sie bitte Lesezugriff an.

F: Unterstützt ViTA auch vollständige Live-Spiele und vollständige Spielwiederholungen?

A: ViTA unterstützt Metadaten für vollständige Live-Spiele und vollständige Spielwiederholungen (zusätzlich zu einer Teilmenge von begleitenden Inhalten).

  • Partner, die bereits einen funktionierenden Media Actions-Feed mit Google haben oder ein Video-on-Demand- oder Live-TV-Angebot haben, müssen den Feed erweitern und die unterstützten SportsEvent-Typen ebenfalls einbeziehen.

    • Kurzfristig können die Partner ViTA für die Aufnahme von begleitenden Inhalten verwenden. Langfristig sollen alle Arten von Inhalten über den Feed unterstützt werden.
  • Für Partner, die kein Video-on-Demand- oder Live-TV-Angebot haben, sondern nur ligabasierte Sportarten und zugehörige begleitende Inhalte anbieten, ist ViTA eine gute Option für den Einstieg. Weitere Informationen zu ViTA erhalten Sie von Ihrem Google-Ansprechpartner.