تشغل "إعلانات البانر" مساحة ضمن تصميم التطبيق، إما في أعلى شاشة الجهاز أو أسفلها. تبقى هذه الإعلانات معروضة على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن أن يتم تحديثها تلقائيًا بعد فترة زمنية معيّنة. إذا كنت تستخدم الإعلانات على الأجهزة الجوّالة لأول مرة، فهي خيار رائع للبدء. دراسة حالة.
المتطلبات الأساسية
- إكمال الخطوات الواردة في مقالة البدء
- (نظام التشغيل Android فقط) الإلمام بالعمل مع مراجع JNI
jobject(راجِع مقالة نصائح حول JNI في Android)
الاختبار دائمًا باستخدام الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرِص على استخدام الإعلانات الاختبارية بدلاً من الإعلانات النهائية المعروضة. وإلا قد يتم تعليق حسابك.
أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام رقم تعريف الوحدة الإعلانية الاختبارية المخصّصة لإعلانات البانر، والذي يختلف حسب منصة الجهاز:
- نظام تشغيل Android:
ca-app-pub-3940256099942544/6300978111 - نظام تشغيل iOS:
ca-app-pub-3940256099942544/2934735716
تمت تهيئة أرقام تعريف الوحدات الإعلانية هذه خصيصًا لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامها بحرية في تطبيقاتك أثناء الترميز والاختبار وتحديد الأخطاء وحلّها. ما عليك سوى استبدالها برقم تعريف الوحدة الإعلانية الخاص بك قبل نشر تطبيقك.
لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية في حزمة "SDK لإعلانات Google على الأجهزة الجوّالة"، راجِع مقالة الإعلانات الاختبارية.
التنفيذ
إعداد AdView
تظهر "إعلانات البانر" في عناصر AdView، لذا فإنّ الخطوة الأولى نحو دمج "إعلانات البانر" هي إنشاء AdView وتحديد موضعه.
أضِف العنوان التالي إلى رمز C++ في تطبيقك:
#include "firebase/gma/ad_view.h"
أنشِئ كائن
AdViewوأنشئه:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
أنشِئ
AdSizeوأعِد تهيئة طريقة عرض الإعلان باستخدام طريقة العرض الرئيسيةAdParent. طريقة العرض الرئيسية هي مرجع JNIjobjectإلى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<firebase::gma::AdParent>(my_ad_parent); firebase::Future
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); كبديل للاحتفاظ بالنتيجة المستقبلية كمتغيّر، يمكنك التحقّق بشكل دوري من حالة عملية التهيئة من خلال استدعاء
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. }لمزيد من المعلومات عن استخدام
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);