Mengintegrasikan Lanjutkan Menonton menggunakan REST API

book_path: /distribute/other-docs/_book.yaml project_path: /distribute/other-docs/_project.yaml

Engage SDK menawarkan REST API untuk memberikan pengalaman menonton terus-menerus yang konsisten di seluruh platform non-Android seperti iOS dan Roku TV. API ini memungkinkan developer memperbarui status "Lanjutkan Menonton" untuk pengguna yang memilih ikut serta dari platform non-Android.

Prasyarat

  • Anda harus menyelesaikan integrasi berbasis Engage SDK di perangkat terlebih dahulu. Langkah penting ini membuat pengaitan yang diperlukan antara ID pengguna Google dan AccountProfile aplikasi Anda.
  • Akses dan Autentikasi API: Untuk melihat dan mengaktifkan API di Project Google Cloud, Anda harus melalui proses daftar yang diizinkan. Semua permintaan API memerlukan autentikasi.

Mendapatkan Akses

Untuk mendapatkan akses guna melihat dan mengaktifkan API di Konsol Google Cloud, akun Anda harus terdaftar.

  1. ID Pelanggan Google Workspace akan tersedia. Jika tidak tersedia, Anda mungkin perlu menyiapkan Google Workspace serta Akun Google yang ingin Anda gunakan untuk memanggil API.
  2. Siapkan akun dengan Konsol Google Cloud menggunakan email yang terkait dengan Google Workspace.
  3. Buat project baru.
  4. Buat akun layanan untuk Autentikasi API. Setelah membuat akun layanan, Anda akan memiliki dua item:
    • ID akun layanan.
    • File JSON dengan kunci akun layanan Anda. Jaga keamanan file ini. Anda akan memerlukannya untuk mengautentikasi klien ke API nanti.
  5. Workspace dan Akun Google terkait kini dapat menggunakan REST API. Setelah perubahan diterapkan, Anda akan diberi tahu apakah API siap dipanggil oleh akun layanan Anda.
  6. Ikuti langkah-langkah berikut untuk bersiap melakukan panggilan API yang didelegasikan.

Memublikasikan Cluster Lanjutan

Untuk memublikasikan data penemuan video, lakukan permintaan POST ke API publishContinuationCluster menggunakan sintaksis berikut.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster

Dalam hal ini:

  • package_name: Nama paket penyedia media
  • accountId: ID unik untuk akun pengguna di sistem Anda. Harus cocok dengan accountId yang digunakan di jalur dalam perangkat.
  • profileId: ID unik untuk profil pengguna dalam akun di sistem Anda. ID ini harus cocok dengan profileId yang digunakan di jalur dalam perangkat.

URL untuk akun tanpa profil adalah:

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster

Payload ke permintaan ditampilkan di kolom entities. entities mewakili daftar entitas konten, yang dapat berupa MovieEntity atau TVEpisodeEntity. Kolom ini wajib diisi.

Isi Permintaan

Kolom

Jenis

Wajib

Deskripsi

entitas

Daftar Objek MediaEntity

Ya

Daftar entitas konten dengan maksimum 5. Hanya lima teratas yang akan dipertahankan dan sisanya akan dihapus. Daftar kosong diizinkan untuk menandakan pengguna telah selesai menonton semua entitas.

Kolom entities berisi movieEntity dan tvEpisodeEntity individual.

Kolom

Jenis

Wajib

Deskripsi

movieEntity

MovieEntity

Ya

Objek yang mewakili film dalam ContinuationCluster.

tvEpisodeEntity

TvEpisodeEntity

Ya

Objek yang merepresentasikan episode TV dalam ContinuationCluster.

Setiap objek dalam array entity harus berupa salah satu jenis MediaEntity yang tersedia, yaitu MovieEntity dan TvEpisodeEntity, beserta kolom umum dan khusus jenis.

Cuplikan kode berikut menampilkan payload isi permintaan untuk 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"
      }
    }
  ]
}

Menghapus data penemuan video

Gunakan clearClusters API untuk menghapus data penemuan video.

Untuk menghapus data cluster lanjutan, lakukan permintaan POST ke API clearClusters menggunakan sintaksis berikut.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters

Dalam hal ini:

  • package_name: Nama paket penyedia media.
  • accountId: ID unik untuk akun pengguna di sistem Anda. Harus cocok dengan accountId yang digunakan di jalur dalam perangkat.
  • profileId: ID unik untuk profil pengguna dalam akun di sistem Anda. ID ini harus cocok dengan profileId yang digunakan di jalur dalam perangkat.

Payload untuk clearClusters API hanya berisi satu kolom, reason, yang berisi DeleteReason yang menentukan alasan penghapusan data.

{
  "reason": "DELETE_REASON_LOSS_OF_CONSENT"
}

Pengujian

Setelah berhasil memposting data, gunakan akun pengujian pengguna untuk memverifikasi bahwa konten yang diharapkan muncul di baris "Lanjutkan Menonton" di platform Google yang ditargetkan seperti Google TV dan aplikasi seluler Google TV untuk Android dan iOS.

Saat pengujian, izinkan penundaan propagasi yang wajar selama beberapa menit dan patuhi persyaratan menonton, seperti menonton sebagian film atau menyelesaikan satu episode. Lihat panduan Tonton Berikutnya untuk developer aplikasi untuk mengetahui detailnya.