مشخصات HLS Interstitials روشی انعطافپذیر برای زمانبندی و درج تبلیغات در یک جریان ویدیویی یا صوتی معرفی میکند. با رویکرد سمت کلاینت، برنامه شما با ایجاد کلاس AVPlayerInterstitialEvent کنترل کامل زمان درخواست و پخش وقفههای تبلیغاتی را به دست میگیرد. این رویکرد نیازی به برچسبهای EXT-X-DATERANGE در مانیفستهای جریان محتوا ندارد. HLS interstitials سمت کلاینت به شما امکان میدهد بدون نیاز به تغییر مانیفست جریان یا فایلهای رسانهای، تبلیغات را به صورت پویا در هر محتوایی درج کنید.
این راهنما، ادغام SDK تبلیغات رسانهای تعاملی (IMA) را در یک برنامه پخش ویدیو پوشش میدهد که یک جلسه پخش زنده با هدایت سرور (SGAI) ایجاد میکند و تبلیغات بینابینی را در سمت کلاینت زمانبندی میکند. برای اطلاعات بیشتر، به DAI هدایتشده توسط سرور مراجعه کنید.
پیشنیازها
قبل از شروع، به موارد زیر نیاز دارید:
یک پروژه Xcode جدید، با استفاده از
Storyboardبرای رابط کاربری. برای اطلاعات بیشتر، به ایجاد یک پروژه Xcode برای یک برنامه مراجعه کنید.کیت توسعه نرمافزار IMA گوگل. برای اطلاعات بیشتر، به «راهاندازی کیت توسعه نرمافزار IMA برای DAI» مراجعه کنید.
پارامترهای زیر برای درخواست پخش زنده DAI شما:
-
NETWORK_CODE: کد شبکه مدیریت تبلیغات گوگل شما. -
CUSTOM_ASSET_KEY: رشته سفارشی شما که رویداد پخش زنده DAI را مشخص میکند. رویداد پخش زنده باید نوع DAI مانیفست Pod serve را داشته باشد.
-
پیکربندی استوریبورد
در فایل iPhone.storyboard خود، موارد زیر را انجام دهید:
- یک شیء
UIViewبه عنوان ظرفی برای پخشکننده ویدیو و رابط کاربری تبلیغ ایجاد کنید. - یک ویژگی
adUIViewاز کلاسViewControllerایجاد کنید تا با شیءUIViewارتباط برقرار کند. - در شیء
adUIView، یکUIButtonایجاد کنید تا به عنوان دکمه پخش عمل کند. - یک ویژگی
playButtonاز کلاسViewControllerایجاد کنید تا با شیءUIButtonارتباط برقرار کند و یک تابعonPlayButtonTouchبرای مدیریت لمسهای کاربر ایجاد کنید.
مقداردهی اولیه یک بارگذاریکننده تبلیغات
در رویداد viewDidLoad کنترلر اصلی view، موارد زیر را انجام دهید:
- با استفاده از کلاسهای
AVPlayerوAVPlayerLayerیک پخشکننده ویدیو راهاندازی کنید. - اشیاء
IMAAdDisplayContainerوIMAAVPlayerVideoDisplayرا ایجاد کنید. کانتینر نمایش تبلیغات،adUIViewبرای IMA DAI SDK مشخص میکند تا زیرنماهای رابط کاربری تبلیغات را درج کند. شیء نمایش ویدیو به عنوان پلی بین منطق تبلیغ IMA DAI SDK و سیستم پخش AVFoundation عمل میکند و پخش تبلیغات ویدیویی را ردیابی میکند. - شیء
IMAAdsLoaderرا با تنظیمات پخش تبلیغات و محلیسازی رابط کاربری تبلیغات، مقداردهی اولیه کنید.
مثال زیر یک بارگذار تبلیغات را با یک شیء خالی IMASettings مقداردهی اولیه میکند:
درخواست پخش جریانی بدهید
برای درخواست تبلیغات برای یک جریان محتوا، یک شیء IMAPodStreamRequest ایجاد کنید و آن را به نمونه IMAAdsLoader خود منتقل کنید. به صورت اختیاری، میتوانید ویژگی adTagParameters را طوری تنظیم کنید که گزینههای DAI و پارامترهای هدفگیری را برای جریان شما ارائه دهد.
این مثال متد loadAdStream را در رویداد viewDidAppear فراخوانی میکند:
در برنامهی کاربردی خود، پس از انتخاب یک جریان محتوا توسط کاربر، متد loadAdStream را فراخوانی کنید.
مدیریت رویدادهای بارگذاری جریان
پروتکل IMAAdsLoaderDelegate را برای مدیریت موفقیت یا شکست درخواست استریم پیادهسازی کنید:
- در صورت موفقیت، یک شیء
IMAAdsLoadedDataحاویIMAStreamManagerدریافت میکنید. مقدارstreamManager.streamIdرا برای جلسه DAI فعلی ذخیره کنید. - در صورت عدم موفقیت، خطا را ثبت کنید.
مثال زیر رویداد بارگذاری استریم را مدیریت میکند و رویداد بارگذاری ناموفق استریم را ثبت میکند:
زمانبندی درج آگهی
برای زمانبندی پخش تبلیغات، یک شیء AVPlayerInterstitialEvent ایجاد کنید. ویژگی templateItems شیء رویداد را روی آرایهای از اشیاء AVPlayerItem تنظیم کنید، که در آن هر شیء آیتم حاوی یک URL مانیفست ad pod است.
برای ساخت URL مانیفست پاد تبلیغاتی، از روش زیر استفاده کنید: مستندات مانیفست پاد HLS .
برای اهداف نمایشی، مثال زیر با استفاده از زمان فعلی پخش زنده محتوا، یک رشته شناسه پاد تولید میکند. تابع generatePodIdentifier شناسه پاد را به صورت ad_break_id/mid-roll-{minute} برمیگرداند.
در برنامهی کاربردی خود، شناسهی پاد را از منبعی بازیابی کنید که مقادیر منحصر به فردی برای هر پخش تبلیغ ارائه میدهد و برای همه بینندگان پخش زنده همگامسازی شده است.
مثال زیر زمانبندی میکند که یک تبلیغ کوتاه ظرف دو دقیقه پس از کلیک کاربر روی دکمه پخش، شروع شود:
متد scheduleAdInsertion زمان شروع پخش تبلیغات را محاسبه کرده و یک URL مانیفست برای Ad pod میسازد. از این URL برای ایجاد یک شیء AVPlayerInterstitialEvent استفاده کنید.
به صورت اختیاری، از ساختار AVPlayerInterstitialEvent.Restrictions برای محدود کردن پرش یا عقب رفتن کاربر در حین پخش تبلیغ استفاده کنید.
مدیریت رویدادهای تبلیغاتی
برای مدیریت رویدادهای تبلیغاتی، پروتکل IMAStreamManagerDelegate را پیادهسازی کنید. این رویکرد به شما امکان میدهد زمان شروع و پایان وقفههای تبلیغاتی را پیگیری کنید و اطلاعات مربوط به هر تبلیغ را به دست آورید.
برنامه خود را اجرا کنید. در صورت موفقیت، میتوانید با استفاده از یک جریان مانیفستِ Pod، درخواست نمایش بینابینی (interstitials) بدهید و آن را پخش کنید.