شارك بتعليقاتك، وساعد في تشكيل خارطة طريق SDK لإعلانات Google على الجوال. عليك المشاركة في الاستطلاع السنوي لحزمة تطوير البرامج (SDK) لإعلانات Google على الأجهزة الجوّالة لعام 2023 قبل إغلاقه في 5 أيار (مايو) 2023.

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

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

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

يوضّح لك هذا الدليل كيفية دمج الإعلانات البينية في تطبيقات Android وiOS باستخدام حزمة SDK لإعلانات +Google للجوّال ++C.

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

  • أكمِل البدء.
  • (نظام التشغيل 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 أو مؤشر إلى نظام التشغيل iOS UIView.

    // 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

برامج فيديو تعليمية حول مرآب إعلانات الجوّال

قصص النجاح

الخطوات التالية