IMA SDK ช่วยให้ผสานรวมโฆษณามัลติมีเดียลงในเว็บไซต์และแอปได้อย่างง่ายดาย IMA SDK สามารถ ส่งคำขอโฆษณาจาก เซิร์ฟเวอร์โฆษณาที่ปฏิบัติตามข้อกำหนดของ VAST และจัดการการเล่นโฆษณาในแอปของคุณ ด้วย IMA DAI SDK แอปจะสร้าง คำขอสตรีมสำหรับโฆษณาและวิดีโอเนื้อหา ไม่ว่าจะเป็น VOD หรือเนื้อหาสด จากนั้น SDK จะแสดงผลสตรีมวิดีโอแบบรวม คุณจึงไม่ต้องจัดการการสลับระหว่างวิดีโอโฆษณากับวิดีโอเนื้อหาภายในแอป
เลือกโซลูชัน DAI ที่คุณสนใจ
DAI ที่แสดงในพ็อด
คู่มือนี้สาธิตวิธีเล่นสตรีมแบบสดหรือ VOD ที่แสดงในพ็อด DAI โดยใช้ IMA DAI SDK สําหรับ tvOS ด้วยโปรแกรมเล่นวิดีโอแบบง่าย หากต้องการติดตาม ดาวน์โหลดแอปตัวอย่างการแสดงพ็อด พร้อมกับตัวอย่างที่สมบูรณ์ (Obj C หรือ Swift)
ภาพรวมของ IMA DAI Pod Serving
การติดตั้งใช้งานการแสดงพ็อดโดยใช้ IMA DAI SDK สำหรับ tvOS ประกอบด้วย คอมโพเนนต์
StreamRequest
: ออบเจ็กต์ที่กำหนดคำขอสตรีมให้กับ เซิร์ฟเวอร์โฆษณาของ Google ต้องสร้างโดยใช้IMAPodStreamRequest
หรือIMAPodVODStreamRequest
เพื่อเปิดใช้การแสดงพ็อด ทั้ง 2 วิธีต้องมีรหัสเครือข่ายและ นอกจากนี้IMAPodStreamRequest
จะต้องมีคีย์เนื้อหาที่กำหนดเองด้วย คีย์ API คือ ไม่บังคับIMAStreamManager
: ออบเจ็กต์ที่จัดการการสื่อสารระหว่างสตรีมวิดีโอกับ IMA DAI SDK เช่น การเรียกใช้การติดตาม Ping และการส่งต่อเหตุการณ์สตรีมไปยังผู้เผยแพร่โฆษณา
ข้อกำหนดเบื้องต้น
ก่อนที่จะเริ่มต้น คุณต้องมีสิ่งต่อไปนี้
- Xcode 13 ขึ้นไป
- CocoaPods (แนะนำ), Swift Package Manager หรือ ดาวน์โหลดสำเนาของ IMA DAI SDK สำหรับ tvOS
- แอป tvOS ที่ตั้งค่าด้วย IMA DAI SDK ไว้แล้วเพื่อเล่นสตรีมวิดีโอ โฆษณา DAI หากยังไม่มีแอปดังกล่าว เราขอแนะนำให้ใช้ tvOS DAI 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 สำหรับ tvOS หากต้องการดูตัวอย่างการใช้งาน IMA DAI SDK อื่นๆ ให้ดูตัวอย่างใน GitHub