Mengintegrasikan fitur lanjutkan menonton menggunakan REST API

Engage SDK menawarkan REST API untuk memberikan pengalaman tontonan yang konsisten di seluruh platform non-Android seperti iOS dan Roku TV. API ini memungkinkan developer memperbarui status "Tontonan Lanjutan" untuk pengguna yang ikut serta dari platform non-Android.

Prasyarat

Mendapatkan Akses

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

  1. ID Pelanggan Google Workspace harus 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. Amankan 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 Engage, lakukan permintaan POST ke publishContinuationCluster API menggunakan sintaksis berikut.

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

Dengan:

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

URL untuk akun tanpa profil adalah:

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

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

Isi Permintaan

Kolom

Jenis

Wajib

Deskripsi

entities

Daftar Objek MediaEntity

Ya

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

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 mewakili episode TV dalam ContinuationCluster.

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

Cuplikan kode berikut menunjukkan payload isi permintaan untuk publishContinuationCluster API.

{
  "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 Engage

Gunakan clearClusters API untuk menghapus data Engage.

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

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

Dengan:

  • package_name: Nama paket penyedia media.
  • accountId: ID unik untuk akun pengguna di sistem Anda. ID ini harus cocok dengan accountId yang digunakan di jalur di perangkat.
  • profileId: ID unik untuk profil pengguna dalam akun di sistem Anda. ID ini harus cocok dengan profileId yang digunakan di jalur 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 tontonan lanjutan di platform Google target seperti Google TV dan aplikasi seluler Google TV Android dan iOS.

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