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

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

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

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

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

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

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

  • نظام تشغيل 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 أو مؤشرًا إلى نوع AdParent في نظام التشغيل iOS:UIView

     // 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();

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

توفر حزمة C++ SDK لإعلانات 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);

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

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

قصص النجاح