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

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

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

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

  • أكمِل البدء.
  • (نظام التشغيل 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 تشير إلى إصدار Android Activity أو مؤشر إلى جهاز 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 لإعلانات 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);

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

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

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

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

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

مراجع إضافية

مثال في GitHub

قصص النجاح