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

هنگام استفاده از IMA SDK، اکثر ناشران این کنترلها را با افزودن یک نمای بالای ظرف نمایش آگهی که عمدتاً شفاف است، پیادهسازی میکنند. معمولاً، کنترلها عناصر فرزند این نما هستند که پخشکننده ویدیو زیرین را بهطور کامل میپوشانند. این رونهاد شفاف برای ضبط رویدادهای تکضرب و سپس پرداز کردن کنترلها برای کاربران هنگام تکضرب استفاده میشود.
وقتی قابلیت مشاهده آگهی بااستفاده از کیت توسعه نرمافزار Open Measurement محاسبه میشود، همه نماهای همپوشاننده عنصر رسانه بهعنوان مانع درنظر گرفته میشوند و نرخ قابلیت مشاهده را کاهش میدهند. در مواردی که رونهاد شفاف ضربه زدن روی کل محفظه نمایش آگهی قرار میگیرد، ممکن است فضای آگهی کاملاً غیرقابلمشاهده اعلام شود.
کیت توسعه نرمافزار Open Measurement تمهیداتی را برای کنترلهای ویدیو فراهم میکند تا بهعنوان موانع «دوستانه» که برای تجربه کاربر ضروری هستند درنظر گرفته شوند. پساز ثبت شدن بهعنوان دوستانه، این کنترلها از اندازهگیری رؤیتپذیری آگهی کنار گذاشته میشوند.
با پشتیبانی IAB و MRC، کیت توسعه نرمافزار IMA یک API برای ثبت این همپوشانیها با کیت توسعه نرمافزار Open Measurement معرفی میکند. این کنترلها باید کاملاً شفاف باشند روپوشها یا دکمههای کوچک. هر نمای دیگری که مربوط به کنترلهای ویدیو نباشد نباید ثبت شود.
| ثبتنام DO | ثبتنام نکنید |
|---|---|
|
|
کد نمونه زیر نحوه ثبت کردن رونهادهای کنترلهای ویدیو را در ظرف نمایش آگهی نشان میدهد:
آبجکتیو-سی
- (void)registerObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
UIView *transparentTapOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 300, 250)];
UIButton *myPauseButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 10)];
IMAFriendlyObstruction *overlayObstruction =
[[IMAFriendlyObstruction alloc] initWithView:transparentTapOverlay
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];
}
Swift
func registerObstructions(displayContainer: IMAAdDisplayContainer) {
let transparentTapOverlay = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 250))
let myPauseButton = UIButton(frame: CGRect(x: 0, y: 0, width: 50, height: 10))
let overlayObstruction = IMAFriendlyObstruction(
view: transparentTapOverlay,
purpose: .notVisible,
detailedReason: "This overlay is transparent")
let pauseButtonObstruction = IMAFriendlyObstruction(
view: myPauseButton,
purpose: .mediaControls,
detailedReason: "This is the video player pause button")
displayContainer.register(overlayObstruction)
displayContainer.register(pauseButtonObstruction)
}
وقتی کارتان با آنها تمام شد، میتوانید این موانع را با فراخوانی روش زیر بردارید:
آبجکتیو-سی
- (void)unregisterObstructionsForContainer:(IMAAdDisplayContainer *)displayContainer {
// This removes all previously registered friendly obstructions from the container.
[displayContainer unregisterAllFriendlyObstructions];
}
Swift
func unregisterObstructions(displayContainer: IMAAdDisplayContainer) {
// This removes all previously registered friendly obstructions from the container.
displayContainer.unregisterAllFriendlyObstructions()
}