کیتهای توسعه نرمافزار IMA ادغام تبلیغات چندرسانهای را در وبسایتها و برنامههای شما آسان میکنند. کیتهای توسعه نرمافزار IMA میتوانند از هر سرور تبلیغاتی سازگار با VAST درخواست تبلیغات کنند و پخش تبلیغات را در برنامههای شما مدیریت کنند. با کیتهای توسعه نرمافزار سمت کلاینت IMA، شما کنترل پخش ویدیوی محتوا را در دست دارید، در حالی که SDK پخش تبلیغات را مدیریت میکند. تبلیغات در یک پخشکننده ویدیوی جداگانه که در بالای پخشکننده ویدیوی محتوای برنامه قرار دارد، پخش میشوند.
این راهنما نحوه ادغام IMA SDK را در یک برنامه پخش کننده ویدیوی ساده نشان میدهد. اگر مایل به مشاهده یا دنبال کردن یک نمونه ادغام تکمیل شده هستید، مثال ساده را از GitHub دانلود کنید. اگر به یک پخش کننده HTML5 با SDK از پیش ادغام شده علاقه دارید، افزونه IMA SDK برای Video.js را بررسی کنید.
مرور کلی سمت کلاینت IMA
پیادهسازی IMA سمت کلاینت شامل چهار جزء اصلی SDK است که در این راهنما نشان داده شدهاند:
-  AdDisplayContainer: یک شیء کانتینر که مشخص میکند IMA عناصر رابط کاربری تبلیغات را کجا رندر میکند و قابلیت مشاهده، از جمله نمای فعال و اندازهگیری باز را اندازهگیری میکند.
-  AdsLoader: شیءای که تبلیغات را درخواست میکند و رویدادهای پاسخ به درخواست تبلیغات را مدیریت میکند. شما فقط باید یک بارگذار تبلیغات را نمونهسازی کنید که میتواند در طول عمر برنامه بارها مورد استفاده قرار گیرد.
-  AdsRequest: شیءای که یک درخواست تبلیغات را تعریف میکند. درخواستهای تبلیغات، URL مربوط به تگ تبلیغ VAST و همچنین پارامترهای اضافی مانند ابعاد تبلیغ را مشخص میکنند.
-  AdsManager: شیءای که شامل پاسخ به درخواست تبلیغات است، پخش تبلیغات را کنترل میکند و به رویدادهای تبلیغاتی که توسط SDK ایجاد میشوند، گوش میدهد.
پیشنیازها
قبل از شروع، به موارد زیر نیاز خواهید داشت:
-  سه فایل خالی:- فهرست.html
- استایل.css
- تبلیغات.js
 
- پایتون نصب شده روی رایانه شما، یا یک وب سرور برای استفاده جهت آزمایش
۱. یک سرور توسعه راهاندازی کنید
از آنجایی که IMA SDK وابستگیها را با استفاده از همان پروتکل صفحهای که از آن بارگذاری شده است، بارگذاری میکند، برای آزمایش برنامه خود باید از یک وب سرور استفاده کنید. سادهترین راه برای راهاندازی یک سرور توسعه محلی، استفاده از سرور داخلی پایتون است.
-  با استفاده از خط فرمان، از دایرکتوری که فایل index.html شما در آن قرار دارد، دستور زیر را اجرا کنید: python -m http.server 8000 
-  در یک مرورگر وب، به http://localhost:8000/بروید.
همچنین میتوانید از هر وب سرور دیگری مانند Apache HTTP Server استفاده کنید.
۲. یک پخشکننده ویدیوی ساده بسازید
 ابتدا، فایل index.html را تغییر دهید تا یک عنصر ویدیوی HTML5 ساده، شامل یک عنصر پوششی، و یک دکمه برای شروع پخش ایجاد شود. مثال زیر IMA SDK را وارد میکند و عنصر کانتینر AdDisplayContainer را تنظیم میکند. برای جزئیات بیشتر، به ترتیب به مراحل Import the IMA SDK و Create the ad container مراجعه کنید. 
تگهای لازم برای بارگذاری فایلهای style.css و ads.js را اضافه کنید. سپس، styles.css را تغییر دهید تا پخشکننده ویدیو برای دستگاههای تلفن همراه واکنشگرا شود. در نهایت، در ads.js ، متغیرهای خود را تعریف کنید و هنگام کلیک روی دکمه پخش، پخش ویدیو را آغاز کنید.
 توجه داشته باشید که قطعه کد ads.js شامل فراخوانی تابع setUpIMA() است که در بخش Initialize the AdsLoader and make an ads request تعریف شده است.
۳. IMA SDK را وارد کنید
 سپس، فریمورک IMA را با استفاده از تگ script در فایل index.html ، قبل از تگ ads.js ، اضافه کنید. 
۴. ایجاد بخش تبلیغات
 در اکثر مرورگرها، IMA SDK از یک عنصر محفظه تبلیغات اختصاصی برای نمایش تبلیغات و عناصر رابط کاربری مرتبط با تبلیغات استفاده میکند. این محفظه باید به گونهای طراحی شود که عنصر ویدیو را از گوشه بالا سمت چپ بپوشاند. ارتفاع و عرض تبلیغات قرار داده شده در این محفظه توسط شیء adsManager تنظیم میشود، بنابراین نیازی به تنظیم دستی این مقادیر نیست.
 برای پیادهسازی این عنصر ظرف تبلیغاتی، ابتدا یک div جدید درون عنصر video-container ایجاد کنید. سپس، CSS را بهروزرسانی کنید تا عنصر در گوشه بالا سمت چپ video-element قرار گیرد. در نهایت، تابع createAdDisplayContainer() را برای ایجاد شیء AdDisplayContainer با استفاده از div ظرف تبلیغاتی جدید اضافه کنید. 
۵. AdsLoader را راهاندازی اولیه کنید و یک درخواست تبلیغات ارسال کنید
 برای درخواست تبلیغات، یک نمونه AdsLoader ایجاد کنید. سازنده AdsLoader یک شیء AdDisplayContainer به عنوان ورودی دریافت میکند و میتواند برای پردازش اشیاء AdsRequest مرتبط با یک URL تگ تبلیغ مشخص شده استفاده شود. تگ تبلیغ استفاده شده در این مثال شامل یک تبلیغ 10 ثانیهای قبل از پخش است. میتوانید این یا هر URL تگ تبلیغ را با استفاده از IMA Video Suite Inspector آزمایش کنید.
 به عنوان بهترین روش، فقط یک نمونه از AdsLoader برای کل چرخه حیات یک صفحه حفظ کنید. برای ایجاد درخواستهای تبلیغاتی بیشتر، یک شیء AdsRequest جدید ایجاد کنید، اما از همان AdsLoader دوباره استفاده کنید. برای اطلاعات بیشتر، به سوالات متداول IMA SDK مراجعه کنید.
 با استفاده از AdsLoader.addEventListener به رویدادهای بارگذاری تبلیغات و خطا گوش دهید و پاسخ دهید. به رویدادهای زیر گوش دهید:
-  ADS_MANAGER_LOADED
-  AD_ERROR
 برای ایجاد شنوندههای onAdsManagerLoaded() و onAdError() به مثال زیر توجه کنید: 
۶. به رویدادهای AdsLoader پاسخ دهید
 وقتی AdsLoader با موفقیت تبلیغات را بارگذاری میکند، رویداد ADS_MANAGER_LOADED را منتشر میکند. رویداد ارسالی به تابع فراخوانی را تجزیه کنید تا شیء AdsManager را مقداردهی اولیه کند. AdsManager تبلیغات را به صورت جداگانه طبق پاسخ به URL تگ تبلیغ بارگذاری میکند.
مطمئن شوید که هرگونه خطایی را که در طول فرآیند بارگیری رخ میدهد، مدیریت میکنید. اگر تبلیغات بارگیری نمیشوند، مطمئن شوید که پخش رسانه بدون تبلیغات ادامه مییابد تا از ایجاد اختلال در مشاهده محتوا توسط کاربر جلوگیری شود.
 برای جزئیات بیشتر در مورد شنوندههای تنظیمشده در تابع onAdsManagerLoaded() ، به بخشهای فرعی زیر مراجعه کنید:
 مدیریت خطاهای AdsManager
 مدیریتکنندهی خطای ایجاد شده برای AdsLoader میتواند به عنوان مدیریتکنندهی خطای AdsManager نیز عمل کند. به مدیریتکنندهی رویداد که از تابع onAdError() استفادهی مجدد میکند، مراجعه کنید. 
مدیریت رویدادهای پخش و مکث
 وقتی AdsManager آمادهی درج تبلیغ برای نمایش است، رویداد CONTENT_PAUSE_REQUESTED را فعال میکند. این رویداد را با ایجاد مکث در پخشکنندهی ویدیوی زیرین مدیریت کنید. به طور مشابه، وقتی یک تبلیغ کامل میشود، AdsManager رویداد CONTENT_RESUME_REQUESTED فعال میکند. این رویداد را با شروع مجدد پخش در ویدیوی محتوای زیرین مدیریت کنید. 
 برای تعاریف توابع onContentPauseRequested() و onContentResumeRequested() به مثال زیر مراجعه کنید: 
پخش محتوا را در طول تبلیغات غیرخطی مدیریت کنید
 AdsManager وقتی یک تبلیغ آماده پخش است، ویدیوی محتوا را متوقف میکند، اما این رفتار برای تبلیغات غیرخطی صدق نمیکند، جایی که محتوا در حین نمایش تبلیغ همچنان پخش میشود. 
 برای پشتیبانی از تبلیغات غیرخطی، منتظر بمانید تا AdsManager رویداد LOADED را منتشر کند. بررسی کنید که آیا تبلیغ خطی است یا خیر، و اگر نه، پخش را روی عنصر ویدیو از سر بگیرید.
 برای تعریف تابع onAdLoaded() ، به مثال زیر مراجعه کنید. 
۷. فعال کردن قابلیت کلیک برای مکث در دستگاههای تلفن همراه
 از آنجایی که AdContainer عنصر ویدیو را پوشش میدهد، کاربران نمیتوانند مستقیماً با پخشکنندهی زیرین تعامل داشته باشند. این میتواند کاربران دستگاههای تلفن همراه را که انتظار دارند بتوانند برای مکث پخش، روی پخشکنندهی ویدیو ضربه بزنند، گیج کند. برای رفع این مشکل، IMA SDK هر کلیکی را که توسط IMA مدیریت نمیشود، از پوشش تبلیغ به عنصر AdContainer منتقل میکند، جایی که میتوان آنها را مدیریت کرد. این امر در مورد تبلیغات خطی در مرورگرهای غیر موبایل صدق نمیکند، زیرا کلیک کردن روی تبلیغ، لینک کلیک را باز میکند.
 برای پیادهسازی کلیک برای مکث، تابع کنترل کلیک adContainerClick() که در شنونده بارگذاری پنجره فراخوانی میشود، اضافه کنید. 
۸. مدیریت تبلیغات (AdsManager) را اجرا کنید
 برای شروع پخش تبلیغات، AdsManager اجرا و اجرا کنید. برای پشتیبانی کامل از مرورگرهای تلفن همراه، جایی که نمیتوانید به طور خودکار تبلیغات را پخش کنید، پخش تبلیغات را از طریق تعاملات کاربر با صفحه، مانند کلیک بر روی دکمه پخش، فعال کنید. 
۹. پشتیبانی از تغییر اندازه پخشکننده
 برای اینکه تبلیغات به صورت پویا تغییر اندازه دهند و با اندازه پخشکننده ویدیو مطابقت داشته باشند، یا با تغییرات جهت صفحه نمایش مطابقت داشته باشند، در پاسخ به رویدادهای تغییر اندازه پنجره، تابع adsManager.resize() فراخوانی کنید. 
همین! شما اکنون با استفاده از IMA SDK تبلیغات را درخواست و نمایش میدهید. برای کسب اطلاعات بیشتر در مورد ویژگیهای پیشرفتهتر SDK، به راهنماهای دیگر یا نمونههای موجود در GitHub مراجعه کنید.