کیت توسعه نرمافزار IMA برای اندروید شامل کیت توسعه نرمافزار Open Measurement (OM) است، یک استاندارد صنعتی که توسط دفتر تبلیغات تعاملی (IAB) برای فعال کردن قابلیت مشاهده و اندازهگیری تأیید توسط اشخاص ثالث توسعه داده شده است. هنگام استفاده از کیت توسعه نرمافزار IMA برای اندروید، کیت توسعه نرمافزار OM موجود به طور خودکار برچسب <AdVerifications> را در برچسبهای تبلیغاتی VAST تجزیه میکند و دادههای قابلیت مشاهده را با استفاده از API OMID به فروشندگان اندازهگیری مشخص شده ارسال میکند. کیت توسعه نرمافزار IMA از OM SDK نسخه ۱.۴، افزونههای GAM AdVerifications در VAST 2+ و گره AdVerifications در VAST 4+ پشتیبانی میکند. برای بهرهمندی از Open Measurement، نکات زیر را در نظر داشته باشید:
برای استفاده از Open Measurement باید نسخه 3.11.0 یا بالاتر از IMA SDK برای اندروید را داشته باشید. با این حال، نمونه موجود در این راهنما برای جدیدترین نسخه SDK طراحی شده است و شامل API های معرفی شده در نسخه 3.16.5 می باشد.
در صورت استفاده از 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 معرفی میکند. این کنترلها باید پوششهای کاملاً شفاف یا دکمههای کوچک باشند. هر نمای دیگری که مربوط به کنترلهای ویدیویی نباشد، نباید ثبت شود.
| ثبت نام کنید | ثبت نام نکنید |
|---|---|
|
|
کد نمونه زیر نحوه ثبت پوششهای کنترلهای ویدیویی روی ظرف نمایش تبلیغات را نشان میدهد:
private void registerFriendlyObstructions(
AdDisplayContainer adDisplayContainer, View transparentTapOverlay, View pauseButton) {
ImaSdkFactory imaSdkFactory = ImaSdkFactory.getInstance();
// Make sure to register all friendly obstructions before ad playback starts.
FriendlyObstruction overlayObstruction =
imaSdkFactory.createFriendlyObstruction(
transparentTapOverlay,
FriendlyObstructionPurpose.NOT_VISIBLE,
"This overlay is transparent");
FriendlyObstruction pauseButtonObstruction =
imaSdkFactory.createFriendlyObstruction(
pauseButton,
FriendlyObstructionPurpose.VIDEO_CONTROLS,
"This is the video player pause button");
adDisplayContainer.registerFriendlyObstruction(overlayObstruction);
adDisplayContainer.registerFriendlyObstruction(pauseButtonObstruction);
}
وقتی کارتان با آنها تمام شد، میتوانید با فراخوانی متد زیر این موانع را برطرف کنید:
private void unregisterFriendlyObstructions(AdDisplayContainer adDisplayContainer) {
adDisplayContainer.unregisterAllFriendlyObstructions();
}