Mulai menggunakan IMA DAI SDK

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

Pilih solusi DAI yang Anda minati

Pod yang menyalurkan DAI

Panduan ini menunjukkan cara memutar Pod Serving live atau streaming VOD DAI menggunakan IMA DAI SDK untuk iOS dengan pemutar video sederhana. Jika Anda ingin mengikuti sampel yang lengkap, download contoh penayangan pod.

Ringkasan Penayangan Pod IMA DAI

Penerapan penayangan pod menggunakan IMA DAI SDK untuk iOS 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 tersebut 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 mengaktifkan ping pelacakan dan meneruskan peristiwa streaming ke penayang.

Prasyarat

Sebelum memulai, Anda memerlukan hal berikut:

  • Xcode 13 atau yang lebih baru.
  • CocoaPods (lebih disukai), Swift Package Manager, atau salinan IMA DAI SDK untuk iOS yang telah didownload.
  • Aplikasi iOS yang sudah disiapkan dengan IMA DAI SDK untuk memutar streaming video dengan iklan DAI. Jika Anda belum memiliki aplikasi semacam itu, sebaiknya gunakan BasicExample DAI iOS sebagai titik awal. BasicExample memiliki codebase yang dirujuk dalam panduan ini. Untuk informasi selengkapnya tentang cara menerapkan IMA DAI SDK, lihat Panduan Memulai Cepat.

Menyiapkan variabel penayangan pod

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

Berikut adalah konstanta permintaan streaming pod iklan yang akan ditambahkan:

  • STREAM_URL (Hanya digunakan untuk livestream): URL streaming video yang disediakan oleh manipulator manifes atau partner pihak ketiga yang menggunakan penayangan pod. Anda harus menyisipkan ID streaming yang disediakan oleh IMA DAI SDK sebelum membuat permintaan. Dalam hal ini, URL streaming menyertakan placeholder, "[[STREAMID]]", yang diganti dengan ID aliran data, sebelum membuat permintaan.
  • NETWORK_CODE: Kode jaringan untuk akun Ad Manager 360 Anda.
  • CUSTOM_ASSET_KEY (Hanya digunakan untuk livestream): Kunci aset kustom yang mengidentifikasi peristiwa penayangan pod Anda di Ad Manager 360. Hal ini dapat dibuat oleh manipulator manifes 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 cocok dengan yang berikut:

...
class ViewController:
  UIViewController,
  IMAAdsLoaderDelegate,
  IMAStreamManagerDelegate,
  AVPlayerViewControllerDelegate
{
  static let streamUrl =
    "https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
  static let networkCode = "51636543"
  static let customAssetKey = "google-sample"
  static let APIKey = ""
  static let backupStreamURLString =
    "http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"

  var adsLoader: IMAAdsLoader?
  ...

Membuat permintaan streaming pod live atau VOD

Penayangan pod live stream

Ubah metode requestStream untuk membuat permintaan Pod Stream live dengan membuat 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 membuat 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 menetapkan URL streaming

Penayangan pod live stream

Ubah metode IMAAdsLoaderDelegate, menggunakan streamManager.streamId untuk mendapatkan ID aliran data. Kemudian, masukkan ID aliran data ke STREAM_URL, dengan mengganti "[[STREAMID]]". Setelah perubahan ini dibuat, 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 aliran data. Kemudian, minta URL streaming dari partner teknologi video (VTP) Anda. Lalu, panggil IMAStreamManager.loadThirdPartyStream() agar IMA memuat URL streaming dan subtitel apa pun 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
  }

Selesai. Sekarang Anda meminta dan menampilkan iklan dalam aliran penayangan pod dengan IMA DAI SDK untuk iOS. Untuk melihat contoh lain IMA DAI SDK yang digunakan, lihat contoh di GitHub.