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

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

يوضّح لك هذا الدليل كيفية دمج إعلانات البانر من 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)
    }
}

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

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

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

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

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

W/Ads: Not enough space to show ad. Needs 320x50 dp, but only has 288x495 dp.

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

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

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

Java

AdSize adSize = new AdSize(300, 50);

Kotlin

val adSize = AdSize(300, 50)

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

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

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

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

فيديوهات تعليمية من Mobile Ads Garage

قصص النجاح

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

يمكنك استكشاف المواضيع التالية: