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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

يوضّح لك هذا الدليل كيفية دمج إعلانات البانر من AdMob في تطبيق Android. وبالإضافة إلى مقتطفات الشفرة والتعليمات، يشمل أيضًا معلومات عن تحديد حجم إعلانات بانر بشكل سليم وروابط إلى موارد إضافية.

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

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

تتمثل الخطوة الأولى نحو عرض إعلان بانر في وضع AdView في تنسيق Activity أو Fragment الذي ترغب في عرضه به. وأسهل طريقة لتنفيذ ذلك هي إضافة ملف إلى ملف تنسيق XML المقابل. في ما يلي مثال يوضح نشاط AdView:

# main_activity.xml
...
  <com.google.android.gms.ads.AdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
  </com.google.android.gms.ads.AdView>
...

لاحظ السمات المطلوبة التالية:

  • ads:adSize - عيّن هذا الإعداد على حجم الإعلان الذي ترغب في استخدامه. إذا كنت لا تريد استخدام الحجم القياسي المحدد بواسطة الثابت، يمكنك تعيين حجم مخصص بدلاً من ذلك. راجع قسم حجم البانر أدناه للحصول على التفاصيل.
  • ads:adUnitId - عيّن هذا الإعداد على المعرّف الفريد المعيّن للوحدة الإعلانية في تطبيقك حيث سيتم عرض الإعلانات. إذا كنت تعرض إعلانات بانر في أنشطة مختلفة، فسيتطلب كل منها وحدة إعلانية.

يمكنك بدلاً من ذلك إنشاء AdView آليًا:

لغة Java

AdView adView = new AdView(this);

adView.setAdSize(AdSize.BANNER);

adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdView(this)

adView.adSize = AdSize.BANNER

adView.adUnitId = "ca-app-pub-3940256099942544/6300978111"
// TODO: Add adView to your view hierarchy.

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

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

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

ca-app-pub-3940256099942544/6300978111

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

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية لحزمة تطوير البرامج (SDK) لإعلانات الأجهزة الجوّالة، اطّلع على الإعلانات الاختبارية.

تحميل إعلان

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

في ما يلي مثال يوضّح كيفية تحميل إعلان باستخدام طريقة onCreate() من Activity:

MainActivity (مقتطف)

لغة Java

package ...

import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

public class MainActivity extends AppCompatActivity {
    private AdView mAdView;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MobileAds.initialize(this, new OnInitializationCompleteListener() {
            @Override
            public void onInitializationComplete(InitializationStatus initializationStatus) {
            }
        });

        mAdView = findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
    }
}

Kotlin

package ...

import ...
import com.google.android.gms.ads.AdRequest
import com.google.android.gms.ads.AdView

class MainActivity : AppCompatActivity() {

    lateinit var mAdView : AdView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        MobileAds.initialize(this) {}

        mAdView = findViewById(R.id.adView)
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
    }
}

أكملت هذه الخطوة. تطبيقك جاهز الآن لعرض إعلانات البانر.

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

لتخصيص سلوك إعلانك أكثر، يمكنك ربط عدد من الأحداث في مراحل نشاط الإعلان: التحميل والفتح والإغلاق وما إلى ذلك. يمكنك الاستماع إلى هذه الأحداث من خلال صف AdListener.

لاستخدام AdListener مع AdView، يمكنك استدعاء طريقة setAdListener():

لغة Java

mAdView.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.
    }
});

Kotlin

mAdView.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 التجريبي.
onAdFailedToLoad() إن طريقة onAdFailedToLoad() هي الطريقة الوحيدة التي تتضمن معلمة. تصف معلمة الخطأ من النوع LoadAdError الخطأ الذي حدث. لمزيد من المعلومات، ارجع إلى وثائق تصحيح أخطاء تحميل الإعلانات.
onAdImpression() يتم استدعاء طريقة onAdImpression() عند تسجيل مرة ظهور لإعلان.
onAdLoaded() يتم تنفيذ طريقة onAdLoaded() عند انتهاء تحميل الإعلان. إذا كنت ترغب في تأخير إضافة AdView إلى نشاطك أو مجزأك، إلى أن تتأكد من تحميل إعلان، على سبيل المثال، يمكنك إجراء ذلك هنا.
onAdOpened() يتم استدعاء طريقة onAdOpened() عندما يفتح أحد الإعلانات تراكبًا يغطي الشاشة.

يسرد الجدول التالي أحجام البانر القياسية.

الحجم بالبكسل (عرض × ارتفاع) الوصف مدى التوفّر ثابت AdSize
320 × 50 "بانر" الهواتف والأجهزة اللوحية BANNER
320×100 بانر كبير الهواتف والأجهزة اللوحية LARGE_BANNER
300 × 250 مستطيل متوسط من IAB الهواتف والأجهزة اللوحية MEDIUM_RECTANGLE
468×60 بانر IAB بالحجم الكامل الأجهزة اللوحية FULL_BANNER
728×90 ليدربورد لـ IAB الأجهزة اللوحية LEADERBOARD
العرض المُقدَّم × الارتفاع التكيُّفي إعلان البانر التكيُّفي الهواتف والأجهزة اللوحية لا ينطبق
عرض الشاشة × 32|50|90 البانر الذكي الهواتف والأجهزة اللوحية SMART_BANNER
اطّلِع على مزيد من المعلومات عن إعلانات البانر التكيُّفية، والتي تهدف إلى استبدال إعلانات البانر الذكي.

لتحديد حجم إعلان بانر مخصّص، اضبط AdSize المطلوب، كما هو موضّح أدناه:

لغة Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

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

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

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

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

إذا كان تطبيقك لا يتصرف بشكل صحيح عند تشغيل تسريع الأجهزة عالميًا، يمكنك التحكم فيه للأنشطة الفردية أيضًا. لتفعيل ميزة "تسريع الأجهزة" أو إيقافها، يمكنك استخدام السمة 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

  • نموذج تطبيق بانر بانر RecyclerView: Java

برامج فيديو تعليمية حول "إعلانات المرآب" على الأجهزة الجوّالة

قصص النجاح