IMA SDK ช่วยให้ผสานรวมโฆษณามัลติมีเดียเข้ากับเว็บไซต์และแอปได้อย่างง่ายดาย IMA SDK สามารถ ขอโฆษณาจากเซิร์ฟเวอร์โฆษณา ที่รองรับ VAST และจัดการการเล่นโฆษณาในแอปได้ เมื่อใช้ IMA DAI SDK แอปจะส่งคำขอสตรีมสำหรับโฆษณาและเนื้อหาวิดีโอ ไม่ว่าจะเป็นเนื้อหา VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงสตรีมวิดีโอที่รวมกัน เพื่อให้คุณไม่ต้องจัดการการสลับระหว่างโฆษณาและวิดีโอเนื้อหา ภายในแอป
เลือกโซลูชัน DAI ที่คุณสนใจ
DAI Pod Serving
คู่มือนี้แสดงวิธีเล่นสตรีมแบบสดหรือ VOD ของ DAI Pod Serving โดยใช้ IMA DAI SDK สำหรับ tvOS กับวิดีโอเพลเยอร์ หากต้องการดูหรือทำตามตัวอย่างการผสานรวมที่เสร็จสมบูรณ์แล้ว ให้ดาวน์โหลดแอปตัวอย่างการแสดงโฆษณาพ็อด (Obj C หรือ Swift)
ภาพรวมของ IMA DAI Pod Serving
การใช้ Pod Serving โดยใช้ IMA DAI SDK สำหรับ tvOS มีคอมโพเนนต์หลัก 2 อย่าง ดังนี้
StreamRequest: ออบเจ็กต์ที่กำหนดคำขอสตรีมไปยังเซิร์ฟเวอร์โฆษณาของ Google ต้องสร้างโดยใช้IMAPodStreamRequestหรือIMAPodVODStreamRequestเพื่อเปิดใช้การแสดงพ็อด ทั้ง 2 วิธีต้องใช้รหัสเครือข่ายและIMAPodStreamRequestต้องใช้คีย์ชิ้นงานที่กำหนดเองด้วย คีย์ API เป็น ตัวเลือกIMAStreamManager: ออบเจ็กต์ที่จัดการการสื่อสารระหว่าง วิดีโอสตรีมกับ IMA DAI SDK เช่น การทริกเกอร์พิงการติดตามและ การส่งต่อเหตุการณ์สตรีมไปยังผู้เผยแพร่โฆษณา
ข้อกำหนดเบื้องต้น
ก่อนเริ่มต้น คุณต้องมีสิ่งต่อไปนี้
- Xcode 13 ขึ้นไป
- วิธีติดตั้ง IMA SDK
- Swift Package Manager (แนะนำ)
- CocoaPods
- สำเนาที่ดาวน์โหลดของ IMA SDK สำหรับ tvOS
- แอป tvOS ที่ตั้งค่าด้วย IMA DAI SDK เพื่อเล่นสตรีมวิดีโอที่มี โฆษณา DAI อยู่แล้ว หากยังไม่มีแอปดังกล่าว เราขอแนะนําให้ใช้ tvOS DAI BasicExample เป็นจุดเริ่มต้น BasicExample มีโค้ดเบสที่อ้างอิงในคำแนะนำนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีติดตั้งใช้งาน IMA DAI SDK ได้ที่คู่มือเริ่มใช้งานฉบับย่อ
ตั้งค่าตัวแปร Pod Serving
ทำการเปลี่ยนแปลงทั้งหมดสำหรับการแสดงโฆษณาพอดใน ViewController.swift ใน
Swift หรือ ViewController.m ใน Objective-C ข้อมูลโค้ดในคู่มือนี้
จะใช้ภาษา Swift โดยค่าเริ่มต้น ขั้นตอนแรกคือการอัปเดต
ตัวแปรค่าคงที่
เพิ่มค่าคงที่ของคำขอสตรีมพ็อดโฆษณาต่อไปนี้
STREAM_URL(ใช้สำหรับไลฟ์สดเท่านั้น): URL สตรีมวิดีโอที่ได้รับจาก เครื่องมือจัดการไฟล์ Manifest หรือพาร์ทเนอร์บุคคลที่สามที่ใช้ Pod Serving โดยคุณจะต้อง แทรกรหัสสตรีมที่ได้รับจาก IMA DAI SDK ก่อนที่จะ ส่งคำขอ ในกรณีนี้ URL สตรีมจะมีตัวยึดตำแหน่ง"[[STREAMID]]"ซึ่งคุณจะแทนที่ด้วยรหัสสตรีมก่อนที่จะส่งคำขอNETWORK_CODE: รหัสเครือข่ายสำหรับบัญชี Ad Manager 360CUSTOM_ASSET_KEY(ใช้สำหรับไลฟ์สดเท่านั้น): คีย์ชิ้นงานที่กำหนดเองซึ่งระบุเหตุการณ์การแสดงพ็อดใน Ad Manager 360 ผู้จัดการไฟล์ Manifest หรือพาร์ทเนอร์ Pod Serving บุคคลที่สามสามารถสร้างสิ่งนี้ได้API_KEY(ใช้สำหรับไลฟ์สดเท่านั้น): คีย์ API ที่ไม่บังคับซึ่งอาจต้องใช้เพื่อดึงรหัสสตรีมจาก IMA DAI SDK
เปลี่ยนส่วนตัวแปรของตัวอย่างให้ตรงกับส่วนต่อไปนี้
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl = ""
static let networkCode = ""
static let customAssetKey = ""
static let APIKey = ""
static let backupStreamURLString = ""
var adsLoader: IMAAdsLoader?
...
สร้างคำขอสตรีมพ็อดแบบสดหรือ VOD
การแสดงพ็อดไลฟ์สด
แก้ไขrequestStream method เพื่อสร้างคำขอไลฟ์พอดสตรีมโดย
การสร้างอินสแตนซ์ 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
เมื่อขอและแสดงโฆษณาในสตรีมการแสดงโฆษณาพ็อดด้วย IMA DAI SDK เรียบร้อยแล้ว เราขอแนะนำให้คุณล้างข้อมูลทรัพยากรทั้งหมดหลังจากเซสชันการแสดงโฆษณาพ็อดเสร็จสมบูรณ์ เรียกใช้ IMAStreamManager.destroy() เพื่อหยุด
การเล่นสตรีม หยุดการติดตามโฆษณาทั้งหมด และปล่อยเนื้อหา
สตรีมที่โหลดทั้งหมด
ดูตัวอย่างอื่นๆ ของการใช้ tvOS SDK ได้ที่ตัวอย่างใน GitHub