В этом руководстве описана модель данных и шаги по интеграции для публикации видео и онлайн-телевидения с помощью Engage SDK.
Модель данных MovieEntity
MovieEntity – полнометражный фильм. В следующей таблице приведены
основные поля.
| Общедоступные методы | Тип | Требования | Описание |
|---|---|---|---|
getName() |
Строка | Обязательно | Название фильма (например, "Мстители: Финал"). |
getDescription() |
Строка | Обязательно | Краткое описание, которое появляется при наведении указателя мыши. |
getPosterImages() |
List<Image> | Обязательно | Список изображений, используемых для постера фильма. |
getPlatformSpecificPlaybackUris() |
List<PlatformSpecificUri> | Обязательно | Ссылки на контент для воспроизведения на определенных платформах |
getDurationMillis() |
Долгота | Обязательно | Общая продолжительность фильма в миллисекундах. |
getCallToActionText() |
Строка | Обязательно (GTV) | Текст, побуждающий пользователя к действию (например, "Смотреть"). |
getTags() |
List<String> | Необязательно | Ключевые слова, используемые для категоризации (например, "боевик/триллер"). |
Модель данных LiveTvProgramEntity
LiveTvProgramEntity представляет программу, которая транслируется или будет транслироваться на определенном канале.
| Общедоступные методы | Тип | Требования | Описание |
|---|---|---|---|
getName() |
Строка | Обязательно | Название программы, например "Вечерние новости". |
getDescription() |
Строка | Обязательно | краткое описание программы; |
getPosterImages() |
List<Image> | Обязательно | Изображения, используемые для показа программы |
getAvailabilityTimeWindows() |
List<DisplayTimeWindow> | Обязательно | Запланированные временные интервалы для программы. |
getChannelId() |
Строка | Обязательно | Уникальный идентификатор телеканала. |
getChannelName() |
Строка | Обязательно | Название телеканала. |
getChannelLogoImage() |
Изображение | Обязательно | Изображение логотипа для телеканала |
getCallToActionText() |
Строка | Обязательно (GTV) | Текст запроса на взаимодействие |
getTags() |
List<String> | Необязательно | Ключевые слова, используемые для категоризации |
Примеры использования конструктора
Пример MovieEntity
Подробнее о MovieEntity.Builder…
MovieEntity movie = new MovieEntity.Builder()
.setName("La hora 25")
.setDescription("Brogan tiene 24 horas para revalorar su vida antes de ser encarcelado")
.addPosterImage(new Image.Builder()
.setImageUri(Uri.parse("https://www.example.com/movie_poster.png"))
.build())
.addPlatformSpecificPlaybackUri(new PlatformSpecificUri.Builder()
.setActionUri(Uri.parse("https://www.example.com"))
.setPlatformType(PlatformType.TYPE_ANDROID_TV)
.build())
.setDurationMillis(7200000L)
.setCallToActionText("Watch Now")
.addTag("Action/Thriller")
.build();
Пример LiveTvProgramEntity
Подробнее о LiveTvProgramEntity.Builder…
LiveTvProgramEntity liveProgram = new LiveTvProgramEntity.Builder()
.setName("3:30AM: NBC CT Late News")
.setDescription("The latest local news, weather and investigative stories.")
.setChannelId("https://www.example.com")
.setChannelName("Tastemade")
.setChannelLogoImage(new Image.Builder()
.setImageUri(Uri.parse("https://example.com/v1/channels/logo.png"))
.build())
.addAvailabilityTimeWindow(new DisplayTimeWindow.Builder()
.setStartTimestampMillis(1756713600000L)
.setEndTimestampMillis(1756715400000L)
.build())
.addPosterImage(new Image.Builder()
.setImageUri(Uri.parse("https://example.com/v1/assets/image.jpg"))
.build())
.setCallToActionText("Watch Now")
.addTag("News")
.build();
API
publishRecommendationClusters() будет использоваться для отправки контента в карусель. Для типа кластера должно быть задано значение RecommendationClusterType.TYPE_PROVIDER_ROW.
Ограничения и таргетинг
- Ограничения по количеству объектов. В карусели рекомендуемого контента может быть не более трех объектов.
- Таргетинг. Вы можете настроить контент рекомендуемой карусели для каждого отдельного устройства. Поскольку контент публикуется из клиентского приложения, установленного на устройстве, вы можете заполнять его уникальными персонализированными списками кандидатов для каждого пользователя или устройства. Однако вы несете ответственность за реализацию этой логики таргетинга, поскольку Engage SDK не предоставляет встроенной поддержки таргетинга.
Версия Engage SDK
Обратите внимание на минимальную версию Engage SDK, необходимую для этой интеграции:
engage-tv: 1.0.6