الإعلانات البينية

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

الإعلانات البينية هي إعلانات بملء الشاشة تغطي واجهة أحد التطبيقات إلى أن يغلقها المستخدم. وعادةً ما يتم عرضها في نقاط انتقال مناسبة خلال مسار عرض التطبيق، على سبيل المثال بين الأنشطة أو في الوقت الفاصل بين مستويَين في لعبة. وعندما يعرض التطبيق إعلانًا بينيًا، يمكن للمستخدم إمّا النقر على الإعلان والمتابعة إلى وجهته أو إغلاقه ثم العودة إلى التطبيق.دراسة حالة.

يوضّح لك هذا الدليل كيفية دمج الإعلانات البينية في تطبيقات Android وiOS باستخدام حزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة أو إصدار أحدث.

المتطلبات الأساسية

  • أكمِل البدء.
  • (نظام التشغيل Android فقط) مألوفة لديّ في استخدام مراجع JNI jobject (يمكنك الاطّلاع على نصائح Android JNI).

الاختبار دائمًا باستخدام الإعلانات التجريبية

عند إنشاء تطبيقاتك واختبارها، احرص على استخدام إعلانات تجريبية بدلاً من إعلانات الإنتاج المباشر. ويمكن أن يؤدي عدم الالتزام بذلك إلى تعليق حسابك.

تتمثل أسهل طريقة لتحميل الإعلانات الاختبارية في استخدام رقم تعريف الوحدة الإعلانية الاختبارية المخصّص للإعلانات البينية، والذي يختلف حسب النظام الأساسي للجهاز:

  • نظام تشغيل Android:‏ ca-app-pub-3940256099942544/1033173712
  • نظام تشغيل iOS:‏ ca-app-pub-3940256099942544/4411468910

وقد تم ضبطها بشكلٍ خاص لعرض إعلانات اختبارية لكل طلب، ويمكنك استخدام هذه التطبيقات في تطبيقاتك أثناء الترميز والاختبار وتصحيح الأخطاء. ما عليك سوى التأكّد من استبداله برقم تعريف الوحدة الإعلانية قبل نشر تطبيقك.

للاطّلاع على مزيد من المعلومات حول آلية عمل الإعلانات الاختبارية لحزمة تطوير البرامج (SDK) للإعلانات على الأجهزة الجوّالة، راجِع الإعلانات الاختبارية.

التنفيذ

الخطوات الأساسية لدمج الإعلانات البينية هي:

  1. حمِّل إعلانًا.
  2. التسجيل من أجل معاودة الاتصال.
  3. يمكنك عرض الإعلان والتعامل مع أحداث مراحل نشاطه.

إعداد InterstitialAd

يتم عرض الإعلانات البينية في كائن InterstitialAd، لذا فإن الخطوة الأولى لدمج الإعلانات البينية في تطبيقك هي إنشاء عنصر InterstitialAd وإعداده.

  1. أضِف الرأس التالي إلى رمز C++ الخاص بتطبيقك:

     #include "firebase/gma/interstial_ad.h"
    

  2. تعريف كائن InterstitialAd وإنشائه في الحالات التالية:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();
    

  3. عليك إعداد المثيل InterstitialAd باستخدام طريقة العرض الرئيسية في الإرسال إلى النوع AdParent. الملف الشخصي الرئيسي هو إشارة إلى JNI jobject تشير إلى إصدار 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);
    
  4. بدلاً من الاحتفاظ بالمتغيّر في المستقبل، يمكنك التحقّق بشكل دوري من حالة عملية الإعداد من خلال استدعاء 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

برامج فيديو تعليمية حول "إعلانات المرآب" على الأجهزة الجوّالة

قصص النجاح

الخطوات اللاحقة