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

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

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

  • أكمِل البدء.
  • (نظام التشغيل Android فقط) الدراية بالعمل باستخدام مراجع JNI jobject (راجِع نصائح Android JNI)

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

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

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

  • نظام تشغيل Android:‏ ca-app-pub-3940256099942544/6300978111
  • نظام تشغيل iOS:‏ ca-app-pub-3940256099942544/2934735716

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

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

التنفيذ

إعداد AdView

يتم عرض إعلانات البانر في عناصر AdView، لذا فإنّ الخطوة الأولى لدمج إعلانات البانر هي إنشاء AdView وتحديد موضعه.

  1. أضِف الرأس التالي إلى رمز C++ لتطبيقك:

     #include "firebase/gma/ad_view.h"
    
  2. تعريف عنصر AdView وإنشاء مثيل له:

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
    
  3. يمكنك إنشاء AdSize وإعداد عرض الإعلان باستخدام طريقة العرض الرئيسية AdParent. طريقة العرض الرئيسية هي إشارة JNI jobject إلى Activity Android أو مؤشر إلى iOS UIView يتم تحويله إلى النوع AdParent:

     // my_ad_parent is a jobject reference
     // to an Android Activity or a pointer to an iOS UIView.
     firebase::gma::AdParent ad_parent = static_cast(my_ad_parent);
     firebase::Future result =
       ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner);
    
  4. كبديل للاحتفاظ بالمستقبل كمتغيّر، يمكنك التحقّق بشكل دوري من حالة عملية الإعداد من خلال استدعاء InitializeLastResult() في الكائن AdView. قد يكون هذا مفيدًا لتتبع عملية التهيئة في حلقة الألعاب العالمية.

      // Monitor the status of the future in your game loop:
      firebase::Future<void> result = ad_view->InitializeLastResult();
      if (result.status() == firebase::kFutureStatusComplete) {
        // Initialization completed.
        if(future.error() == firebase::gma::kAdErrorCodeNone) {
          // Initialization successful.
        } else {
          // An error has occurred.
        }
      } else {
        // Initialization on-going.
      }
    
  5. لمزيد من المعلومات عن العمل مع firebase::Future، يمكنك الاطّلاع على استخدام العقود الآجلة لمراقبة حالة اكتمال استدعاءات الطرق.

تحديد موضع الإعلان

يمكنك ضبط موضع "AdView" في أي وقت بعد إعداده:

firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);

تحميل إعلان

يمكنك تحميل إعلان بعد إعداد AdView:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);

تمثِّل كائنات AdRequest طلب إعلان واحدًا وتحتوي على خصائص للمعلومات مثل الاستهداف.

عرض الإعلان

وأخيرًا، يمكنك عرض الإعلان على الشاشة من خلال الاتصال بالرقم Show(). ويمكن استدعاء هذه الطريقة في أي وقت بعد إعداد الإعلان:

firebase::Future<void> result = ad_view->Show();

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

توفِّر حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة فئة C++ فئة AdListener يمكنك زيادتها وتمريرها إلى AdView::SetListener() لكي يتم إعلامك بالتغييرات التي تطرأ على حالة مشاهدة الإعلان.

يُعد تمديد الطرق في AdListener اختياريًا، لذلك ما عليك سوى تنفيذ الطرق التي تريدها. في ما يلي مثال على تنفيذ فئة توسّع جميع فئة طرق AdListener:

class ExampleAdListener
    : public firebase::gma::AdListener {
 public:
  ExampleAdListener() {}
  void OnAdClicked() override {
    // This method is invoked when the user clicks the ad.
  }

  void OnAdClosed() override {
   // This method is invoked when the user closes the ad.
  }

  void OnAdImpression() override {
    // This method is invoked when an impression is recorded for an ad.
  }

  void OnAdOpened() override {
    // This method is invoked when an ad opens an overlay that covers the screen.
  }
};

ExampleAdListener* ad_listener = new ExampleAdListener();
ad_view->SetAdListener(ad_listener);

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

الحجم بالنقاط (عرض × ارتفاع) الوصف مدى التوفّر firebase::gma::AdSize ثابت
320 × 50 بانر الهواتف والأجهزة اللوحية kBanner
320×100 بانر كبير الهواتف والأجهزة اللوحية kLargeBanner
300 × 250 مستطيل متوسط IAB الهواتف والأجهزة اللوحية kMediumRectangle
468×60 إعلان بانر بالحجم الكامل لمكتب الإعلانات التفاعلية (IAB) الأجهزة اللوحية kFullBanner
728×90 قائمة الإعلانات المتصدِّرة من مكتب الإعلانات التفاعلية (IAB) الأجهزة اللوحية kLeaderboard
العرض المقدم × الارتفاع التكيُّفي بانر تكيُّفي الهواتف والأجهزة اللوحية لا ينطبق

أحجام الإعلانات المخصصة

لتحديد حجم إعلان بانر مخصّص، اضبط الأبعاد المطلوبة باستخدام الدالة الإنشائية firebase::gma::AdSize مع مَعلمتَي العرض والارتفاع، كما هو موضّح هنا:

firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);

مصادر إضافية

مثال في GitHub

قصص النجاح