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

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

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

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

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

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

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

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

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

لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية في حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، اطّلِع على مقالة الإعلانات الاختبارية.

التنفيذ

إعداد 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<firebase::gma::AdParent>(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
100x320 بانر كبير الهواتف والأجهزة اللوحية 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

قصص النجاح