Questa guida descrive il modello di dati e i passaggi di integrazione per la pubblicazione di contenuti video e TV in diretta utilizzando l'SDK Engage.
Modello di dati MovieEntity
MovieEntity rappresenta un film completo. La tabella seguente riassume i campi chiave.
| Metodi pubblici | Tipo | Requisito | Descrizione |
|---|---|---|---|
getName() |
Stringa | Obbligatorio | Il titolo del film (ad es. "Avengers: Endgame") |
getDescription() |
Stringa | Obbligatorio | Un riepilogo che fornisce il contesto e viene visualizzato al passaggio del mouse |
getPosterImages() |
List<Image> | Obbligatorio | Un elenco di immagini utilizzate per la visualizzazione del poster del film |
getPlatformSpecificPlaybackUris() |
List<PlatformSpecificUri> | Obbligatorio | Link diretti per la riproduzione su piattaforme specifiche |
getDurationMillis() |
Lungo | Obbligatorio | La durata totale del film in millisecondi |
getCallToActionText() |
Stringa | Obbligatorio (GTV) | Testo visualizzato per invitare l'utente a interagire (ad es. "Guarda ora") |
getTags() |
List<String> | Facoltativo | Parole chiave utilizzate per la categorizzazione (ad es. "Azione/Thriller") |
Modello di dati LiveTvProgramEntity
LiveTvProgramEntity rappresenta un programma in onda o in programma su un canale specifico.
| Metodi pubblici | Tipo | Requisito | Descrizione |
|---|---|---|---|
getName() |
Stringa | Obbligatorio | Il titolo del programma (ad es. "NBC CT Late News") |
getDescription() |
Stringa | Obbligatorio | Un riepilogo che fornisce il contesto del programma |
getPosterImages() |
List<Image> | Obbligatorio | Immagini utilizzate per la visualizzazione del programma |
getAvailabilityTimeWindows() |
List<DisplayTimeWindow> | Obbligatorio | Le finestre temporali pianificate per il programma |
getChannelId() |
Stringa | Obbligatorio | Identificatore univoco del canale TV |
getChannelName() |
Stringa | Obbligatorio | Nome del canale TV |
getChannelLogoImage() |
Immagine | Obbligatorio | Immagine del logo del canale TV |
getCallToActionText() |
Stringa | Obbligatorio (GTV) | Testo di invito all'interazione |
getTags() |
List<String> | Facoltativo | Parole chiave utilizzate per la categorizzazione |
Esempi di utilizzo del builder
Esempio di MovieEntity
Vedi 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();
Esempio di LiveTvProgramEntity
Vedi 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() verrà utilizzato per inviare i contenuti candidati al carosello di funzionalità. Il tipo di cluster deve essere impostato su RecommendationClusterType.TYPE_PROVIDER_ROW.
Limiti degli elementi e targeting
- Limiti degli elementi: il carosello di funzionalità mostra un massimo di 3 elementi.
- Targeting: puoi personalizzare i contenuti del carosello di funzionalità per ogni singolo dispositivo. Poiché i contenuti vengono pubblicati dall'app client installata sul dispositivo, puoi inserirli con elenchi di candidati unici e personalizzati per utente o dispositivo. Tuttavia, è tua responsabilità implementare questa logica di targeting, poiché l'SDK Engage non fornisce il supporto integrato per il targeting.
Versione dell'SDK Engage
Tieni presente la versione minima dell'SDK Engage richiesta per questa integrazione:
engage-tv: 1.0.6