L'SDK Engage offre un'API REST per fornire un'esperienza di riproduzione continua coerente su piattaforme non Android come iOS e Roku TV. L'API consente agli sviluppatori di aggiornare lo stato "Riproduzione continua" per gli utenti che hanno attivato la funzionalità da piattaforme non Android.
Prerequisiti
- Devi prima completare l'integrazione basata sull'SDK Engage sul dispositivo. Questo passaggio fondamentale stabilisce l'associazione necessaria tra l'ID utente di Google e l'
AccountProfiledella tua app. - Accesso API e autenticazione: per visualizzare e abilitare l'API nel progetto Google Cloud, devi seguire una procedura di inserimento nella lista consentita. Tutte le richieste API richiedono l'autenticazione.
Ottenere l'accesso
Per poter visualizzare e abilitare l'API nella console Google Cloud, il tuo account deve essere registrato.
- L'ID cliente Google Workspace deve essere disponibile. Se non è disponibile, potrebbe essere necessario configurare Google Workspace e tutti gli Account Google che vuoi utilizzare per chiamare l'API.
- Configura un account con la console Google Cloud utilizzando un indirizzo email associato a Google Workspace.
- Crea un nuovo progetto.
- Crea un account di servizio per l'autenticazione API. Una volta creato l'account di servizio, avrai due elementi:
- Un ID account di servizio.
- Un file JSON con la chiave del service account. Mantieni questo file al sicuro. Ti servirà per autenticare il client all'API in un secondo momento.
- L'area di lavoro e gli Account Google associati possono ora utilizzare le API REST. Una volta propagata la modifica, riceverai una notifica che ti informa se l'API è pronta per essere chiamata dai tuoi account di servizio.
- Segui questi passaggi per prepararti a effettuare una chiamata API delegata.
Pubblicare il cluster di continuazione
Per pubblicare i dati di Engage, esegui una richiesta POST all'API publishContinuationCluster utilizzando la seguente sintassi.
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster
Dove:
package_name: il nome del pacchetto del fornitore di contenuti multimedialiaccountId: l'ID univoco dell'account dell'utente nel tuo sistema. Deve corrispondere all'accountIdutilizzato nel percorso sul dispositivo.profileId: l'ID univoco del profilo dell'utente all'interno dell'account nel tuo sistema. Deve corrispondere al profileId utilizzato nel percorso sul dispositivo.
L'URL per l'account senza profilo è:
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster
Il payload della richiesta è rappresentato nel campo entities. entities
rappresenta un elenco di entità di contenuti, che possono essere MovieEntity o TVEpisodeEntity. Questo campo è obbligatorio.
Corpo della richiesta
Campo |
Tipo |
Obbligatorio |
Descrizione |
entities |
Elenco di oggetti MediaEntity |
Sì |
Elenco di entità di contenuti con un massimo di 5. Verranno conservati solo i primi cinque mentre gli altri verranno eliminati. È consentito un elenco vuoto per indicare che l' utente ha finito di guardare tutte le entità. |
Il campo entities contiene singoli movieEntity e tvEpisodeEntity.
Campo |
Tipo |
Obbligatorio |
Descrizione |
movieEntity |
MovieEntity |
Sì |
Un oggetto che rappresenta un film all'interno di ContinuationCluster. |
tvEpisodeEntity |
TvEpisodeEntity |
Sì |
Un oggetto che rappresenta un episodio TV all'interno di ContinuationCluster. |
Ogni oggetto nell'array delle entità deve essere uno dei tipi MediaEntity disponibili
ovvero MovieEntity e
TvEpisodeEntity,insieme a campi comuni e specifici per il tipo
campi.
Il seguente snippet di codice mostra il payload del corpo della richiesta per l'API publishContinuationCluster.
{
"entities": [
{
"movieEntity": {
"watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
"name": "Movie1",
"platform_specific_playback_uris": [
"https://www.example.com/entity_uri_for_android",
"https://www.example.com/entity_uri_for_iOS"
],
"poster_images": [
"http://www.example.com/movie1_img1.png",
"http://www.example.com/movie1_imag2.png"
],
"last_engagement_time_millis": 864600000,
"duration_millis": 5400000,
"last_play_back_position_time_millis": 3241111
}
},
{
"tvEpisodeEntity": {
"watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
"name": "TV SERIES EPISODE 1",
"platform_specific_playback_uris": [
"https://www.example.com/entity_uri_for_android",
"https://www.example.com/entity_uri_for_iOS"
],
"poster_images": [
"http://www.example.com/episode1_img1.png",
"http://www.example.com/episode1_imag2.png"
],
"last_engagement_time_millis": 864600000,
"duration_millis": 1800000,
"last_play_back_position_time_millis": 2141231,
"episode_display_number": "1",
"season_number": "1",
"show_title": "title"
}
}
]
}
Eliminare i dati di Engage
Utilizza l'API clearClusters per rimuovere i dati di Engage.
Per eliminare i dati del cluster di continuazione, esegui una richiesta POST all'API clearClusters utilizzando la seguente sintassi.
https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters
Dove:
package_name: il nome del pacchetto del fornitore di contenuti multimediali.accountId: l'ID univoco dell'account dell'utente nel tuo sistema. Deve corrispondere all'accountIdutilizzato nel percorso sul dispositivo.profileId: l'ID univoco del profilo dell'utente all'interno dell'account nel tuo sistema. Deve corrispondere al profileId utilizzato nel percorso sul dispositivo.
Il payload dell'API clearClusters contiene un solo campo, reason, che
contiene un DeleteReason che specifica il motivo della
rimozione dei dati.
{
"reason": "DELETE_REASON_LOSS_OF_CONSENT"
}
Test
Dopo aver pubblicato correttamente i dati, utilizza un account di test utente per verificare che i contenuti previsti vengano visualizzati nella riga di riproduzione continua sulle piattaforme Google di destinazione, come Google TV e le app mobile Google TV per Android e iOS.
Durante il test, consenti un ritardo di propagazione ragionevole di alcuni minuti e rispetta i requisiti di visualizzazione, ad esempio guardare una parte di un film o finire un episodio. Per maggiori dettagli, consulta le linee guida di Cosa guardare per gli sviluppatori di app.