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