Menggunakan IMA DAI SDK di Android

Memutar streaming VOD yang terdaftar dengan Google Cloud Video Stitcher API

Panduan ini menunjukkan cara menggunakan IMA DAI SDK untuk Android guna meminta dan memutar sesi streaming VOD Google Cloud.

Panduan ini memperluas contoh dasar dari Panduan memulai untuk DAI IMA.

Untuk informasi tentang cara berintegrasi dengan platform lain atau menggunakan SDK sisi klien IMA, lihat Interactive Media Ads SDK.

Jika Anda ingin melihat atau mengikuti integrasi contoh yang telah selesai, download contoh penggabung video Cloud.

Menyiapkan project Google Cloud

Masukkan variabel berikut untuk digunakan di IMA SDK:

Lokasi
Region Google Cloud tempat konfigurasi VOD Anda dibuat: LOCATION
Nomor project
Nomor project Google Cloud yang menggunakan Video Stitcher API: PROJECT_NUMBER
Token OAuth

Token OAuth berumur pendek akun layanan dengan peran pengguna Video Stitcher:

OAUTH_TOKEN

Baca selengkapnya tentang membuat token OAuth jangka pendek. Token OAuth dapat digunakan kembali di beberapa permintaan selama belum berakhir masa berlakunya.

Kode jaringan

Kode jaringan Ad Manager untuk meminta iklan: NETWORK_CODE

ID konfigurasi VOD

ID konfigurasi VOD untuk streaming VOD: VOD_CONFIG_ID

Baca selengkapnya tentang cara membuat ID konfigurasi VOD di Panduan pembuatan konfigurasi VOD dengan penyambungan cloud.

Menyiapkan contoh dasar

Buka halaman rilis GitHub DAI Android IMA, lalu download contoh dasar. Contoh ini adalah aplikasi Android yang dapat Anda buka di Android Studio untuk tujuan pengujian.

Untuk menguji dengan streaming VOD non-Cloud Video Stitcher, tetapkan konstanta CONTENT_TYPE di SampleAdsWrapper.java ke ContentType.VOD_HLS, atau ContentType.VOD_DASH, untuk memuat ID CMS dan ID video yang sesuai untuk streaming. Kemudian, di SampleVideoPlayer.java, tetapkan currentlyPlayingStreamType ke CONTENT_TYPE_HLS, atau CONTENT_TYPE_DASH, untuk menangani metadata jenis streaming yang Anda pilih dengan benar.

Jika semuanya berfungsi dengan baik, mengklik tombol putar di pemutar video akan memulai film pendek "Tears of Steel", dengan jeda iklan pre-roll.

Meminta streaming VOD

Untuk mengganti streaming sampel dengan streaming VOD yang digabungkan dengan iklan, gunakan sdkFactory.createVideoStitcherVodStreamRequest() untuk membuat sesi iklan dengan Google Ad Manager. Anda dapat menggunakan UI Google Ad Manager untuk menemukan sesi DAI yang dihasilkan guna pemantauan dan proses debug.

sdkFactory.createVideoStitcherVodStreamRequest() tersedia di IMA DAI SDK v3.30.0 atau yang lebih tinggi.

Untuk menggunakan sdkFactory.createVideoStitcherVodStreamRequest() dengan parameter vodConfigId, diperlukan IMA DAI SDK versi 3.33.0 atau yang lebih tinggi.

Dalam contoh yang ada, ada pernyataan kondisional untuk meminta streaming VOD atau live stream. Agar berfungsi dengan Google Cloud Video Stitcher API, Anda perlu menambahkan jalur baru untuk menampilkan StreamRequest yang dibuat menggunakan sdkFactory.createVideoStitcherVodStreamRequest().

Berikut contohnya:

videoplayerapp/SampleAdsWrapper.java

...
private enum ContentType {
  LIVE_HLS,
  LIVE_DASH,
// Add a VOD HLS Google Cloud type. DASH streams are also supported.
  VOD_HLS_GOOGLE_CLOUD,
  VOD_DASH_GOOGLE_CLOUD,
  VOD_HLS,
  VOD_DASH,
}

// Set CONTENT_TYPE to the associated enum for the
// stream type you would like to test.
private static final ContentType CONTENT_TYPE =
    ContentType.VOD_HLS_GOOGLE_CLOUD;
...

@Nullable
  private StreamRequest buildStreamRequest() {
    StreamRequest request;
    switch (CONTENT_TYPE) {
      ...
      case VOD_HLS_GOOGLE_CLOUD:
      case VOD_DASH_GOOGLE_CLOUD:
        // VOD HLS or DASH stream generated by the
        // Google Cloud Video Stitcher API.
        request = sdkFactory.createVideoStitcherVodStreamRequest(
          "NETWORK_CODE",
          "LOCATION",
          "PROJECT_NUMBER",
          "OAUTH_TOKEN",
          "VOD_CONFIG_ID"
        );
        if (CONTENT_TYPE == ContentType.VOD_HLS_GOOGLE_CLOUD) {
          request.setFormat(StreamFormat.HLS);
        } else {
          request.setFormat(StreamFormat.DASH);
        }
        return request;
    }
    // Content type not selected.
    return null;
  }
  ...

Muat ulang aplikasi untuk meminta dan memutar streaming VOD kustom Anda.

(Opsional) Menambahkan opsi sesi streaming

Sesuaikan permintaan streaming Anda dengan menambahkan opsi sesi untuk mengganti konfigurasi Cloud Video Stitcher API default menggunakan StreamRequest.setVideoStitcherSessionOptions(). Jika Anda memberikan opsi yang tidak dikenal, Cloud Video Stitcher API akan merespons dengan error HTTP 400. Lihat panduan pemecahan masalah untuk mendapatkan bantuan.

Misalnya, Anda dapat mengganti opsi manifes dengan cuplikan kode berikut, yang meminta dua manifes streaming dengan tampilan yang diurutkan dari kecepatan bit terendah ke tertinggi.

public void requestAndPlayAds() {
  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  StreamRequest streamRequest = buildStreamRequest();

  // The following session options are examples. Use session options
  // that are compatible with your video stream.
  Map<String, Object> sessionOptions = Map.of(
    "manifestOptions", Map.of(
      "bitrateOrder", "ascending"
    )
  );

  /* sessionOptions JSON structure.
   * {
   *  "manifestOptions": {
   *    "bitrateOrder": "ascending"
   *  }
   * };
   */

  streamRequest.setVideoStitcherSessionOptions(sessionOptions);
  adsLoader.requestStream(streamRequest);
}

Pembersihan

Setelah Anda berhasil menghosting streaming VOD menggunakan Google Cloud Video Stitcher API dan memintanya menggunakan IMA DAI SDK untuk Android, Anda harus membersihkan resource penayangan.

Ikuti panduan pembersihan VOD untuk menghapus aset dan resource yang tidak diperlukan.