تتضمّن حزمة IMA SDK لنظام التشغيل iOS حزمة
Open Measurement (OM) SDK،
وهي معيار متّبع في المجال طوّره
Interactive Advertising Bureau (IAB) لتفعيل قياس إمكانية العرض والتحقّق من جهة خارجية. عند استخدام حزمة IMA SDK لنظام التشغيل
iOS، تحلّل حزمة OM SDK المضمّنة تلقائيًا
العلامة <AdVerifications> ضمن علامات VAST الإعلانية وترسل بيانات إمكانية العرض إلى
مورّدي القياس المحدّدين باستخدام واجهة OMID API. تتوافق حزمة IMA SDK مع حزمة OM SDK الإصدار 1.4، وإضافات GAM AdVerifications على VAST 2 والإصدارات الأحدث، وعقدة AdVerifications على VAST 4 والإصدارات الأحدث.للاستفادة من ميزة Open Measurement، يُرجى مراعاة النقاط التالية:
لاستخدام ميزة Open Measurement، يجب أن يكون لديك الإصدار 3.9.0 أو إصدار أحدث من الـ IMA SDK لنظام التشغيل iOS.
يجب ضبط الإعلانات لعرض
<AdVerifications>في علامات VAST وفقًا لـ مواصفات VAST 4.1 إذا كنت تستخدم VAST 4.1 والإصدارات الأحدث، وإلا يجب استخدام<Extension type="AdVerifications">.يُرجى عدم تغطية
AdDisplayContainerبأي طبقات (شفافة أو غير شفافة)، لأنّ حزمة OM SDK ستضع علامة على هذه الطبقات باعتبارها عوائق وستقلّل من إمكانية العرض.
المتطلبات الأساسية
- إذا كانت إعلاناتك يتم عرضها من خلال "إدارة الإعلانات"، عليك ضبط جهة قياس إمكانية العرض لشبكة "إدارة الإعلانات" وتعيين جهة قياس إمكانية العرض هذه لبندك الإعلاني.
الاختبار
من المفترض أن تظهر لك العلامة <AdVerifications> التي تم عرضها في ردّ VAST.
تسجيل العوائق التي تحجب عناصر التحكّم في الفيديو
توفّر عناصر التحكّم في الفيديو، مثل أزرار الإيقاف المؤقت أو أشرطة التقدّم، معلومات وإجراءات أساسية للمستخدمين بشأن التشغيل. على الأجهزة الجوّالة، أدّت النقرات غير الدقيقة وتوقّعات المستخدمين إلى شيوع عرض عناصر تحكّم كبيرة وسهلة اللمس فوق عنصر الوسائط. تظهر عناصر التحكّم هذه عادةً وتختفي عند نقرة المستخدم ولا تكون مرئية خلال الغالبية العظمى من وقت التشغيل.
للاطّلاع على مثال على عناصر التحكّم في الفيديو التي يتم عرضها فوق الفيديو، يُرجى الاطّلاع على الصورة التالية في تطبيق YouTube التي تعرض عناصر التحكّم:

عند استخدام حزمة IMA SDK، ينفّذ معظم الناشرين عناصر التحكّم هذه من خلال إضافة طريقة عرض فوق حاوية عرض الإعلان تكون شفافة في الغالب. عادةً ما تكون عناصر التحكّم عناصر فرعية من طريقة العرض هذه التي تحجب مشغّل الفيديو الأساسي بالكامل. تُستخدَم هذه الطبقة الشفافة لتسجيل أحداث النقر ثم عرض عناصر التحكّم للمستخدمين عند النقر عليها.
عند احتساب إمكانية عرض الإعلان باستخدام حزمة SDK للقياس المفتوح، تُعتبر جميع طرق العرض التي يتم عرضها فوق عنصر الوسائط عوائق وتقلّل من نسبة إمكانية العرض. في حال وجود طبقة شفافة للنقر فوق حاوية عرض الإعلان بالكامل، من الممكن أن يتم الإعلان عن أنّ المساحة الإعلانية غير قابلة للعرض على الإطلاق.
تتضمّن حزمة SDK للقياس المفتوح أحكامًا تسمح باعتبار عناصر التحكّم في الفيديو عوائق "سهلة الاستخدام" ضرورية لتجربة المستخدم. بعد تسجيل عناصر التحكّم هذه على أنّها سهلة الاستخدام، يتم استبعادها من قياس إمكانية عرض الإعلان.
مع دعم IAB وMRC، تقدّم حزمة IMA SDK واجهة برمجة تطبيقات لتسجيل هذه الطبقات في حزمة SDK للقياس المفتوح. يجب أن تكون عناصر التحكّم هذه طبقات شفافة بالكامل أو أزرارًا صغيرة. يجب عدم تسجيل أي طرق عرض أخرى غير مرتبطة بعناصر التحكّم في الفيديو.
| ما يجب تسجيله | ما لا يجب تسجيله |
|---|---|
|
|
يوضّح الرمز النموذجي التالي كيفية تسجيل الطبقات التي تحجب عناصر التحكّم في الفيديو على حاوية عرض الإعلان:
Objective-C
- (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)
}
عند الانتهاء من استخدام هذه العوائق، يمكن إزالتها من خلال استدعاء الطريقة التالية:
Objective-C
- (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()
}