کیتهای توسعه نرمافزار IMA ادغام تبلیغات چندرسانهای را در وبسایتها و برنامههای شما آسان میکنند. کیتهای توسعه نرمافزار IMA میتوانند از هر سرور تبلیغاتی سازگار با VAST درخواست تبلیغات کنند و پخش تبلیغات را در برنامههای شما مدیریت کنند. با کیتهای توسعه نرمافزار IMA DAI، برنامهها درخواست پخش جریانی برای تبلیغات و ویدیوی محتوا - چه VOD و چه محتوای زنده - ارسال میکنند. سپس SDK یک جریان ویدیویی ترکیبی را برمیگرداند، به طوری که شما مجبور نیستید جابجایی بین ویدیوی تبلیغ و محتوا را در برنامه خود مدیریت کنید.
راهکار DAI مورد نظرتان را انتخاب کنید
غلاف سروینگ دای
این راهنما نحوه پخش زنده یا استریم VOD از DAI Pod Serving را با استفاده از IMA DAI SDK برای tvOS با یک پخشکننده ویدیو نشان میدهد. برای مشاهده یا دنبال کردن یک نمونه کامل از یکپارچهسازی، برنامه نمونه Pod Serving ( Obj C یا Swift ) را دانلود کنید.
نمای کلی سرویس غلاف IMA DAI
پیادهسازی سرویس پاد با استفاده از کیت توسعه نرمافزار IMA DAI برای tvOS شامل دو مؤلفه اصلی است:
StreamRequest: شیءای که درخواست پخش جریانی را برای سرورهای تبلیغاتی گوگل تعریف میکند. برای فعال کردن سرویس پاد، باید با استفاده ازIMAPodStreamRequestیاIMAPodVODStreamRequestایجاد شود. هر دو روش به یک کد شبکه نیاز دارند وIMAPodStreamRequestهمچنین به یک کلید دارایی سفارشی نیاز دارد. کلید API اختیاری است.IMAStreamManager: شیءای که ارتباط بین جریان ویدئو و IMA DAI SDK را مدیریت میکند، مانند اجرای پینگهای ردیابی و ارسال رویدادهای جریان به ناشر.
پیشنیازها
قبل از شروع، به موارد زیر نیاز دارید:
- ایکسکد ۱۳ یا بالاتر.
- روش نصب IMA SDK:
- مدیر بسته Swift (ترجیحاً)
- کوکوپادز
- یک نسخه دانلود از 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 استفاده میکنند. اولین قدم بهروزرسانی متغیرهای ثابت است.
ثابتهای درخواست جریان ad pod زیر را اضافه کنید:
-
STREAM_URL( فقط برای پخش زنده استفاده میشود ): آدرس اینترنتی پخش ویدئو که توسط دستکاریکننده مانیفست یا شریک شخص ثالث شما با استفاده از Pod Serving ارائه میشود. قبل از ارسال درخواست، باید از شما خواسته شود شناسه پخش ارائه شده توسط IMA DAI SDK را وارد کنید. در این حالت، آدرس اینترنتی پخش شامل یک متغیر"[[STREAMID]]"است که قبل از ارسال درخواست، آن را با شناسه پخش جایگزین میکنید. -
NETWORK_CODE: کد شبکه برای حساب Ad Manager 360 شما. -
CUSTOM_ASSET_KEY( فقط برای پخش زنده استفاده میشود ): کلید دارایی سفارشی که رویداد Pod Serving شما را در Ad Manager 360 مشخص میکند. دستکاریکنندهی مانیفست یا شریک 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 pod را ایجاد کنید
پخش زنده پاد سرو
متد 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 برای دریافت شناسه جریان تغییر دهید. سپس، از شریک فناوری ویدیوی خود (VTP) یک URL جریان درخواست کنید و 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
وقتی درخواست و نمایش تبلیغات در یک جریان Pod Serving با IMA DAI SDK را با موفقیت به پایان رساندید، پیشنهاد میکنیم پس از اتمام جلسه Pod Serving، هرگونه منبعی را پاک کنید. برای متوقف کردن پخش جریان، متوقف کردن تمام ردیابی تبلیغات و آزاد کردن تمام داراییهای جریان بارگذاری شده، IMAStreamManager.destroy() را فراخوانی کنید.
برای مشاهدهی نمونههای دیگر از tvOS SDK مورد استفاده، به نمونههای موجود در GitHub مراجعه کنید.