آگهی‌های بینابینی


آگهی‌های بینابینی آگهی‌های تمام‌صفحه‌ای هستند که واسط برنامه را تا زمانی که کاربر آن را ببندد می‌پوشانند. این آگهی‌ها معمولاً در نقاط انتقال طبیعی در جریان برنامه نمایش داده می‌شوند، مثلاً بین فعالیت‌ها یا درطول مکث بین مراحل بازی. وقتی برنامه‌ای آگهی بینابینی نشان می‌دهد، کاربر می‌تواند روی آگهی تک‌ضرب بزند و به مقصد آن برود یا آن را ببندد و به برنامه برگردد. مطالعه موردی.

این راهنما به شما نشان می‌دهد که چگونه آگهی‌های بینابینی را بااستفاده از Google Mobile Ads C++ SDK در برنامه‌های Android و iOS ادغام کنید.

پیش‌نیازها

همیشه با آگهی‌های آزمایشی آزمایش کنید

هنگام ساختن و آزمایش کردن برنامه‌هایتان، حتماً از آگهی‌های آزمایشی استفاده کنید نه آگهی‌های زنده و تولیدی. انجام ندادن این کار می‌تواند منجر به تعلیق حسابتان شود.

آسان‌ترین راه برای بار کردن آگهی‌های آزمایشی استفاده از شناسه واحد آگهی آزمایشی اختصاصی ما برای آگهی‌های بینابینی است که بسته به پلاتفرم دستگاه متفاوت است:

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

این شناسه‌ها به‌طور ویژه پیکربندی شده‌اند تا برای هر درخواست، آگهی آزمایشی برگردانند و می‌توانید آزادانه از آن‌ها در برنامه‌های خودتان هنگام کدنویسی، آزمایش، و اشکال‌زدایی استفاده کنید. فقط مطمئن شوید که قبل‌از انتشار برنامه‌تان، آن را با شناسه واحد آگهی خودتان جایگزین کنید.

برای اطلاعات بیشتر درباره نحوه عملکرد آگهی‌های آزمایشی کیت توسعه نرم‌افزار تبلیغات تلفن همراه، به آگهی‌های آزمایشی مراجعه کنید.

پیاده‌سازی

مراحل اصلی برای ادغام آگهی‌های بینابینی عبارتند از:

  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، به استفاده از Futures برای نظارت بر وضعیت تکمیل فراخوانی‌های روش مراجعه کنید.

بار کردن آگهی

بار کردن آگهی بااستفاده از روش 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

آموزش‌های ویدیویی Mobile Ads Garage

داستان های موفقیت

مراحل بعدی