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

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

يوضِّح لك هذا الدليل كيفية دمج إعلانات البانر من 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 المقصود للإعلان. يمكن للتطبيق استخدامه لاستئناف الأنشطة المعلّقة أو تنفيذ أي عمل آخر لازم ليكون جاهزًا للتفاعل. راجِع مثال AdMob AdListener لتنفيذ طرق استماع الإعلانات في تطبيق 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.

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

الحجم بوحدة بكسل مستقلة الكثافة (العرض × الارتفاع) الوصف مدى توفّر الخدمة ثابت حجم الإعلان
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)

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

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

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

قصص النجاح

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

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