Menyiapkan IMA SDK untuk DAI

IMA SDK mempermudah integrasi iklan multimedia ke dalam situs dan aplikasi Anda. IMA SDK dapat meminta iklan dari server iklan yang kompatibel dengan VAST dan mengelola pemutaran iklan di aplikasi Anda. Dengan IMA DAI SDK, aplikasi membuat permintaan streaming untuk video iklan dan konten—baik konten VOD maupun live. Kemudian, SDK akan menampilkan streaming video gabungan, sehingga Anda tidak perlu mengelola peralihan antara video iklan dan konten dalam aplikasi Anda.

Pilih solusi DAI yang Anda minati

DAI Penayangan Pod

Panduan ini menunjukkan cara memutar live stream atau VOD dengan Penayangan Pod DAI menggunakan IMA DAI SDK untuk tvOS dengan pemutar video. Untuk melihat atau mengikuti contoh integrasi yang telah selesai, download aplikasi contoh Penayangan Pod (Obj C atau Swift).

Ringkasan Penayangan Pod DAI IMA

Penerapan Penayangan Pod menggunakan IMA DAI SDK untuk tvOS melibatkan dua komponen utama:

  • StreamRequest: Objek yang menentukan permintaan streaming ke server iklan Google. Harus dibuat menggunakan IMAPodStreamRequest atau IMAPodVODStreamRequest untuk mengaktifkan Penayangan Pod. Kedua metode memerlukan Kode Jaringan dan IMAPodStreamRequest juga memerlukan Kunci Aset Kustom. Kunci API bersifat opsional.

  • IMAStreamManager: Objek yang menangani komunikasi antara streaming video dan IMA DAI SDK, seperti mengirimkan ping pelacakan dan meneruskan peristiwa streaming ke penayang.

Prasyarat

Sebelum memulai, Anda memerlukan hal berikut:

  • Xcode 13 atau yang lebih baru.
  • CocoaPods (paling direkomendasikan), Swift Package Manager, atau salinan yang didownload dari IMA DAI SDK untuk tvOS.
  • Aplikasi tvOS yang sudah disiapkan dengan IMA DAI SDK untuk memutar streaming video dengan iklan DAI. Jika Anda belum memiliki aplikasi seperti itu, sebaiknya gunakan tvOS DAI BasicExample sebagai titik awal. BasicExample memiliki codebase yang dirujuk dalam panduan ini. Untuk mengetahui informasi selengkapnya tentang cara menerapkan IMA DAI SDK, lihat Panduan memulai cepat.

Menyiapkan variabel Penayangan Pod

Semua perubahan yang diperlukan untuk Penayangan Pod dilakukan di ViewController.swift di Swift atau ViewController.m di Objective-C. Cuplikan dalam panduan ini secara default menggunakan bahasa Swift. Langkah pertama adalah memperbarui variabel konstanta.

Berikut konstanta permintaan streaming pod iklan yang akan ditambahkan:

  • STREAM_URL (Hanya digunakan untuk live stream): URL streaming video yang disediakan oleh manipulator manifes atau partner pihak ketiga menggunakan Penayangan Pod. Anda harus memasukkan ID streaming yang diberikan oleh IMA DAI SDK, sebelum Anda membuat permintaan. Dalam hal ini, URL streaming menyertakan placeholder, "[[STREAMID]]", yang diganti dengan ID streaming, sebelum membuat permintaan.
  • NETWORK_CODE: Kode jaringan untuk akun Ad Manager 360 Anda.
  • CUSTOM_ASSET_KEY (Hanya digunakan untuk live stream): Kunci aset kustom yang mengidentifikasi acara Penayangan Pod Anda di Ad Manager 360. Hal ini dapat dibuat oleh manipulator manifes Anda atau partner Penayangan Pod pihak ketiga.
  • API_KEY (Hanya digunakan untuk livestream): Kunci API opsional yang dapat diperlukan untuk mengambil ID streaming dari IMA DAI SDK.

Ubah bagian variabel contoh agar sesuai dengan yang berikut:

...
class ViewController:
  UIViewController,
  IMAAdsLoaderDelegate,
  IMAStreamManagerDelegate,
  AVPlayerViewControllerDelegate
{
  static let streamUrl = ""
  static let networkCode = ""
  static let customAssetKey = ""
  static let APIKey = ""
  static let backupStreamURLString = ""

  var adsLoader: IMAAdsLoader?
  ...

Membuat permintaan streaming pod live atau VOD

Penayangan Pod Livestream

Ubah metode requestStream untuk membuat permintaan streaming pod langsung dengan meng-instance IMAPodStreamRequest.

  ...

  func requestStream() {
    guard let playerViewController = self.playerViewController else return
    guard let adContainerView = self.adContainerView else return
    guard let adsLoader = self.adsLoader else return

    self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
    adDisplayContainer = IMAAdDisplayContainer(
      adContainer: adContainerView, viewController: self)

    // Create a podserving stream request.
    request = IMAPodStreamRequest(
      networkCode: self.networkCode,
      customAssetKey: self.customAssetKey,
      adDisplayContainer: adDisplayContainer,
      videoDisplay: self.videoDisplay,
      userContext: nil)

    adsLoader.requestStream(with: request)
  }

  ...

Penayangan Pod streaming VOD

Ubah metode requestStream untuk membuat permintaan streaming pod VOD dengan meng-instance IMAPodVODStreamRequest.

  ...

  func requestStream() {
    guard let playerViewController = self.playerViewController else return
    guard let adContainerView = self.adContainerView else return
    guard let adsLoader = self.adsLoader else return

    self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
    adDisplayContainer = IMAAdDisplayContainer(
      adContainer: adContainerView, viewController: self)

    // Create a podserving stream request.
    request = IMAPodVODStreamRequest(
      networkCode: self.networkCode,
      adDisplayContainer: adDisplayContainer,
      videoDisplay: self.videoDisplay,
      userContext: nil)

    adsLoader.requestStream(with: request)
  }

  ...

Mengedit dan menyetel URL streaming

Penayangan Pod Livestream

Ubah metode IMAAdsLoaderDelegate, menggunakan streamManager.streamId untuk mendapatkan ID streaming. Kemudian, masukkan ID streaming ke STREAM_URL, dengan mengganti "[[STREAMID]]". Setelah perubahan ini dilakukan, URL streaming baru dapat ditetapkan menggunakan videoDisplay.loadStream().

  ...

  // MARK: - IMAAdsLoaderDelegate
  func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
    let streamManager = adsLoadedData.streamManager
    let streamId = streamManager.streamId
    let urlString = streamUrl.replacingOccurrences(of: "[[STREAMID]]", with: streamId)
    let loadedStreamUrl = URL(string:urlString)
    self.videoDisplay.loadStream(loadedStreamUrl, subtitles:@[])
    self.videoDisplay.play()
    streamManager.delegate = self
    streamManager.initialize(with: nil)
    self.streamManager = streamManager
  }

  ...

Penayangan Pod streaming VOD

Ubah metode IMAAdsLoaderDelegate, menggunakan streamManager.streamId untuk mendapatkan ID streaming. Kemudian, minta URL streaming dari partner teknologi video (VTP) dan panggil IMAStreamManager.loadThirdPartyStream() agar IMA memuat URL streaming dan semua subtitel yang ditampilkan oleh TVP Anda.

  ...

  // MARK: - IMAAdsLoaderDelegate
  func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
    let streamManager = adsLoadedData.streamManager
    let streamId = streamManager.streamId
    // 'vtpInterface' is a place holder for your own video technology partner
    // (VTP) API calls.
    let streamUrl = vtpInterface.requestStreamURL(streamID)
    self.streamManager.loadThirdPartyStream(streamUrl, streamSubtitles:@[])
    streamManager.delegate = self
    streamManager.initialize(with: nil)
    self.streamManager = streamManager
  }

Membersihkan aset IMA DAI

Setelah Anda berhasil menyelesaikan permintaan dan menampilkan iklan di streaming Penayangan Pod dengan IMA DAI SDK, sebaiknya Anda membersihkan semua resource setelah sesi Penayangan Pod selesai. Panggil IMAStreamManager.destroy() untuk menghentikan pemutaran streaming, menghentikan semua pelacakan iklan, dan melepaskan semua aset streaming yang dimuat.

Untuk melihat contoh lain penggunaan tvOS SDK, lihat contoh di GitHub.