IMA SDK memudahkan integrasi 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.
Memilih solusi DAI yang Anda minati
Penayangan Pod DAI
Panduan ini menunjukkan cara memutar streaming live atau VOD Penayangan Pod DAI menggunakan IMA DAI SDK untuk tvOS dengan pemutar video. Untuk melihat atau mengikuti integrasi contoh yang telah selesai, download aplikasi contoh Pod Serving (Obj C atau Swift).
Ringkasan Penayangan Pod DAI IMA
Menerapkan Penayangan Pod menggunakan IMA DAI SDK untuk tvOS melibatkan dua komponen utama:
StreamRequest
: Objek yang menentukan permintaan streaming ke server iklan Google. Harus dibuat menggunakanIMAPodStreamRequest
atauIMAPodVODStreamRequest
untuk mengaktifkan Penayangan Pod. Kedua metode tersebut memerlukan Kode Jaringan danIMAPodStreamRequest
juga memerlukan Kunci Aset Kustom. Kunci API bersifat opsional.IMAStreamManager
: Objek yang menangani komunikasi antara streaming video dan IMA DAI SDK, seperti memicu 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 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 tersebut, sebaiknya gunakan tvOS DAI BasicExample sebagai titik awal. BasicExample memiliki codebase yang dirujuk dalam panduan ini. Untuk informasi selengkapnya tentang cara menerapkan IMA DAI SDK, lihat Panduan memulai.
Menyiapkan variabel Penayangan Pod
Semua perubahan yang diperlukan untuk Penyertaan 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 konstan.
Berikut adalah 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 disediakan oleh IMA DAI SDK sebelum 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 peristiwa Penayangan Pod di Ad Manager 360. Ini dapat dibuat oleh manipulator manifes atau partner Penayangan Pod pihak ketiga.API_KEY
(Hanya digunakan untuk live stream): 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 =
"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 Livestream
Ubah metode requestStream
untuk membuat permintaan streaming pod 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 Livestream
Ubah metode IMAAdsLoaderDelegate
, menggunakan streamManager.streamId
untuk
mendapatkan ID streaming. Kemudian, masukkan ID aliran ke STREAM_URL
, yang menggantikan
"[[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) Anda dan 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 di streaming Penayangan Pod dengan IMA DAI SDK untuk tvOS. Untuk melihat contoh lain IMA DAI SDK yang digunakan, lihat contoh di GitHub.