الإعلانات البينية (قديمة)

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

يوضّح هذا الدليل كيفية دمج الإعلانات البينية في أحد تطبيقات Unity.

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

إنشاء إعلان بيني

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

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

تحتوي الدالة الإنشائية لـ InterstitialAd على المعلمة التالية:

  • adUnitId - رقم تعريف الوحدة الإعلانية في AdMob التي يجب أن يتم من خلالها InterstitialAd تحميل الإعلانات.

من المهم التنبّه إلى كيفية استخدام الوحدات الإعلانية المختلفة حسب نظام التشغيل. عليك استخدام وحدة إعلانية لنظام التشغيل iOS لتقديم طلبات الإعلان على نظام التشغيل iOS ووحدة إعلانية لنظام التشغيل Android لتقديم الطلبات على نظام التشغيل Android.

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

يتضمن الرمز النموذجي المذكور أعلاه رقم تعريف وحدة إعلانية ويمكنك طلب الإعلانات باستخدامه. تم ضبطها خصّيصًا لعرض إعلانات اختبارية بدلاً من إعلانات نهائية لكل طلب، ما يجعلها آمنة للاستخدام.

ومع ذلك، بعد تسجيل تطبيق في واجهة مستخدم AdMob وإنشاء أرقام تعريف الوحدة الإعلانية لاستخدامها في تطبيقك، ستحتاج إلى ضبط جهازك كجهاز اختباري صراحةً أثناء عملية التطوير. هذا مهم للغاية. يُعدّ إجراء الاختبارات باستخدام إعلانات حقيقية (حتى لو لم يسبق لك النقر عليها) مخالفًا لسياسة AdMob ويمكن أن يؤدي إلى تعليق حسابك. اطّلع على الإعلانات الاختبارية للحصول على معلومات عن كيفية ضمان حصولك على إعلانات اختبارية دائمًا عند تطوير التطبيق.

تحميل إعلان

بعد إنشاء مثيل InterstitialAd، تكون الخطوة التالية هي تحميل إعلان. يتم إجراء ذلك باستخدام الإجراء loadAd() في الصف InterstitialAd. وتستخدِم الوسيطة AdRequest التي تحتوي على معلومات وقت التشغيل (مثل معلومات الاستهداف) حول طلب إعلان واحد.

في ما يلي مثال يوضّح كيفية تحميل إعلان:

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

عرض الإعلان

يجب عرض الإعلانات البينية أثناء فترات الإيقاف المؤقت الطبيعية في مسار التطبيق. وخير مثال على ذلك بين مستويات اللعبة أو بعد إكمال المستخدم لمهمة ما. لعرض إعلان بيني، استخدِم طريقة isLoaded() للتحقّق من اكتمال تحميله، ثم استدعِ show().

يمكن عرض الإعلان البيني من مثال الرمز السابق في نهاية اللعبة، كما هو موضّح أدناه.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

أحداث الإعلانات

لتخصيص سلوك إعلانك بصورةٍ أكبر، يمكنك جذب عدد من الأحداث خلال دورة حياة الإعلان: التحميل والفتح والإغلاق وما إلى ذلك. يرصد هذه الأحداث من خلال تسجيل مفوّض لـ EventHandler المناسب، كما هو موضح أدناه.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

يحتوي الحدث OnAdFailedToLoad على وسيطات حدث خاصة. يمرّ مثيل HandleAdFailedToLoadEventArgs مع Message يصف الخطأ:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
حدث إعلانالوصف
OnAdLoaded يتم تنفيذ الحدث OnAdLoaded عند انتهاء تحميل الإعلان.
OnAdFailedToLoad يتم استدعاء الحدث OnAdFailedToLoad عند تعذُّر تحميل إعلان. وتصف المعلَمة Message نوع العطل الذي حدث.
OnAdOpening يتم استدعاء هذه الطريقة عند عرض الإعلان، ويغطي شاشة الجهاز.
OnAdClosed يتم تفعيل هذه الطريقة عند إغلاق الإعلان البيني لأنّ المستخدم ينقر على رمز الإغلاق أو يستخدم زر الرجوع. إذا أوقف تطبيقك مؤقتًا إخراج الصوت أو حلقة الألعاب، ننصحك باستئناف هذا الإجراء.

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

عند الانتهاء من استخدام InterstitialAd، احرص على استدعاء الطريقة Destroy() قبل إضافة المرجع إليها:

interstitial.Destroy();

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

بعض أفضل الممارسات

فكِّر في ما إذا كانت الإعلانات البينية هي نوع الإعلان المناسب لتطبيقك.
تعمل الإعلانات البينية على أفضل نحو في التطبيقات التي تتضمّن نقاط انتقال طبيعية. تعمل خاتمة المهمة داخل التطبيق، مثل مشاركة صورة أو إكمال مستوى من لعبة، على إنشاء هذه النقطة. وبما أنّ المستخدم يتوقع استراحة في الإجراء، فمن السهل عرض إعلان بيني بدون التأثير سلبًا في تجربته. احرص على التفكير في المراحل التي ستعرض فيها إعلانات بينية ضمن سير عمل تطبيقك وكيفية استجابة المستخدم المحتمَل لها.
احرص على إيقاف الإجراء مؤقتًا عند عرض إعلان بيني.
هناك عدد من أنواع الإعلانات البينية المختلفة: الإعلانات النصية والمصوّرة وإعلانات الفيديو وغيرها. من المهم التأكد من أنه عندما يعرض تطبيقك إعلانًا بينيًا، يتم أيضًا تعليق استخدامه لبعض الموارد للسماح للإعلان بالاستفادة منها. على سبيل المثال، عند إجراء المكالمة لعرض إعلان بيني، يُرجى التأكُّد من إجراء إيقاف مؤقت لأي إخراج صوتي ينتجه تطبيقك. ويمكنك استئناف تشغيل الأصوات في معالِج أحداث "onAdClosed()"، والذي سيتم استدعاؤه عند انتهاء المستخدم من التفاعل مع الإعلان. إضافةً إلى ذلك، يمكنك الإيقاف المؤقت لأي مهام حوسبة مكثفة (مثل حلقة الألعاب) أثناء عرض الإعلان. سيضمن ذلك عدم تعرض المستخدم لرسومات بطيئة أو غير مستجيبة أو فيديو متقطّع.
يجب توفير مدة تحميل كافية.
وتمامًا الحرص على عرض الإعلانات البينية في الأوقات المناسبة، من المهم أيضًا التأكّد من عدم اضطرار المستخدم إلى انتظار التحميل. يمكن أن يضمن تحميل الإعلان مسبقًا من خلال طلب الرقم loadAd() قبل أن تريد طلب الرقم show() أن يتضمّن تطبيقك إعلانًا بينيًا تم تحميله بالكامل، وذلك عندما يحين وقت عرض الإعلان.
لا تزعج المستخدم بالإعلانات.
على الرغم من أنّ زيادة وتيرة الإعلانات البينية في تطبيقك قد تبدو طريقة رائعة لزيادة الأرباح، إلا أنّها قد تؤدي أيضًا إلى انخفاض مستوى تجربة المستخدم وانخفاض نسب النقر إلى الظهور. تأكد من عدم انقطاع اتصال المستخدمين بشكل متكرر بحيث لن يتمكنوا بعد ذلك من الاستمتاع باستخدام تطبيقك.

مراجع إضافية

العيّنات

  • HelloWorld example المعنية بتطبيق جميع أشكال الإعلانات إلى أدنى حد

قصص النجاح