کیت توسعه نرمافزار 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، از یکی از نسخههای مورد نیاز SDK بالا به همراه یک برچسب تبلیغ آزمایشی استفاده کنید.
شما باید عبارت <AdVerifications> را در پاسخ VAST خود مشاهده کنید.
کنترلهای ویدیویی ثبتشده، موانع را پوشش میدهند
Video controls such as pause buttons or progress bars provide essential playback information and actions to users. On mobile, imprecise taps and user expectations have made it common practice to render large, touch-friendly controls over the media element. These controls usually fade in and out on a user tap and are not visible for the vast majority of playback time.
در زیر نمونهای از کنترلهای ویدیویی ارائه شده توسط برنامه YouTube را مشاهده میکنید:

When using the IMA SDK, most publishers implement these controls by adding a view above the ad display container that is mostly transparent. Usually, the controls are child elements of this view that fully occludes the underlying video player. This transparent overlay is used to capture tap events and then render the controls to users when tapped.
When ad viewability via the Open Measurement SDK is calculated, all views overlaying the media element are considered obstructions and reduce the viewability rate. In the case where a transparent tap overlay sits above the entire ad display container, it is possible for inventory to be declared completely unviewable.
The Open Measurement SDK makes provisions for video controls to be considered "friendly" obstructions that are essential to the user's experience. Once registered as friendly, these controls are excluded from ad viewability measurement.
With IAB and MRC support, the IMA SDK introduces an API for registering these overlays with the Open Measurement SDK. These controls must be fully transparent overlays or small buttons. Any other views not related to video controls must not be registered.
| ثبت نام کنید | ثبت نام نکنید |
|---|---|
|
|
کد نمونه زیر نحوه ثبت پوششهای کنترلهای ویدیویی روی ظرف نمایش تبلیغات را نشان میدهد:
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];