En esta guía, se describe el modelo de datos y los pasos de integración para publicar contenido de video y TV en vivo con el SDK de Engage.
Modelo de datos MovieEntity
MovieEntity representa una película de larga duración. En la siguiente tabla, se resumen los campos clave.
| Métodos públicos | Tipo | Requisito | Descripción |
|---|---|---|---|
getName() |
String | Obligatorio | Es el título de la película (p. ej., "Avengers: Endgame"). |
getDescription() |
String | Obligatorio | Es un resumen que proporciona contexto y que aparece cuando se desplaza el cursor. |
getPosterImages() |
Lista<Imagen> | Obligatorio | Es una lista de imágenes que se usan para mostrar el póster de la película. |
getPlatformSpecificPlaybackUris() |
Lista<PlatformSpecificUri> | Obligatorio | Son vínculos directos para la reproducción en plataformas específicas. |
getDurationMillis() |
Largo | Obligatorio | Es la duración total de la película, expresada en milisegundos. |
getCallToActionText() |
String | Obligatorio (GTV) | Es el texto que se muestra para solicitar la interacción del usuario (p. ej., "Ver ahora"). |
getTags() |
Lista<String> | Opcional | Son palabras clave que se usan para la clasificación (p. ej., "Acción/Suspenso"). |
Modelo de datos LiveTvProgramEntity
LiveTvProgramEntity representa un programa que se transmite o que se transmitirá en un canal específico.
| Métodos públicos | Tipo | Requisito | Descripción |
|---|---|---|---|
getName() |
String | Obligatorio | Es el título del programa (p. ej., "NBC CT Late News"). |
getDescription() |
String | Obligatorio | Es un resumen que proporciona contexto sobre el programa. |
getPosterImages() |
Lista<Imagen> | Obligatorio | Son imágenes que se usan para mostrar el programa. |
getAvailabilityTimeWindows() |
Lista<DisplayTimeWindow> | Obligatorio | Son los períodos programados para el programa. |
getChannelId() |
String | Obligatorio | Es el identificador único del canal de TV. |
getChannelName() |
String | Obligatorio | Es el nombre del canal de TV. |
getChannelLogoImage() |
Imagen | Obligatorio | Es la imagen del logotipo del canal de TV. |
getCallToActionText() |
String | Obligatorio (GTV) | Es el texto de la solicitud de interacción. |
getTags() |
Lista<String> | Opcional | Son palabras clave que se usan para la clasificación. |
Ejemplos de uso del compilador
Ejemplo de MovieEntity
Consulta 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();
Ejemplo de LiveTvProgramEntity
Consulta 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() se usará para enviar contenido candidato al carrusel de funciones. El tipo de clúster debe establecerse como RecommendationClusterType.TYPE_PROVIDER_ROW.
Límites de elementos y segmentación
- Límites de elementos: El carrusel de funciones muestra un máximo de 3 elementos.
- Segmentación: Puedes personalizar el contenido del carrusel de funciones para cada dispositivo individual. Dado que el contenido se publica desde la app cliente instalada en el dispositivo, puedes completarlo con listas de candidatos únicas y personalizadas por usuario o dispositivo. Sin embargo, eres responsable de implementar esta lógica de segmentación, ya que el SDK de Engage no proporciona compatibilidad integrada con la segmentación.
Versión del SDK de Engage
Ten en cuenta la versión mínima del SDK de Engage que se requiere para esta integración:
engage-tv: 1.0.6