الإعلانات البينية هي إعلانات بملء الشاشة تغطي واجهة أحد التطبيقات حتى تم إغلاقه من قبل المستخدم. ويتم عرضها عادةً عند نقاط انتقال عادية في تدفق التطبيق، مثل بين الأنشطة أو أثناء التوقف المؤقت بين المستويات في لعبة ما. عندما يعرض التطبيق إعلانًا بينيًا، يحصل المستخدم على حرية الاختيار. النقر على الإعلان والانتقال إلى وجهته أو إغلاقه والعودة بالتطبيق. دراسة الحالة:
يوضح لك هذا الدليل كيفية دمج الإعلانات البينية في تطبيقات Android وiOS. باستخدام حزمة C++ SDK لإعلانات Google على الأجهزة الجوّالة.
المتطلبات الأساسية
- أكمِل البدء.
- (نظام التشغيل Android فقط) معرفة كيفية استخدام مراجع JNI
jobject
(اطّلِع على نصائح حول JNI في Android).
الاختبار دائمًا باستخدام الإعلانات الاختبارية
عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات تجريبية بدلاً من إعلانات بث مباشر وقد يؤدي عدم الالتزام بذلك إلى تعليق حسابك.
أسهل طريقة لتحميل الإعلانات الاختبارية هي استخدام الرقم التعريفي المخصص للوحدة الإعلانية الاختبارية الإعلانات البينية التي تختلف حسب النظام الأساسي للجهاز:
- نظام تشغيل Android:
ca-app-pub-3940256099942544/1033173712
- نظام تشغيل iOS:
ca-app-pub-3940256099942544/4411468910
تم إعدادها بشكل خاص من أجل عرض إعلانات اختبارية لكل طلب يمكنك استخدامه في تطبيقاتك الخاصة أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكد من استبداله بمعرّف وحدتك الإعلانية قبل نشر التطبيق.
لمزيد من المعلومات عن آلية عمل الإعلانات الاختبارية لحزمة تطوير البرامج (SDK) لعرض الإعلانات على الأجهزة الجوّالة، يُرجى الاطّلاع على اختبار الإعلانات:
التنفيذ
الخطوات الأساسية لدمج الإعلانات البينية هي:
- حمِّل إعلانًا.
- التسجيل لتلقّي طلبات معاودة الاتصال
- يمكنك عرض الإعلان والتعامل مع أحداث مراحل نشاطه.
إعداد InterstitialAd
تظهر الإعلانات البينية في InterstitialAd
من العناصر، لذا فإن الخطوة الأولى
نحو دمج الإعلانات البينية في تطبيقك، هو إنشاء وتهيئة
عنصر InterstitialAd
.
أضِف الرأس التالي إلى رمز C++ لتطبيقك:
#include "firebase/gma/interstial_ad.h"
تعريف عنصر
InterstitialAd
وإنشاء مثيل له:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
إعداد المثيل
InterstitialAd
باستخدام طريقة العرض الرئيسية، على جهاز النوعAdParent
. طريقة العرض الرئيسية هي مرجع JNIjobject
يشير إلى أحد أجهزة Android.Activity
أو مؤشر إلىUIView
iOS.// 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<void> result = interstitial_ad->Initialize(ad_parent);
وكبديل للاحتفاظ بالمستقبل كمتغير، يمكنك بشكل دوري التحقق من حالة عملية الإعداد من خلال استدعاء
InitializeLastResult()
في الكائنInterstitialAd
. قد يكون هذا التلميح مفيدًا لتتبع عملية الإعداد في حلقة الألعاب العالمية.// Monitor the status of the future in your game loop: firebase::Future<void> result = interstitial_ad->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
"، يُرجى الاطّلاع على
استخدام العقود الآجلة لمراقبة حالة اكتمال الطريقة
المكالمات.
تحميل إعلان
يتم تحميل الإعلان باستخدام طريقة LoadAd()
على
كائن InterstitialAd
. تتطلّب طريقة التحميل أن تكون قد تمّت إعداد InterstitialAd
، وأن يكون لديك رقم تعريف الوحدة الإعلانية وAdRequest
. يتم إرجاع firebase::Future
الذي يمكنك استخدامه لمراقبة الحالة.
ونتيجة عملية التحميل.
يوضح الرمز التالي كيفية تحميل إعلان بعد بدء InterstitialAd
تم إعدادها بنجاح:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
التسجيل لتلقّي طلبات معاودة الاتصال
يجب تمديد الصف الدراسي FullScreenContentListener
للحصول على
إشعارات بشأن عرض الإعلانات البينية وأحداث مراحل النشاط المساحة المخصّصة لك
يمكن تسجيل فئة فرعية واحدة (FullScreenContentListener
) من خلال
InterstitialAd::SetFullScreenContentListener()
، وستحصل على
عمليات الاستدعاء عند عرض الإعلان بنجاح أو بشكل غير ناجح، وكذلك عند
تم رفضه.
يوضح الرمز التالي كيفية توسيع الفئة وتعيينها إلى الإعلان:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
هو عنصر يُستخدم لمرة واحدة. وهذا يعني أنه بمجرد ظهور
تم عرض إعلان ما، ولا يمكن عرضه مرة أخرى. ومن أفضل الممارسات تحميل ملف
إعلانك البيني في طريقة OnAdDismissedFullScreenContent()
من
FullScreenContentListener
حتى يبدأ الإعلان البيني التالي في التحميل
فور إغلاق الإشعار السابق.
عرض الإعلان
يجب عرض الإعلانات البينية أثناء فترات التوقف المؤقت الطبيعية أثناء تدفق التطبيق.
يعد الربط بين مستويات اللعبة مثالاً جيدًا، أو بعد إكمال المستخدم لمهمة ما.
على الرغم من أنّه يمكن استخدام FullScreenContentListener
لتحديد الحالات التي يتم فيها
عرض محتوى الإعلان بملء الشاشة، سيشير المستقبل الذي يعرضه Show()
أيضًا
إلى الحالات التي تم فيها عرض الإعلان بنجاح.
firebase::Future<void> result = interstitial_ad->Show();
أفضل الممارسات
- فكِّر في ما إذا كانت الإعلانات البينية هي نوع الإعلانات المناسب لتطبيقك.
- تعمل الإعلانات البينية بشكل أفضل في التطبيقات التي تتضمّن نقاط انتقال طبيعية. تشير رسالة الأشكال البيانية خاتمة لمهمة داخل أحد التطبيقات، مثل مشاركة صورة أو إكمال لعبة المستوى، ينشئ مثل هذه النقطة. ولأن المستخدم يتوقع استراحة في إجراء، سيكون من السهل تقديم إعلان بيني دون التأثير سلبًا على المستخدم. تأكّد من مراعاة النقاط التي ستتطلّبها من سير عمل تطبيقك عرض الإعلانات البينية وكيفية استجابة المستخدم المحتمَلة.
- احرص على إيقاف الإجراء مؤقتًا عند عرض إعلان بيني.
- هناك عدد من الأنواع المختلفة للإعلانات البينية: النصية والمصوّرة
والفيديو وغير ذلك. من المهم التأكد من أنه عند عرض تطبيقك
إعلان بيني، فإنه يعلق أيضًا استخدامه لبعض الموارد للسماح للإعلان
الاستفادة منها. على سبيل المثال، عند إجراء مكالمة لعرض
إعلان بيني، احرص على إيقاف أي إخراج صوتي ينتجه تطبيقك مؤقتًا.
يمكنك استئناف تشغيل الأصوات بطريقة
OnAdDismissedFullScreenContent
تم تثبيت "FullScreenContentListener
" الذي سيتم استدعاؤه عند وصول المستخدم. من التفاعل مع الإعلان. بالإضافة إلى ذلك، ننصحك بإيقافها مؤقتًا أي مهام حوسبة مكثفة (مثل حلقة ألعاب) أثناء عرض الإعلان المعروضة. سيضمن ذلك عدم ظهور رسومات بطيئة أو غير متجاوبة أو فيديو متقطّع للمستخدم. - يجب السماح بمرور الوقت الكافي للتحميل.
- كما هو من المهم التأكد من عرض الإعلانات البينية في الوقت المناسب، من المهم أيضًا التأكد من أن المستخدم لن يضطر إلى الانتظار لتحميلها. يمكن أن يؤدي تحميل الإعلان مسبقًا قبل أن تنوي عرضه إلى ضمان أنّ تطبيقك يحتوي على إعلان بيني محمَّل بالكامل وجاهز للعرض عند حلول وقته.
- لا تملأ المستخدم بالإعلانات.
- على الرغم من أن زيادة تكرار الإعلانات البينية في تطبيقك قد تبدو طريقة رائعة لزيادة الإيرادات، فقد يؤدي أيضًا إلى انخفاض مستوى تجربة المستخدم ونسب نقر إلى ظهور منخفضة تأكد من أن المستخدمين ليسوا كثيرًا الأشخاص الذين لم يعد بإمكانهم الاستمتاع باستخدام تطبيقك.
- لا تستخدِم المستقبل المرتبط باكتمال التحميل لعرض الإعلان البيني.
- قد يترك ذلك انطباعًا سيئًا لدى المستخدم. يمكنك بدلاً من ذلك تحميل الإعلان مسبقًا قبل التي تحتاج إليها لعرضها.
مراجع إضافية
مثال في GitHub
- يمكنك الاطّلاع على رمز المصدر لمثال تطبيق البدء السريع على GitHub.
فيديوهات تعليمية حول "منصة Google للتسويق"
قصص النجاح
الخطوات التالية
- أنشئ وحدتك الإعلانية البينية في هذه الصفحة إذا لم يسبق لك ذلك واجهة مستخدم AdMob:
- تعرَّف على استهداف الإعلانات إرشادات الإعلانات البينية.