book_path: /distribute/other-docs/_book.yaml project_path: /distribute/other-docs/_project.yaml
L'SDK Engage offre un'API REST per fornire un'esperienza coerente di Continua a guardare su piattaforme non Android come iOS e Roku TV. L'API consente agli sviluppatori di aggiornare lo stato "Continua a guardare" per gli utenti che hanno attivato l'opzione da piattaforme non Android.
Prerequisiti
- Devi prima completare l'integrazione basata sull'SDK Engage on-device. Questo passaggio fondamentale stabilisce l'associazione necessaria
tra l'ID utente di Google e il
AccountProfiledella tua app. - Accesso e autenticazione API: per visualizzare e abilitare l'API nel tuo progetto Google Cloud, devi superare un processo di allowlist. Tutte le richieste API richiedono l'autenticazione.
Ottenere l'accesso
Per accedere alla visualizzazione e all'attivazione dell'API nella console Google Cloud, il tuo account deve essere registrato.
- L'ID cliente Google Workspace deve essere disponibile. Se non è disponibile, potresti dover configurare un account 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 service account per l'autenticazione API. Una volta creato il service account, avrai due elementi:
- Un ID service account.
- 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.
- Workspace e gli Account Google associati ora possono utilizzare le API REST. Una volta propagata la modifica, riceverai una notifica che ti comunicherà se l'API è pronta per essere chiamata dai tuoi service account.
- Segui questi passaggi per prepararti a effettuare una chiamata API delegata.
Pubblica cluster di continuazione
Per pubblicare i dati di scoperta dei video, 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 aaccountIdutilizzato nel percorso sul dispositivo.profileId: l'ID univoco del profilo dell'utente all'interno dell'account nel tuo sistema. Deve corrispondere a profileId utilizzato nel percorso sul dispositivo.
L'URL dell'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
Field |
Tipo |
Obbligatorio |
Descrizione |
entità |
Elenco di oggetti MediaEntity |
Sì |
Elenco di entità di contenuti con un massimo di 5. Verranno conservati solo i primi cinque e gli altri verranno eliminati. È consentito un elenco vuoto per indicare che l'utente ha terminato di guardare tutte le entità. |
Il campo entities contiene movieEntity e tvEpisodeEntity individuali.
Field |
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 di entità deve essere uno dei tipi MediaEntity disponibili,
ovvero MovieEntity e
TvEpisodeEntity, insieme ai campi comuni e specifici per tipo.
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 degli annunci video discovery
Utilizza l'API clearClusters per rimuovere i dati di rilevamento dei video.
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 aaccountIdutilizzato nel percorso sul dispositivo.profileId: l'ID univoco del profilo dell'utente all'interno dell'account nel tuo sistema. Deve corrispondere a profileId utilizzato nel percorso sul dispositivo.
Il payload per l'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 "Continua a guardare" sulle piattaforme Google di destinazione, come Google TV e le app mobile Google TV per Android e iOS.
Durante i test, consenti un ritardo di propagazione ragionevole di alcuni minuti e rispetta i requisiti di visualizzazione, ad esempio la visione di una parte di un film o il completamento di un episodio. Per maggiori dettagli, consulta le linee guida di Cosa guardare per gli sviluppatori di app.