IMA SDK ช่วยให้การผสานรวมโฆษณามัลติมีเดียในเว็บไซต์และแอปของคุณทำได้โดยง่าย IMA SDK สามารถ ส่งคำขอโฆษณาจาก เซิร์ฟเวอร์โฆษณาที่ปฏิบัติตามข้อกำหนดของ VAST และจัดการการเล่นโฆษณาในแอปของคุณ ด้วย IMA DAI SDK แอปจะสร้าง คำขอสตรีมสำหรับโฆษณาและวิดีโอเนื้อหา ไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะส่งคืนค่า สตรีมวิดีโอแบบรวม เพื่อให้คุณไม่ต้องจัดการเปลี่ยนไปมาระหว่างโฆษณากับเนื้อหาวิดีโอ ภายในแอป
เลือกโซลูชัน DAI ที่คุณสนใจ
DAI ที่แสดงในพ็อด
คู่มือนี้แสดงวิธีเล่นสตรีม DAI Pod Serve แบบสดหรือ VOD โดยใช้ IMA DAI SDK สำหรับ iOS ที่มีโปรแกรมเล่นวิดีโอแบบง่าย หากต้องการติดตาม พร้อมด้วยตัวอย่างที่สมบูรณ์ ให้ดาวน์โหลด ตัวอย่างการแสดงพ็อด
ภาพรวมการแสดงพ็อด IMA DAI
การใช้การแสดงพ็อดโดยใช้ IMA DAI SDK สำหรับ iOS เกี่ยวข้องกับ 2 องค์ประกอบหลัก คอมโพเนนต์
StreamRequest
: ออบเจ็กต์ที่กำหนดคำขอสตรีมให้กับ เซิร์ฟเวอร์โฆษณาของ Google ต้องสร้างโดยใช้IMAPodStreamRequest
หรือIMAPodVODStreamRequest
เพื่อเปิดใช้การแสดงพ็อด ทั้ง 2 วิธีต้องมีรหัสเครือข่ายและ นอกจากนี้IMAPodStreamRequest
จะต้องมีคีย์เนื้อหาที่กำหนดเองด้วย คีย์ API คือ ไม่บังคับIMAStreamManager
: ออบเจ็กต์ที่จัดการการสื่อสารระหว่าง สตรีมวิดีโอและ IMA DAI SDK เช่น การเริ่มใช้คำสั่ง ping การติดตาม การส่งต่อเหตุการณ์สตรีมไปยังผู้เผยแพร่โฆษณา
ข้อกำหนดเบื้องต้น
ก่อนที่จะเริ่มต้น คุณต้องมีสิ่งต่อไปนี้
- Xcode 13 ขึ้นไป
- CocoaPods (แนะนำ), Swift Package Manager หรือ ดาวน์โหลดสำเนาของ IMA DAI SDK สำหรับ iOS
- แอป iOS ที่ตั้งค่าด้วย IMA DAI SDK อยู่แล้วเพื่อเล่นสตรีมวิดีโอ โฆษณา DAI หากคุณยังไม่มีแอปดังกล่าว เราขอแนะนำให้ใช้ DAI สำหรับ iOS BasicExample เป็น จุดเริ่มต้น BasicExample มีโค้ดเบสที่อ้างอิงใน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีติดตั้ง IMA DAI SDK โปรดดู คู่มือเริ่มใช้งานฉบับย่อ
ตั้งค่าตัวแปรการแสดงพ็อด
การเปลี่ยนแปลงทั้งหมดที่จำเป็นสำหรับการแสดงพ็อดจะดำเนินการใน ViewController.swift ใน swift หรือ ViewController.m ใน Objective-C ตัวอย่างข้อมูลในคู่มือนี้ ให้ใช้ภาษา Swift เป็นค่าเริ่มต้น ขั้นตอนแรกคือการอัปเดต ตัวแปรคงที่
ค่าคงที่คำขอสตรีมพ็อดโฆษณาที่จะเพิ่มมีดังนี้
STREAM_URL
(ใช้สำหรับสตรีมแบบสดเท่านั้น): URL ของสตรีมวิดีโอที่ระบุโดย เครื่องมือจัดการไฟล์ Manifest หรือพาร์ทเนอร์บุคคลที่สามที่ใช้การแสดงพ็อด ควร คุณต้องแทรกรหัสสตรีมที่ได้รับจาก IMA DAI SDK ก่อน ส่งคำขอ ในกรณีนี้ URL ของสตรีมจะมีตัวยึดตำแหน่ง"[[STREAMID]]"
ซึ่งจะแทนที่ด้วยรหัสสตรีม ก่อนสร้าง อีกครั้งNETWORK_CODE
: รหัสเครือข่ายสำหรับบัญชี Ad Manager 360CUSTOM_ASSET_KEY
(ใช้สำหรับสตรีมแบบสดเท่านั้น): คีย์เนื้อหาที่กำหนดเองที่ ระบุเหตุการณ์การแสดงพ็อดใน Ad Manager 360 แพลตฟอร์มนี้สามารถสร้างขึ้นได้โดย เครื่องมือจัดการไฟล์ Manifest หรือพาร์ทเนอร์ที่ให้บริการพ็อดบุคคลที่สามAPI_KEY
(ใช้สำหรับสตรีมแบบสดเท่านั้น): คีย์ API ที่ไม่บังคับซึ่งสามารถ เพื่อเรียกข้อมูลรหัสสตรีมจาก IMA DAI SDK
เปลี่ยนส่วนตัวแปรของตัวอย่างให้ตรงกับข้อมูลต่อไปนี้
...
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?
...
สร้างคำขอสตรีมพ็อดแบบสดหรือ VOD
การแสดงพ็อดสตรีมแบบสด
แก้ไขเมธอด requestStream
เพื่อสร้างคำขอสตรีมพ็อดแบบสดโดย
กำลังสร้างอินสแตนซ์ 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)
}
...
การแสดงพ็อดสตรีม VOD
แก้ไขเมธอด requestStream
เพื่อสร้างคำขอสตรีมพ็อด VOD โดยทำดังนี้
กำลังสร้างอินสแตนซ์ 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)
}
...
แก้ไขและตั้งค่า URL ของสตรีม
การแสดงพ็อดสตรีมแบบสด
แก้ไขเมธอด IMAAdsLoaderDelegate
โดยใช้ streamManager.streamId
เพื่อ
รับรหัสสตรีม จากนั้นแทรกรหัสสตรีมลงใน STREAM_URL
โดยแทนที่
"[[STREAMID]]"
เมื่อทำการเปลี่ยนแปลงนี้แล้ว URL ของสตรีมใหม่จะสามารถ
ตั้งค่าโดยใช้ 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
}
...
การแสดงพ็อดสตรีม VOD
แก้ไขเมธอด IMAAdsLoaderDelegate
โดยใช้ streamManager.streamId
เพื่อ
รับรหัสสตรีม จากนั้นขอ URL ของสตรีมจากเทคโนโลยีวิดีโอของคุณ
พาร์ทเนอร์ (VTP) จากนั้นเรียก IMAStreamManager.loadThirdPartyStream()
ให้มี IMA
โหลด URL ของสตรีมและคำบรรยายที่ TVP แสดง
...
// 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
}
เท่านี้ก็เรียบร้อย คุณกำลังขอและแสดงโฆษณาในสตรีมที่แสดงพ็อดด้วย IMA DAI SDK สำหรับ iOS หากต้องการดูตัวอย่างอื่นๆ ของการใช้ IMA DAI SDK ดูตัวอย่างเกี่ยวกับ GitHub