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

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

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

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

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

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

  • نظام تشغيل 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. إنّ العرض الرئيسي هو عبارة عن إشارة إلى "مبادرة أخبار Google" بتنسيق jobject إلى Activity على Android أو مؤشر إلى نوع بث UIView لنظام التشغيل iOS إلى النوع 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 لإعلانات C++ من Google على الأجهزة الجوّالة فئة 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);

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

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

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

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

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

مراجع إضافية

مثال في GitHub

قصص النجاح