تشغل إعلانات البانر مساحة ضمن تصميم التطبيق، إما في أعلى شاشة الجهاز أو أسفلها. وتظل معروضة على الشاشة أثناء تفاعل المستخدمين مع التطبيق، ويمكن إعادة تحميلها تلقائيًا بعد فترة زمنية معيّنة. إذا كنت مبتدئًا في استخدام الإعلانات على الأجهزة الجوّالة، يمكنك البدء باستخدام هذه الإعلانات. دراسة حالة:
المتطلبات الأساسية
- أكمِل البدء.
- (نظام التشغيل 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 أو مؤشر إلى iOSUIView
يتم تحويله إلى النوع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) لإعلانات 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 | قائمة الصدارة في Interactive Advertising Bureau | الأجهزة اللوحية | kLeaderboard |
العرض المقدَّم × الارتفاع التكيُّفي | إعلان البانر التكيُّفي | الهواتف والأجهزة اللوحية | لا ينطبق |
أحجام الإعلانات المخصّصة
لتحديد حجم بانر مخصّص، اضبط السمات المطلوبة باستخدام العنصر
firebase::gma::AdSize
مع مَعلمتَي العرض والارتفاع، كما هو موضّح هنا:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
مراجع إضافية
مثال في GitHub
- يمكنك الاطّلاع على رمز المصدر لتطبيق مثال على تطبيق التشغيل السريع في GitHub.