Este guia descreve o modelo de dados e as etapas de integração para publicar conteúdo de vídeo e TV ao vivo usando o SDK Engage.
Modelo de dados MovieEntity
O MovieEntity representa um longa-metragem. A tabela a seguir resume os campos principais.
| Métodos públicos | Tipo | Requisito | Descrição |
|---|---|---|---|
getName() |
String | Obrigatório | O título do filme (por exemplo, "Vingadores: Ultimato") |
getDescription() |
String | Obrigatório | Um resumo com contexto que aparece ao passar o cursor |
getPosterImages() |
List<Image> | Obrigatório | Uma lista de imagens usadas para a exibição do pôster do filme. |
getPlatformSpecificPlaybackUris() |
List<PlatformSpecificUri> | Obrigatório | Links diretos para reprodução em plataformas específicas |
getDurationMillis() |
Longo | Obrigatório | A duração total do filme em milissegundos |
getCallToActionText() |
String | Obrigatório (GTV) | Texto exibido para solicitar a interação do usuário (por exemplo, "Assistir agora") |
getTags() |
List<String> | Opcional | Palavras-chave usadas para categorização (por exemplo, "Ação/Suspense") |
Modelo de dados LiveTvProgramEntity
O LiveTvProgramEntity representa um programa que está sendo transmitido ou que será transmitido em um canal específico.
| Métodos públicos | Tipo | Requisito | Descrição |
|---|---|---|---|
getName() |
String | Obrigatório | O título do programa (por exemplo, "NBC CT Late News") |
getDescription() |
String | Obrigatório | Um resumo que fornece contexto sobre o programa |
getPosterImages() |
List<Image> | Obrigatório | Imagens usadas para a exibição do programa |
getAvailabilityTimeWindows() |
List<DisplayTimeWindow> | Obrigatório | Os períodos programados para o programa |
getChannelId() |
String | Obrigatório | Identificador exclusivo do canal de TV |
getChannelName() |
String | Obrigatório | Nome do canal de TV |
getChannelLogoImage() |
Imagem | Obrigatório | Imagem do logotipo do canal de TV |
getCallToActionText() |
String | Obrigatório (GTV) | Texto do comando de interação |
getTags() |
List<String> | Opcional | Palavras-chave usadas para categorização |
Exemplos de uso do criador
Exemplo de MovieEntity
Consulte 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()
.setUri("https://www.example.com")
.setPlatformType(PlatformType.TYPE_TV)
.build())
.setDurationMillis(7200000L)
.setCallToActionText("Watch Now")
.addTag("Action/Thriller")
.build();
Exemplo de LiveTvProgramEntity
Consulte 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
O publishRecommendationClusters() será usado para enviar conteúdo candidato ao carrossel de recursos. O tipo de cluster precisa ser definido como RecommendationClusterType.TYPE_PROVIDER_ROW.
Limites de itens e segmentação
- Limites de itens:o carrossel de destaque mostra no máximo três itens.
- Segmentação:é possível personalizar o conteúdo do carrossel em destaque para cada dispositivo individual. Como o conteúdo é publicado pelo app cliente instalado no dispositivo, é possível preencher com listas de candidatos exclusivas e personalizadas por usuário ou dispositivo. No entanto, você é responsável por implementar essa lógica de segmentação, já que o SDK Engage não oferece suporte integrado à segmentação.
Versão do SDK Engage
Observe a versão mínima do SDK do Engage necessária para essa integração:
engage-tv: 1.0.6