خيارات الإعلانات المدمجة مع المحتوى

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

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

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

عناصر التحكّم في مواد العرض

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

عناصر التحكّم في نسبة العرض إلى الارتفاع المفضّلة للوسائط

تتيح لك عناصر التحكّم في نسبة العرض إلى الارتفاع للوسائط تحديد إعداداتك المفضّلة لنسبة العرض إلى الارتفاع لتصاميم الإعلانات.

استبدِل NativeAdOptions.Builder.setMediaAspectRatio() بقيمة NativeAdOptions.MediaAspectRatio.

  • عند عدم ضبط هذه السمة، يمكن أن يكون للإعلان المعروض أي نسبة عرض إلى ارتفاع للوسائط.

  • عند ضبط هذا الخيار، ستتمكّن من تحسين تجربة المستخدم من خلال تحديد نوع نسبة العرض إلى الارتفاع المفضَّل.

يوضّح المثال التالي كيفية توجيه حزمة تطوير البرامج (SDK) لتفضيل عرض صورة أو فيديو بنسبة عرض إلى ارتفاع معيّنة.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setMediaAspectRatio(NativeAdOptions.NATIVE_MEDIA_ASPECT_RATIO_LANDSCAPE)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

استبدِل AD_UNIT_ID برقم تعريف وحدتك الإعلانية.

التحكّم في تنزيل الصور

يتيح لك عنصر التحكّم في تنزيل الصور تحديد ما إذا كانت حزمة تطوير البرامج (SDK) ستعرض مواد عرض الصور أو معرّفات الموارد الموحّدة (URI) فقط.

اتّصِل بـ NativeAdOptions.Builder.setReturnUrlsForImageAssets() باستخدام القيمة boolean.

  • تكون عناصر التحكّم في تنزيل الصور غير مفعّلة تلقائيًا.

  • عند إيقاف هذه الميزة، تملأ حزمة SDK لإعلانات Google على الأجهزة الجوّالة كلاً من الصورة ومعرّف الموارد المنتظم (URI) نيابةً عنك.

  • عند تفعيل هذا الخيار، تملأ حزمة تطوير البرامج (SDK) معرّف الموارد الموحّد (URI) فقط، ما يتيح لك تنزيل الصور الفعلية حسب تقديرك.

يوضّح المثال التالي كيفية توجيه حزمة تطوير البرامج (SDK) لعرض معرّف الموارد الموحّد فقط.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID")
        .withNativeAdOptions(nativeAdOptions)
        .forNativeAd(
            nativeAd -> {
              List<Uri> imageUris = new ArrayList<>();
              for (Image image : nativeAd.getImages()) {
                imageUris.add(image.getUri());
              }
            })
        .build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setReturnUrlsForImageAssets(true).build()

val loader =
  AdLoader.Builder(context, "AD_UNIT_ID")
    .withNativeAdOptions(nativeAdOptions)
    .forNativeAd { nativeAd ->
      val imageUris = nativeAd.images.mapNotNull { it.uri }
    }
    .build()

عناصر التحكّم في حمولة الصور

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

اتّصِل بـ NativeAdOptions.Builder.setRequestMultipleImages() باستخدام القيمة boolean.

  • يتم إيقاف عناصر التحكّم في حمولة الصورة تلقائيًا.

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

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

يوضح المثال التالي كيفية توجيه حزمة تطوير البرامج (SDK) لعرض مواد عرض صور متعددة.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setRequestMultipleImages(true).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions = NativeAdOptions.Builder().setRequestMultipleImages(true).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

مواضع "خيارات الإعلان"

تخصيص عرض رمز "خيارات الإعلان"

عناصر التحكّم في موضع AdChoices

تتيح لك عناصر التحكّم في موضع "خيارات الإعلان" اختيار الزاوية التي تريد عرض رمز "خيارات الإعلان" فيها.

استبدِل NativeAdOptions.Builder.setAdChoicesPlacement() بقيمة NativeAdOption.AdChoicesPlacement.

  • إذا لم يتم ضبطها، يتم ضبط موضع رمز AdChoices على أعلى يسار الصفحة.

  • في حال ضبط هذا الخيار، يتم وضع أداة AdChoices في الموضع المخصّص المطلوب.

يوضّح المثال التالي كيفية ضبط موضع مخصّص لصورة AdChoices.

Java

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder()
        .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
        .build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val nativeAdOptions =
  NativeAdOptions.Builder()
    .setAdChoicesPlacement(NativeAdOptions.ADCHOICES_BOTTOM_RIGHT)
    .build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

طريقة العرض المخصّصة لـ AdChoices

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

استبدِل NativeAdView.setAdChoicesView() بقيمة AdChoicesView.

يوضّح المثال التالي كيفية ضبط عرض مخصّص لـ AdChoices، مع عرض رمز AdChoices داخل AdChoicesView.

Java

NativeAdView nativeAdView = new NativeAdView(context);
AdChoicesView adChoicesView = new AdChoicesView(context);
nativeAdView.setAdChoicesView(adChoicesView);

Kotlin

val nativeAdView = NativeAdView(context)
val adChoicesView = AdChoicesView(context)
nativeAdView.adChoicesView = adChoicesView

عناصر التحكُّم في الفيديو

ضبط سلوك مادة عرض الفيديو

سلوك بدء كتم الصوت

يتيح لك سلوك "بدء التشغيل مع كتم الصوت" إيقاف الصوت عند بدء تشغيل الفيديو أو تفعيله.

اتّصِل بـ VideoOptions.Builder.setStartMuted() باستخدام القيمة boolean.

  • يتم تفعيل سلوك "بدء التشغيل مع كتم الصوت" تلقائيًا.

  • عند إيقاف هذا الخيار، يجب أن يتضمّن طلب تطبيقك بدء الفيديو صوتًا.

  • عند تفعيل هذا الخيار، يطلب تطبيقك أن يبدأ الفيديو مع كتم الصوت.

يوضّح المثال التالي كيفية بدء الفيديو مع تشغيل الصوت.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(false).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(false).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

عناصر التحكّم المخصّصة في التشغيل

يتيح لك ذلك طلب عناصر تحكّم مخصّصة في إدخال الفيديو لتشغيل الفيديو أو إيقافه مؤقتًا أو كتم صوته.

اتّصِل بـ VideoOptions.Builder.setCustomControlsRequested() باستخدام القيمة boolean.

  • تكون عناصر التحكّم المخصّصة في التشغيل غير مفعّلة تلقائيًا.

  • عند إيقاف هذا الخيار، سيظهر الفيديو مع عناصر التحكّم في الإدخال التي يعرضها حزمة تطوير البرامج (SDK).

إذا كان الإعلان يتضمّن محتوًى فيديو وتم تفعيل عناصر التحكّم المخصّصة، عليك عرض عناصر التحكّم المخصّصة مع الإعلان، لأنّ الإعلان لن يعرض أي عناصر تحكّم. يمكن لوحدات التحكّم بعد ذلك استدعاء الطرق ذات الصلة في

VideoController.

يوضّح المثال التالي كيفية طلب فيديو باستخدام عناصر تحكّم مخصّصة في التشغيل.

Java

VideoOptions videoOptions = new VideoOptions.Builder().setCustomControlsRequested(true).build();

NativeAdOptions nativeAdOptions =
    new NativeAdOptions.Builder().setVideoOptions(videoOptions).build();

AdLoader loader =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build();

Kotlin

val videoOptions = VideoOptions.Builder().setCustomControlsRequested(true).build()

val nativeAdOptions = NativeAdOptions.Builder().setVideoOptions(videoOptions).build()

val loader = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(nativeAdOptions).build()

التحقّق من تفعيل عناصر التحكّم المخصّصة

بما أنّه لا يُعرف في وقت الطلب ما إذا كان الإعلان المعروض سيسمح بعناصر تحكّم مخصّصة في الفيديو، عليك التحقّق مما إذا كانت عناصر التحكّم المخصّصة مفعّلة.

Java

MediaContent mediaContent = nativeAd.getMediaContent();
if (mediaContent != null) {
  VideoController videoController = mediaContent.getVideoController();
  boolean canShowCustomControls = videoController.isCustomControlsEnabled();
}

Kotlin

val mediaContent = nativeAd.mediaContent
if (mediaContent != null) {
  val videoController = mediaContent.videoController
  val canShowCustomControls = videoController.isCustomControlsEnabled
}

عرض عناصر تحكّم مخصّصة في الفيديو

يمكنك عرض عناصر تحكّم مخصّصة في الفيديو باتّباع أفضل الممارسات التالية:

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

إيماءات النقر المخصّصة

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

اتّصِل بالرقم NativeAdOptions.Builder.enableCustomClickGestureDirection() مع NativeAdOptions.SwipeGestureDirection وboolean لتحديد ما إذا كنت تريد السماح بالنقرات كعمليات نقر.

يوضّح المثال التالي كيفية تنفيذ إيماءة تمرير سريع مخصّصة إلى اليمين مع الحفاظ على السلوك العادي للعلامات.

  • يتم إيقاف إيماءات النقر المخصّصة تلقائيًا.

  • عند إيقاف هذا الخيار، سيتيح تطبيقك سلوك النقر العادي.

  • عند تفعيل هذا الخيار، سيتيح تطبيقك استخدام إيماءات التمرير السريع المخصّصة.

يوضّح المثال التالي كيفية تنفيذ إيماءة تمرير سريع مخصّصة إلى اليمين مع الحفاظ على السلوك العادي للعلامات.

Java

NativeAdOptions adOptions =
    new NativeAdOptions.Builder()
        .enableCustomClickGestureDirection(
            NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, /* tapsAllowed= */ true)
        .build();

// ca-app-pub-3940256099942544/2247696110 is a sample ad unit ID that has custom click
// gestures enabled.
AdLoader.Builder builder =
    new AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions);

Kotlin

val adOptions =
  NativeAdOptions.Builder()
    .enableCustomClickGestureDirection(NativeAdOptions.SWIPE_GESTURE_DIRECTION_RIGHT, true)
    .build()

val builder = AdLoader.Builder(context, "AD_UNIT_ID").withNativeAdOptions(adOptions)

الاستماع إلى أحداث إيماءات التمرير السريع

عند تسجيل نقرة بإيماءة التمرير السريع، تستدعي حزمة SDK لإعلانات Google على الأجهزة الجوّالة الطريقة onAdSwipeGestureClicked() في AdListener، بالإضافة إلى الطريقة onAdClicked() الحالية.

Java

AdLoader adLoader =
    new AdLoader.Builder(context, AD_UNIT_ID)
        .withAdListener(
            new AdListener() {
              // Called when a swipe gesture click is recorded.
              @Override
              public void onAdSwipeGestureClicked() {
                // Called when a swipe gesture click is recorded.
                Log.d(TAG, "A swipe gesture click has occurred.");
              }

              @Override
              public void onAdClicked() {
                // Called when a swipe gesture click or a tap click is recorded, as
                // configured in NativeAdOptions.
                Log.d(TAG, "A swipe gesture click or a tap click has occurred.");
              }
            })
        .build();

Kotlin

val adLoader =
  AdLoader.Builder(context, AD_UNIT_ID)
    .withAdListener(
      object : AdListener() {
        override fun onAdSwipeGestureClicked() {
          // Called when a swipe gesture click is recorded.
          Log.d(TAG, "A swipe gesture click has occurred.")
        }

        override fun onAdClicked() {
          // Called when a swipe gesture click or a tap click is recorded, as
          // configured in NativeAdOptions.
          Log.d(TAG, "A swipe gesture click or a tap click has occurred.")
        }
      }
    )
    .build()

الوساطة

لا تعمل إيماءات النقر المخصّصة إلا على الإعلانات المدمَجة مع المحتوى التي تعرضها حزمة "SDK لإعلانات Google على الأجهزة الجوّالة". مصادر الإعلانات التي تتطلّب حِزم تطوير برامج تابعة لجهات خارجية لعرض الإعلانات لا تستجيب لإعداد توجيهات النقرات المخصّصة.