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

اختيار النظام الأساسي: Android جديد Android iOS Unity Flutter

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

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

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

  • إعداد Google Mobile Ads SDK.
  • اختياري: للحصول على مثال على تنفيذ إعلانات البانر، اختَر أحد نماذج التطبيقات التالية:
    • مثال على إعلانات البانر التكيُّفية الثابتة في Java أو Kotlin أو Jetpack Compose
    • عرض توضيحي للميزات المتقدّمة في Java أو Kotlin

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

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

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

ca-app-pub-3940256099942544/9214589741

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

لمزيد من المعلومات عن طريقة عمل الإعلانات الاختبارية Google Mobile Ads SDK، اطّلِع على مقالة تفعيل الإعلانات الاختبارية.

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

تصميم XML

أضِف طريقة عرض إلى ملف 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" />

Jetpack Compose

  1. أدرِج مجلد JetpackCompose Utilities. يتضمّن هذا المجلد أدوات مساعِدة لإنشاء عنصر AdView ومواد العرض.

  2. أنشئ عنصر AdView:


// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}

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

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

جافا


// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360));

Kotlin


// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))

Jetpack Compose


// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

إضافة AdView إلى التصميم

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

جافا


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

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);

Kotlin


// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request a large anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getLargeAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView

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

Jetpack Compose


val adView = remember { AdView(context) }

// Setup and load the adview.
// Set the unique ID for this specific ad unit.
adView.adUnitId = BANNER_AD_UNIT_ID

// Set a large anchored adaptive banner ad size with a given width.
val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(LocalContext.current, 360)
adView.setAdSize(adSize)

// Place the ad view at the bottom of the screen.
Column(modifier = modifier.fillMaxSize(), verticalArrangement = Arrangement.Bottom) {
  Box(modifier = modifier.fillMaxWidth()) { BannerAd(adView, modifier) }
}

تحميل إعلان

يعرض المثال التالي كيفية تحميل إعلان بانر تكيُّفي ثابت بعرض 360 في عنصر AdView:

جافا

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

Kotlin

val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

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

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

إطلاق مورد إعلان

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

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

جافا

public void destroyBanner() {
  // Remove banner from view hierarchy.
  if (adView != null) {
    View parentView = (View) adView.getParent();
    if (parentView instanceof ViewGroup) {
      ((ViewGroup) parentView).removeView(adView);
    }

    // Destroy the banner ad resources.
    adView.destroy();
  }

  // Drop reference to the banner ad.
  adView = null;
}

Kotlin

fun destroyBanner() {
  // 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
}

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

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

جافا

if (adView != null) {
  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(@NonNull 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.
        }
      });
}

Kotlin

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>

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

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

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

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

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

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

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