إعلانات البانر

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

يتناول هذا الدليل تحميل إعلان بانر تكيُّفي ثابت في تطبيق Android.

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

إجراء الاختبار دائمًا باستخدام إعلانات اختبارية

عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات اختبارية بدلاً من الإعلانات المنشورة. وقد يؤدي عدم إجراء ذلك إلى تعليق حسابك.

إنّ أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام رقم تعريف الوحدة الإعلانية الاختبارية المخصّص لإعلانات بانر Android:

ca-app-pub-3940256099942544/9214589741

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

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية في حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، اطّلِع على مقالة تفعيل الإعلانات الاختبارية.

تحديد حاوية عرض الإعلان

أضِف عرضًا إلى ملف XML الخاص بالتنسيق لكي يكون حاوية لإعلان البانر المتغيّر المرتبط:

<!-- Ad view container that fills the width of the screen and adjusts its
     height to the content of the ad. -->
<FrameLayout
        android:id="@+id/ad_view_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true" />

ضبط حجم الإعلان

اضبط AdSize على نوع إعلان بانر تكيّفي ثابت بعرض محدّد:

JavaKotlin
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))

إضافة AdView إلى التنسيق

أنشئ AdView باستخدام حجم الإعلان لإضافته إلى تصميم تطبيقك:

JavaKotlin
// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);
// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

تحميل إعلان

بعد وضع AdView، تكون الخطوة التالية هي تحميل إعلان. يتم ذلك باستخدام طريقة loadAd() في فئة AdView. ويأخذ مَعلمة AdRequest تحتوي على معلومات وقت التشغيل، مثل معلومات الاستهداف، عن طلب إعلان واحد.

في ما يلي مثال يوضّح كيفية تحميل إعلان:

JavaKotlin
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

إذا نجحت عملية الإعداد، يعني ذلك أنّ تطبيقك جاهز لعرض إعلانات البانر.

إعادة تحميل إعلان

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

إزالة مورد إعلان

عند الانتهاء من استخدام إعلان بانر، يمكنك تحرير موارد إعلان البانر.

لتحرير مورد الإعلان، عليك إزالة الإعلان من التسلسل الهرمي للعرض و إسقاط جميع مراجعه:

Kotlin Java
// Remove banner from view hierarchy.
val parentView = adView?.parent
if (parentView is ViewGroup) {
  parentView.removeView(adView)
}

// Destroy the banner ad resources.
adView?.destroy()

// Drop reference to the banner ad.
adView = null
// Remove banner from view hierarchy.
if (adView.getParent() instanceof ViewGroup) {
  ((ViewGroup) adView.getParent()).removeView(adView);
}
// Destroy the banner ad resources.
adView.destroy();
// Drop reference to the banner ad.
adView = null;

أحداث الإعلانات

يمكنك الاستماع إلى عدد من الأحداث في رحلة الإعلان، بما في ذلك التحميل، ومرّات ظهور الإعلان والنقر عليه، بالإضافة إلى أحداث فتح الإعلان وإغلاقه. ننصح بضبط طلب معاودة الاتصال قبل تحميل البانر.
JavaKotlin
adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});
adView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

تتوافق كل طريقة قابلة للاستبدال في AdListener مع حدث في دورة حياة الإعلان.

الطرق التي يمكن إلغاؤها
onAdClicked() يتمّ استدعاء الطريقة onAdClicked() عند تسجيل نقرة على إعلان.
onAdClosed() يتمّ استدعاء الطريقة onAdClosed() عندما يعود المستخدِم إلى التطبيق بعد مشاهدة عنوان URL المقصود للإعلان. يمكن لتطبيقك استخدامها لاستئناف الأنشطة المعلّقة أو تنفيذ أي عمل آخر ضروري ليصبح جاهزًا للتفاعل. يُرجى الرجوع إلى مثال AdMob AdListener لتنفيذ طرق مستمع الإعلانات في تطبيق Android API Demo.
onAdFailedToLoad() إنّ طريقة onAdFailedToLoad() هي الطريقة الوحيدة التي تتضمّن مَعلمة. توضِّح مَعلمة الخطأ من النوع LoadAdError الخطأ الذي حدث. لمزيد من المعلومات، يُرجى الرجوع إلى مستندات تصحيح أخطاء تحميل الإعلانات.
onAdImpression() يتمّ استدعاء الطريقة onAdImpression() عند تسجيل مرّة ظهور لإعلان.
onAdLoaded() يتم تنفيذ الطريقة onAdLoaded() عند انتهاء تحميل إعلان. إذا أردت تأخير إضافة AdView إلى نشاطك أو المقتطف إلى أن تتأكّد من أنّه سيتم تحميل إعلان، على سبيل المثال، يمكنك إجراء ذلك هنا.
onAdOpened() يتمّ استدعاء الطريقة onAdOpened() عندما يفتح إعلان شاشة مثبّتة تغطي الشاشة.

تسريع الأجهزة لإعلانات الفيديو

لكي تظهر إعلانات الفيديو بنجاح في مشاهدات إعلانات البانر، يجب تفعيل تسريع الأجهزة.

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

تفعيل ميزة "تسريع الأجهزة"

إذا لم يعمل تطبيقك بشكل صحيح عند تفعيل ميزة "تسريع الأجهزة" بشكل عام، يمكنك التحكّم فيها لأنشطة فردية أيضًا. لتفعيل ميزة "تسريع الأجهزة" أو إيقافها، يمكنك استخدام سمة android:hardwareAccelerated للعنصرين <application> و <activity> في AndroidManifest.xml. يوضّح المثال التالي تفعيل ميزة "تسريع الأجهزة" للتطبيق بأكمله ولكن إيقافها لنشاط واحد:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

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

مراجع إضافية

أمثلة على GitHub

  • مثال على إعلانات البانر التكيّفية الثابتة: Java | Kotlin
  • عرض الميزات المتقدّمة: Java | Kotlin

الخطوات التالية

إعلانات البانر القابلة للتصغير

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

إعلانات البانر التكيّفية المضمّنة

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

استكشاف مواضيع أخرى