IMA SDK memudahkan pengintegrasian iklan multimedia ke dalam situs dan aplikasi Anda. IMA SDK dapat minta iklan dari semua 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 gabungan streaming video, sehingga Anda tidak perlu mengelola peralihan antara iklan dan video konten dalam aplikasi Anda.
Pilih solusi DAI yang Anda minati
Pod yang menyalurkan DAI
Panduan ini menunjukkan cara memutar streaming VOD atau Penayangan Pod DAI secara live menggunakan IMA DAI SDK untuk iOS dengan pemutar video sederhana. Jika Anda ingin mengikuti beserta contoh yang telah selesai, unduh contoh inferensi pod.
Ringkasan Penayangan Pod IMA DAI
Menerapkan penayangan pod menggunakan IMA DAI SDK untuk iOS melibatkan dua hal utama komponen:
StreamRequest
: Objek yang menentukan permintaan aliran data untuk server iklan Google. Harus dibuat menggunakanIMAPodStreamRequest
atauIMAPodVODStreamRequest
untuk mengaktifkan inferensi pod. Kedua metode tersebut memerlukan Kode Jaringan danIMAPodStreamRequest
juga memerlukan Kunci Aset Kustom. Kunci API merupakan 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 yang diunduh dari IMA DAI SDK untuk iOS.
- Aplikasi iOS yang sudah disiapkan dengan IMA DAI SDK untuk memutar streaming video iklan DAI. Jika Anda belum memiliki aplikasi semacam itu, sebaiknya gunakan DAI iOS BasicExample sebagai titik awal ini. BasicExample memiliki codebase yang direferensikan dalam kami. 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 di swift atau ViewController.m di Objective-C. Cuplikan dalam panduan ini secara {i>default<i} menggunakan bahasa Swift. Langkah pertama adalah mengupdate variabel konstanta.
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 inferensi pod. Seharusnya mengharuskan Anda menyisipkan ID streaming yang disediakan oleh IMA DAI SDK, sebelum membuat permintaan. Dalam hal ini, URL streaming mencakup 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 di Ad Manager 360. Hal ini dapat dibuat dengan manipulator manifes atau partner inferensi pod pihak ketiga.API_KEY
(Hanya digunakan untuk livestream): Kunci API opsional yang dapat 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 menjadi
disetel 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 teknologi video Anda
partner (VTP). Lalu, panggil IMAStreamManager.loadThirdPartyStream()
untuk memiliki IMA
memuat URL streaming dan subtitel apa pun yang dikembalikan 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 pod yang menayangkan streaming dengan IMA DAI SDK untuk iOS. Untuk melihat contoh lain dari IMA DAI SDK yang digunakan, lihat contoh di GitHub.