Integrare la funzionalità Continua a guardare utilizzando l'API REST

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'AccountProfile della 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.

  1. 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.
  2. Configura un account con la console Google Cloud utilizzando un indirizzo email associato a Google Workspace.
  3. Crea un nuovo progetto.
  4. 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.
  5. 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.
  6. 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 multimediali
  • accountId: l'ID univoco dell'account dell'utente nel tuo sistema. Deve corrispondere all'accountId utilizzato 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

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

Un oggetto che rappresenta un film all'interno di ContinuationCluster.

tvEpisodeEntity

TvEpisodeEntity

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'accountId utilizzato 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.