تشغل "إعلانات البانر" مساحة ضمن تصميم التطبيق، إما في أعلى شاشة الجهاز أو أسفلها. وتظل معروضة على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن إعادة تحميلها تلقائيًا بعد فترة زمنية محدّدة. إذا كنت حديث العهد بالإعلانات على الأجهزة الجوّالة، ستكون هذه الإعلانات خيارًا رائعًا للبدء. دراسة حالة
المتطلبات الأساسية
- أكمِل الخطوات في البدء.
- (نظام التشغيل Android فقط) الإلمام بالعمل مع مراجع JNI
jobject
(راجِع نصائح حول JNI في Android).
اختبار الإعلانات دائمًا باستخدام الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات اختبارية بدلاً من الإعلانات المباشرة في مرحلة الإنتاج. وقد يؤدي عدم إجراء ذلك إلى تعليق حسابك.
أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام معرّف وحدة الإعلان الاختبارية المخصّص لإعلانات البانر، والذي يختلف حسب نظام تشغيل الجهاز:
- نظام تشغيل Android:
ca-app-pub-3940256099942544/6300978111
- نظام تشغيل iOS:
ca-app-pub-3940256099942544/2934735716
تم إعداد معرّفات الوحدات الإعلانية هذه خصيصًا لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدامها في تطبيقاتك الخاصة أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكّد من استبداله برقم تعريف وحدتك الإعلانية قبل نشر تطبيقك.
لمزيد من المعلومات عن طريقة عمل الإعلانات الاختبارية في حزمة تطوير البرامج (SDK) لإعلانات الأجهزة الجوّالة، يُرجى الاطّلاع على مقالة الإعلانات الاختبارية.
التنفيذ
إعداد AdView
يتم عرض "إعلانات البانر" في عناصر AdView
، لذا فإنّ الخطوة الأولى نحو دمج "إعلانات البانر" هي إنشاء عنصر AdView
وتحديد موضعه.
أضِف العنوان التالي إلى رمز C++ لتطبيقك:
#include "firebase/gma/ad_view.h"
الإعلان عن كائن
AdView
وإنشاؤه:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
أنشِئ
AdSize
واضبط طريقة عرض الإعلان باستخدام العرض الرئيسيAdParent
. تمثّل طريقة العرض الرئيسية مرجعjobject
JNI إلى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
، يُرجى الاطّلاع على استخدام Futures لتتبُّع حالة اكتمال طلبات الطرق.
ضبط موضع الإعلان
يمكنك ضبط موضع 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);
أحجام البانر
يعرض الجدول أدناه أحجام البانرات العادية.
الحجم بالنقاط (العرض × الارتفاع) | الوصف | مدى التوفّر | الثابت firebase::gma::AdSize |
---|---|---|---|
320×50 | بانر | الهواتف والأجهزة اللوحية | kBanner |
100x320 | بانر كبير | الهواتف والأجهزة اللوحية | kLargeBanner |
300×250 | مستطيل متوسط من IAB | الهواتف والأجهزة اللوحية | kMediumRectangle |
468×60 | بانر كامل الحجم وفقًا لمكتب IAB | الأجهزة اللوحية | kFullBanner |
728×90 | لوحة الصدارة IAB | الأجهزة اللوحية | kLeaderboard |
العرض المقدَّم x الارتفاع التكيّفي | إعلان بانر تكيُّفي | الهواتف والأجهزة اللوحية | لا ينطبق |
أحجام الإعلانات المخصّصة
لتحديد حجم بانر مخصّص، اضبط الأبعاد المطلوبة باستخدام الدالة الإنشائية
firebase::gma::AdSize
مع مَعلمتَي العرض والارتفاع، كما هو موضّح هنا:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
مراجع إضافية
مثال في GitHub
- يمكنك الاطّلاع على الرمز المصدري لتطبيق التشغيل السريع النموذجي في GitHub.