تفعيل ميزة "القياس المفتوح"

اختيار النظام الأساسي: HTML5 Android iOS

تتضمّن حزمة 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 ستضع علامة على هذه الطبقات باعتبارها عوائق وستقلّل من إمكانية العرض.

المتطلبات الأساسية

الاختبار

لاختبار ميزة Open Measurement باستخدام حزمة IMA SDK، استخدِم إصدارًا من IMA يتوافق مع حزمة OM SDK، بالإضافة إلى علامة إعلانية اختبارية.

من المفترض أن تظهر لك العلامة <AdVerifications> التي تم عرضها في ردّ VAST.

تسجيل العوائق التي تحجب عناصر التحكّم في الفيديو

توفّر عناصر التحكّم في الفيديو، مثل أزرار الإيقاف المؤقت أو أشرطة التقدّم، معلومات وإجراءات أساسية للمستخدمين بشأن التشغيل. على الأجهزة الجوّالة، أدّت النقرات غير الدقيقة وتوقّعات المستخدمين إلى شيوع عرض عناصر تحكّم كبيرة وسهلة اللمس فوق عنصر الوسائط. تظهر عناصر التحكّم هذه عادةً وتختفي عند نقرة المستخدم ولا تكون مرئية خلال الغالبية العظمى من وقت التشغيل.

للاطّلاع على مثال على عناصر التحكّم في الفيديو التي يتم عرضها فوق الفيديو، يُرجى الاطّلاع على الصورة التالية في تطبيق YouTube التي تعرض عناصر التحكّم:

فتح صورة مثال على تراكب القياس

عند استخدام حزمة IMA SDK، ينفّذ معظم الناشرين عناصر التحكّم هذه من خلال إضافة طريقة عرض فوق حاوية عرض الإعلان تكون شفافة في الغالب. عادةً ما تكون عناصر التحكّم عناصر فرعية من طريقة العرض هذه التي تحجب مشغّل الفيديو الأساسي بالكامل. تُستخدَم هذه الطبقة الشفافة لتسجيل أحداث النقر ثم عرض عناصر التحكّم للمستخدمين عند النقر عليها.

عند احتساب إمكانية عرض الإعلان باستخدام حزمة SDK للقياس المفتوح، تُعتبر جميع طرق العرض التي يتم عرضها فوق عنصر الوسائط عوائق وتقلّل من نسبة إمكانية العرض. في حال وجود طبقة شفافة للنقر فوق حاوية عرض الإعلان بالكامل، من الممكن أن يتم الإعلان عن أنّ المساحة الإعلانية غير قابلة للعرض على الإطلاق.

تتضمّن حزمة SDK للقياس المفتوح أحكامًا تسمح باعتبار عناصر التحكّم في الفيديو عوائق "سهلة الاستخدام" ضرورية لتجربة المستخدم. بعد تسجيل عناصر التحكّم هذه على أنّها سهلة الاستخدام، يتم استبعادها من قياس إمكانية عرض الإعلان.

مع دعم IAB وMRC، تقدّم حزمة IMA SDK واجهة برمجة تطبيقات لتسجيل هذه الطبقات في حزمة SDK للقياس المفتوح. يجب أن تكون عناصر التحكّم هذه طبقات شفافة بالكامل أو أزرارًا صغيرة. يجب عدم تسجيل أي طرق عرض أخرى غير مرتبطة بعناصر التحكّم في الفيديو.

ما يجب تسجيله ما لا يجب تسجيله
  • طبقة شفافة لتسجيل نقرات المستخدم
  • أزرار مؤقتة
    • إيقاف مؤقت
    • تشغيل
    • ملء الشاشة
    • البث/AirPlay
    • تصغير
    • التقدّم/البحث
    • إجراءات أخرى ذات صلة بالتشغيل
  • العلامات المائية
  • النوافذ المنبثقة
  • مربّعات حوار
  • أزرار غير مؤقتة
  • طرق عرض أخرى تحجب المحتوى

يوضّح الرمز النموذجي التالي كيفية تسجيل الطبقات التي تحجب عناصر التحكّم في الفيديو على حاوية عرض الإعلان:

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()
}