SportsEvents - Modelling, Best Practices and Sample Feed

Определение

SportsEvent – это тип объекта, представляющий спортивную игру или ее полную запись.

Что можно смоделировать как SportsEvent? Спортивная игра
Что нельзя моделировать как SportsEvent?

Любой короткий контент, клипы или дополнительный контент. Вот список:

  • случайные краткие пересказы или повторы коротких фрагментов;
  • Предпросмотр игры
  • Лучшие моменты игры
  • Смешные моменты из игр
  • Фрагменты интервью с игроками
  • Закулисные видео
  • Отзывы об играх (созданные пользователями или иным образом)
  • Случайные короткие видео из игры.

Как работать с дополнительным контентом?

Примеры использования SportsEvent

S.No. Описание Обязательные объекты
Пример 1 Мне нужно создать модель SportsEvent, которая входит в мой каталог видео по запросу. SportsEvent, представляющий игру.
Пример 2

Мне нужно создать модель SportsEvent, которая входит в каталог телеканалов и транслируется онлайн

Трансляция игры ведется через интернет и не связана с каким-либо каналом.

SportsEvent, представляющий игру.

BroadcastEvent, представляющий трансляцию игры.

Пример 3 Мне нужно смоделировать объект SportsEvent, который входит в каталог телепрограмм и транслируется онлайн на канале.

SportsEvent, представляющий игру.

Broadcast – трансляция игры.

BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService объекты, представляющие канал и подборку.

Случай 4 Сочетания трех описанных выше случаев. Если вы используете сочетание нескольких вариантов, описанных выше, то должны указать типы объектов в столбце "Требуемые объекты".

Рекомендации и информация о некоторых проверках, которые мы выполняем

S.No. Обязательные объекты Правила
Пример 1

Мне нужно создать модель SportsEvent, которая входит в мой каталог видео по запросу.

Обязательные объекты

  • SportsEvent, представляющий игру

Правила моделирования

Ссылка на контент в игре должна быть указана в объекте SportsEvent с помощью свойства SportsEvent.potentialAction.

Проверки качества

  • Установите SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityStarts не менее чем за 14 дней до SportsEvent.startDate. Мы не требуем предоставлять данные о спортивных событиях за 14 дней до их начала. Их можно передать позже. Однако значение availabilityStarts должно быть задано не позднее чем за 14 дней до начала события.
  • Укажите SportsEvent.potentialAction.actionAccessibilityRequirement.availabilityEnds после SportsEvent.endDate.
Пример 2

Мне нужно создать модель SportsEvent, которая входит в каталог телеканалов и транслируется онлайн.

Игра транслируется через интернет и не связана с каким-либо каналом.

Обязательные объекты

  • SportsEvent, представляющий игру
  • BroadcastEvent – трансляция игры.

Правила моделирования

Вариант 1. Игра доступна только в прямом эфире (не в каталоге видео по запросу)

  • Чтобы поделиться расписанием трансляции, необходимо указать объект BroadcastEvent.
  • Ссылка на контент должна быть указана в элементе BroadcastEvent с помощью свойства BroadcastEvent.potentialAction.
  • Поскольку игру можно смотреть только в прямом эфире, у объекта SportsEvent не должно быть ссылок на контент. То есть параметр SportsEvent.potentialAction указывать не нужно.
  • Параметр BroadcastEvent.broadcastOfEvent обязателен, поскольку игра не связана с трансляцией на каком-либо канале.

Вариант 2. Игра доступна в прямом эфире и в каталоге видео по запросу (например, когда транслируется повтор игры)

  • Чтобы поделиться расписанием трансляции, необходимо указать объект BroadcastEvent.
  • Ссылка на контент игры должна быть указана в элементе BroadcastEvent с помощью свойства BroadcastEvent.potentialAction.
  • Поскольку игра доступна для просмотра в прямом эфире в каталоге видео по запросу, у объекта SportsEvent также должна быть прямая ссылка. Чтобы перенаправлять пользователя в каталог видео по запросу, необходимо указать SportsEvent.potentialAction.
  • BroadcastEvent.publishedOn не должен быть указан, поскольку игра не связана с трансляцией на каком-либо канале.

Проверки качества

  • Когда игра начнется, задайте для свойства BroadcastEvent.isLiveBroadcast значение true. Не задавайте для свойства значение true при воспроизведении игры.
  • Для BroadcastEvents, которые не транслируются в прямом эфире, BroadcastEvent.startDate обычно не может быть раньше фактической SportsEvent startDate.
  • У объекта BroadcastEvents не должно быть свойства publishedOn , поскольку трансляция ведется в интернете и не привязана к каналу.
Пример 3

Мне нужна модель SportsEvent, которая входит в каталог телеканалов и транслируется онлайн на канале.

Обязательные объекты

  • SportsEvent, представляющий игру.
  • BroadcastEvent, представляющий трансляцию игры.
  • BroadcastService, Organization, TelevisionChannel, CableOrSatelliteService объекты, представляющие канал и подборку.

Правила моделирования

Вариант 1. Игра доступна только в прямом эфире (не в каталоге видео по запросу)

  • Поделитесь расписанием трансляции. Для этого укажите объект BroadcastEvent.
  • Представлять канал и список поставщиков. Для этого добавьте объекты BroadcastService, Organization, TelevisionChannel и CableOrSatelliteService .
  • Укажите BroadcastService ссылку на контент. Укажите его с помощью свойства BroadcastService.potentialAction.
  • Не указывайте свойство BroadcastEvent.potentialAction.
  • Поскольку игру можно смотреть только в прямом эфире, у объекта SportsEvent не должно быть ссылок на контент. Например, не указывайте SportsEvent.potentialAction.
  • Укажите BroadcastEvent.publishedOn и направьте его на объект BroadcastService, представляющий канал, на котором будет транслироваться передача.

Вариант 2. Игра транслируется в прямом эфире и доступна в каталоге видео по запросу (например, когда транслируется повтор игры)

  • Укажите BroadcastEvent, чтобы поделиться расписанием трансляции.
  • Укажите объекты BroadcastService, Organization, TelevisionChannel и CableOrSatelliteService, представляющие канал и список каналов поставщика.
  • Укажите ссылку на контент BroadcastService на канал, на котором будет транслироваться игра. Ссылка должна быть представлена свойством BroadcastService.potentialAction.
  • Не указывайте свойство BroadcastEvent.potentialAction.
  • Поскольку игру можно смотреть в прямом эфире и в каталоге видео по запросу, у объекта SportsEvent также должна быть прямая ссылка. Например, можно указать SportsEvent.potentialAction , чтобы перенаправлять пользователя в каталог видео по запросу.
  • Укажите BroadcastEvent.publishedOn и направьте его на объект BroadcastService, представляющий канал, на котором будет транслироваться передача.

Проверки качества

  • Укажите для свойства BroadcastEvent.isLiveBroadcast значение true, когда игра будет доступна. Не задавайте для свойства значение true при воспроизведении игры.
  • Для BroadcastEvents, которые не транслируются в прямом эфире, BroadcastEvent.startDate обычно не может быть раньше фактической SportsEvent startDate.
  • Поскольку игра транслируется на канале, добавьте ссылку на контент с помощью свойства BroadcastService.potentialAction. В этом случае у объекта BroadcastEvent не может быть ссылки на контент.

Примеры

Случай 1. Спортивное мероприятие, которое входит в каталог видео по запросу


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

Случай 2. Спортивное мероприятие, которое входит в каталог телеканалов и транслируется онлайн

Трансляция мероприятия


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

Спортивное мероприятие


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

Случай 3. Спортивное мероприятие, которое входит в каталог онлайн-телеканалов и транслируется онлайн на канале

Трансляция мероприятия


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

Спортивное мероприятие


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

BroadcastService, CableOrSatelliteService, TelevisionChannel, Organization объекты, определенные в разделе Канал онлайн-телевидения в разделе "Основные понятия"

Как работать с дополнительным контентом?

Что считается дополнительным контентом?
  • случайные краткие пересказы или повторы коротких фрагментов;
  • Предпросмотр игры
  • Лучшие моменты игры
  • Смешные моменты из игр
  • Фрагменты интервью с игроками
  • Закулисные видео
  • Отзывы об играх (созданные пользователями или иным образом)
  • Другие случайные короткие клипы из игры.
S.No. Пример использования Правила моделирования
Пример 1 В моем каталоге видео по запросу есть дополнительный контент.
  • Такие значения не поддерживаются и не могут быть указаны в фиде.
  • ViTA позволяет предоставить часть этого контента. Чтобы узнать больше о ViTA, обратитесь к представителю Google.
Пример 2 В моем каталоге трансляций есть дополнительный контент

Вариант 1. Контент доступен для трансляции в интернете

  • Укажите BroadcastEvent, чтобы поделиться расписанием трансляции.
  • Укажите ссылку на контент с помощью свойства BroadcastEvent.potentialAction .
  • Добавьте метаданные, связанные с клипом, непосредственно в элемент BroadcastEvent . Например, изображения можно добавить с помощью свойства BroadcastEvent.image . Возрастные ограничения можно добавить с помощью свойства BroadcastEvent.contentRating .
  • Поскольку этот тип контента не является SportsEvent, фид не должен содержать объект SportsEvent. Поэтому свойство broadcastOfEvent в объекте BroadcastEvent указывать не нужно.
  • Поскольку он не связан с каналом, не указывайте свойство publishedOn в объекте BroadcastEvent.

Вариант 2. Контент доступен для потоковой передачи в интернетена канале

  • Чтобы поделиться расписанием трансляции, необходимо указать объект BroadcastEvent.
  • Объекты BroadcastService, Organization, TelevisionChannel и CableOrSatelliteService должны быть указаны, чтобы представлять канал и подборку контента.
  • Ссылка на контент игры должна быть представлена в виде BroadcastService ссылки на контент, которая указывается в свойстве BroadcastService.potentialAction .
  • Свойство BroadcastEvent.potentialAction указывать не нужно.
  • Все связанные с клипом метаданные должны быть добавлены непосредственно в элемент BroadcastEvent. Например, изображения можно добавить с помощью свойства BroadcastEvent.image. Возрастные ограничения можно добавить с помощью свойства BroadcastEvent.contentRating.
  • Поскольку этот тип контента не является SportsEvent, фид не должен содержать объект SportsEvent. Поэтому свойство broadcastOfEvent в объекте BroadcastEvent указывать не нужно.
  • Поскольку это связано с каналом, укажите свойство publishedOn в объекте BroadcastEvent.
Пример 3 У меня есть дополнительный контент, который доступен как в каталоге видео по запросу, так и в каталоге телеканалов.

Поскольку контент, связанный со спортивными трансляциями по запросу, не принимается в фиде, этот случай похож на второй. Следуйте инструкциям.

Часто задаваемые вопросы

В: Где можно найти спецификации упомянутых выше объектов?

Ответ: Требования к спецификациям можно найти здесь.

Общая документация Ссылка
SportsEvent Ссылка
BroadcastService, Organization, TelevisionChannel , CableOrSatelliteService Ссылка
BroadcastEvent Ссылка

Вопрос. Есть ли более подробный документ, в котором объясняется, как моделировать онлайн-телеканалы и программы?

Да. Подробнее об этом можно прочитать в разделе Онлайн-телевидение в разделе «Основные понятия». Если у вас нет доступа к документу, запросите его.

Поддерживает ли ViTA полные трансляции игр и их повторы?

Ответ. ViTA поддерживает метаданные для полных трансляций игр лиги и повторов игр (а также для некоторых дополнительных материалов).

  • Если у вас уже есть рабочий фид действий с медиаконтентом, который вы передаете в Google, или вы предлагаете видео по запросу или прямой эфир, вам нужно расширить фид и добавить в него поддерживаемые типы SportsEvent.

    • В ближайшее время партнеры могут использовать ViTA для загрузки контента. Поддержка всех типов контента в фиде будет добавлена в долгосрочной перспективе.
  • Если вы не предлагаете видео по запросу или прямые трансляции, а показываете только спортивные соревнования и связанный с ними контент, ViTA – отличный вариант для начала работы. Чтобы узнать больше о ViTA, обратитесь к представителю Google.