کیت توسعه نرمافزار IMA برای iOS شامل کیت توسعه نرمافزار Open Measurement (OM) است، یک استاندارد صنعتی که توسط دفتر تبلیغات تعاملی (IAB) برای فعال کردن قابلیت مشاهده و اندازهگیری تأیید توسط اشخاص ثالث توسعه داده شده است. هنگام استفاده از کیت توسعه نرمافزار IMA برای iOS، کیت توسعه نرمافزار OM موجود به طور خودکار برچسب <AdVerifications> را در برچسبهای تبلیغاتی VAST تجزیه میکند و دادههای قابلیت مشاهده را با استفاده از API OMID به فروشندگان اندازهگیری مشخص شده ارسال میکند. کیت توسعه نرمافزار IMA از OM SDK نسخه ۱.۴، افزونههای GAM AdVerifications در VAST 2+ و گره AdVerifications در VAST 4+ پشتیبانی میکند. برای بهرهمندی از Open Measurement، نکات زیر را در نظر داشته باشید:
برای استفاده از Open Measurement باید نسخه ۳.۹.۰ یا بالاتر از IMA SDK برای iOS را داشته باشید.
در صورت استفاده از VAST 4.1+، تبلیغات باید طوری پیکربندی شوند که
<AdVerifications>در VAST خود مطابق با مشخصات VAST 4.1 ترافیک دهند؛ در غیر این صورت، باید<Extension type="AdVerifications">استفاده شود.از پوشاندن
AdDisplayContainerبا هرگونه پوشش (شفاف یا مات) خودداری کنید، زیرا این موارد توسط OM SDK به عنوان مانع علامتگذاری میشوند و قابلیت مشاهده را کاهش میدهند.
پیشنیازها
- اگر تبلیغات شما از طریق Ad Manager منتشر میشوند، یک ارائهدهنده قابلیت مشاهده برای شبکه Ad Manager خود پیکربندی کنید و آن ارائهدهنده قابلیت مشاهده را به آیتم خطی خود اختصاص دهید.
آزمایش
برای آزمایش Open Measurement با استفاده از IMA SDK، از نسخهای از IMA که از OM SDK پشتیبانی میکند، به همراه یک برچسب تبلیغ آزمایشی استفاده کنید.
شما باید عبارت <AdVerifications> را در پاسخ VAST خود مشاهده کنید.
کنترلهای ویدیویی ثبتشده، موانع را پوشش میدهند
کنترلهای ویدیویی مانند دکمههای مکث یا نوارهای پیشرفت، اطلاعات و اقدامات ضروری پخش را در اختیار کاربران قرار میدهند. در موبایل، لمسهای غیردقیق و انتظارات کاربران، نمایش کنترلهای بزرگ و لمسی روی عنصر رسانه را به امری رایج تبدیل کرده است. این کنترلها معمولاً با لمس کاربر محو و محو میشوند و در بیشتر زمان پخش قابل مشاهده نیستند.
برای مثالی از همپوشانی کنترلهای ویدیو، به تصویر زیر در مورد کنترلهای رندر برنامه YouTube مراجعه کنید:

هنگام استفاده از IMA SDK، اکثر ناشران این کنترلها را با اضافه کردن یک نمای بالای ظرف نمایش تبلیغات که عمدتاً شفاف است، پیادهسازی میکنند. معمولاً کنترلها عناصر فرزند این نما هستند که پخشکننده ویدیوی زیرین را کاملاً میپوشاند. این پوشش شفاف برای ضبط رویدادهای ضربه و سپس ارائه کنترلها به کاربران هنگام ضربه زدن استفاده میشود.
وقتی قابلیت مشاهده تبلیغ با استفاده از Open Measurement SDK محاسبه میشود، تمام نماهایی که عنصر رسانه را پوشش میدهند، به عنوان مانع در نظر گرفته میشوند و میزان مشاهده را کاهش میدهند. در صورتی که یک پوشش شفاف روی کل ظرف نمایش تبلیغ قرار گیرد، ممکن است موجودی به طور کامل غیرقابل مشاهده اعلام شود.
کیت توسعه نرمافزار Open Measurement تمهیداتی را برای کنترلهای ویدیویی در نظر گرفته است تا به عنوان موانع «دوستانه» که برای تجربه کاربر ضروری هستند، در نظر گرفته شوند. پس از ثبت به عنوان دوستانه، این کنترلها از اندازهگیری میزان بازدید تبلیغات حذف میشوند.
با پشتیبانی IAB و MRC، IMA SDK یک API برای ثبت این پوششها با Open Measurement SDK معرفی میکند. این کنترلها باید پوششهای کاملاً شفاف یا دکمههای کوچک باشند. هر نمای دیگری که مربوط به کنترلهای ویدیویی نباشد، نباید ثبت شود.
| ثبت نام کنید | ثبت نام نکنید |
|---|---|
|
|
کد نمونه زیر نحوه ثبت پوششهای کنترلهای ویدیویی روی ظرف نمایش تبلیغات را نشان میدهد:
UIView *myTransparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
// Substitute "myTransparentTapOverlay" and "myPauseButton" with the elements
// you want to register as video controls overlays.
// Make sure to register before ad playback starts.
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myTransparentTapOverlay
purpose:IMAFriendlyObstructionPurposeNotVisible
detailedReason:@"This overlay is transparent"];
IMAFriendlyObstruction *pauseButtonObstruction =
[[IMAFriendlyObstruction alloc] initWithView:myPauseButton
purpose:IMAFriendlyObstructionPurposeMediaControls
detailedReason:@"This is the video player pause button"];
[displayContainer registerFriendlyObstruction:overlayObstruction];
[displayContainer registerFriendlyObstruction:pauseButtonObstruction];
وقتی کارتان با آنها تمام شد، میتوانید با فراخوانی متد زیر این موانع را برطرف کنید:
[displayContainer unregisterAllFriendlyObstructions];