تبلیغات بینابینی

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

این راهنما نحوه ادغام تبلیغات بینابینی را در برنامه Unity توضیح می دهد.

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

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

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

اندروید

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

SDK تبلیغات موبایل را راه اندازی کنید

قبل از بارگیری تبلیغات، از برنامه خود بخواهید با فراخوانی MobileAds.Initialize() SDK تبلیغات موبایل را مقداردهی اولیه کند. این کار باید فقط یک بار انجام شود، ایده آل در هنگام راه اندازی برنامه.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

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

پیاده سازی

مراحل اصلی برای یکپارچه سازی تبلیغات بینابینی عبارتند از:

  1. آگهی بینابینی را بارگیری کنید
  2. تبلیغ بینابینی را نشان دهید
  3. به رویدادهای تبلیغاتی بینابینی گوش دهید
  4. آگهی بینابینی را پاک کنید
  5. آگهی بینابینی بعدی را از قبل بارگیری کنید

آگهی بینابینی را بارگیری کنید

بارگذاری یک تبلیغ بینابینی با استفاده از روش استاتیک Load() در کلاس InterstitialAd انجام می شود. روش بارگذاری به شناسه واحد تبلیغات، یک شی AdRequest و یک کنترل کننده تکمیل نیاز دارد که در صورت موفقیت یا عدم موفقیت بارگیری آگهی فراخوانی می شود. شی InterstitialAd بارگذاری شده به عنوان یک پارامتر در کنترل کننده تکمیل ارائه می شود. مثال زیر نحوه بارگیری InterstitialAd را نشان می دهد.


  // These ad units are configured to always serve test ads.
  #if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
  private string _adUnitId = "unused";
    #endif

  private InterstitialAd _interstitialAd;

  /// <summary>
  /// Loads the interstitial ad.
  /// </summary>
  public void LoadInterstitialAd()
  {
      // Clean up the old ad before loading a new one.
      if (_interstitialAd != null)
      {
            _interstitialAd.Destroy();
            _interstitialAd = null;
      }

      Debug.Log("Loading the interstitial ad.");

      // create our request used to load the ad.
      var adRequest = new AdRequest();

      // send the request to load the ad.
      InterstitialAd.Load(_adUnitId, adRequest,
          (InterstitialAd ad, LoadAdError error) =>
          {
              // if error is not null, the load request failed.
              if (error != null || ad == null)
              {
                  Debug.LogError("interstitial ad failed to load an ad " +
                                 "with error : " + error);
                  return;
              }

              Debug.Log("Interstitial ad loaded with response : "
                        + ad.GetResponseInfo());

              _interstitialAd = ad;
          });
  }

تبلیغ بینابینی را نشان دهید

برای نمایش یک تبلیغ بینابینی بارگذاری شده، متد Show() را در نمونه InterstitialAd فراخوانی کنید. تبلیغات ممکن است یک بار در هر بار نمایش داده شود. از متد CanShowAd() برای تأیید اینکه آگهی آماده نمایش است استفاده کنید.

/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
    if (_interstitialAd != null && _interstitialAd.CanShowAd())
    {
        Debug.Log("Showing interstitial ad.");
        _interstitialAd.Show();
    }
    else
    {
        Debug.LogError("Interstitial ad is not ready yet.");
    }
}

به رویدادهای تبلیغاتی بینابینی گوش دهید

برای سفارشی‌سازی بیشتر رفتار تبلیغ خود، می‌توانید به تعدادی از رویدادها در چرخه عمر تبلیغ متصل شوید. با ثبت نام نماینده مطابق شکل زیر به این رویدادها گوش دهید.

private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
    // Raised when the ad is estimated to have earned money.
    interstitialAd.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    interstitialAd.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Interstitial ad recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    interstitialAd.OnAdClicked += () =>
    {
        Debug.Log("Interstitial ad was clicked.");
    };
    // Raised when an ad opened full screen content.
    interstitialAd.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Interstitial ad full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Interstitial ad full screen content closed.");
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);
    };
}

آگهی بینابینی را پاک کنید

وقتی کار با InterstitialAd تمام شد، مطمئن شوید که متد Destroy() را قبل از رها کردن مرجع خود به آن فراخوانی کنید:

_interstitialAd.Destroy();

این به افزونه اطلاع می دهد که شی دیگر استفاده نمی شود و حافظه ای که اشغال می کند قابل بازیابی است. عدم فراخوانی این روش منجر به نشت حافظه می شود.

آگهی بینابینی بعدی را از قبل بارگیری کنید

تبلیغات بینابینی یک شی یک بار مصرف هستند. این بدان معناست که وقتی یک تبلیغ بینابینی نشان داده شد، شیء نمی تواند دوباره استفاده شود. برای درخواست تبلیغ بینابینی دیگری، یک شی InterstitialAd جدید ایجاد کنید.

برای تهیه یک تبلیغ بینابینی برای فرصت نمایش بعدی، پس از بالا آمدن رویداد تبلیغاتی OnAdFullScreenContentClosed یا OnAdFullScreenContentFailed آگهی بینابینی را از قبل بارگیری کنید.

private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += ()
    {
        Debug.Log("Interstitial Ad full screen content closed.");

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
}

بهترین شیوه ها

تعیین کنید که آیا تبلیغات بینابینی نوع مناسبی از تبلیغات برای برنامه شما هستند یا خیر.
تبلیغات بینابینی در برنامه هایی با نقاط انتقال طبیعی بهترین کارایی را دارند. نتیجه گیری یک کار در یک برنامه، مانند اشتراک گذاری یک تصویر یا تکمیل یک سطح بازی، چنین نقطه ای را ایجاد می کند. مطمئن شوید که در نظر داشته باشید که در کدام نقاط از جریان برنامه‌تان تبلیغات بینابینی به بهترین شکل نمایش داده می‌شود و احتمالاً کاربر چگونه پاسخ می‌دهد.
هنگام نمایش یک تبلیغ بینابینی، اقدام را متوقف کنید.
انواع مختلفی از تبلیغات بینابینی مانند متن، تصویر یا ویدیو وجود دارد. مهم است که مطمئن شوید وقتی برنامه شما یک تبلیغ بینابینی را نمایش می‌دهد، استفاده از برخی منابع را نیز به حالت تعلیق در می‌آورد تا تبلیغ بتواند از آنها استفاده کند. به عنوان مثال، هنگامی که برای نمایش یک تبلیغ بینابینی تماس می گیرید، مطمئن شوید که خروجی صوتی تولید شده توسط برنامه شما را متوقف کنید. می‌توانید پخش صداها را در رویداد OnAdFullScreenContentClosed() از سر بگیرید که وقتی کاربر تعامل با آگهی را به پایان رساند می‌تواند فراخوانی شود. علاوه بر این، در حین نمایش آگهی، به طور موقت هرگونه کار محاسباتی شدید، مانند حلقه بازی را متوقف کنید. این تضمین می کند که کاربر گرافیک آهسته یا بی پاسخ یا ویدیویی با لکنت را تجربه نکند.
کاربر را با تبلیغات غرق نکنید.
در حالی که افزایش دفعات تبلیغات بینابینی در برنامه شما ممکن است راهی عالی برای افزایش درآمد به نظر برسد، همچنین می‌تواند تجربه کاربر را کاهش داده و نرخ کلیک را کاهش دهد. اطمینان حاصل کنید که کاربران آنقدر مکرراً قطع نمی شوند که دیگر نتوانند از استفاده از برنامه شما لذت ببرند.

منابع اضافی

* نمونه مورد استفاده ،

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

این راهنما نحوه ادغام تبلیغات بینابینی را در برنامه Unity توضیح می دهد.

پیش نیازها

همیشه با تبلیغات آزمایشی تست کنید

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

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

اندروید

ca-app-pub-3940256099942544/1033173712

iOS

ca-app-pub-3940256099942544/4411468910

SDK تبلیغات موبایل را راه اندازی کنید

قبل از بارگیری تبلیغات، از برنامه خود بخواهید با فراخوانی MobileAds.Initialize() SDK تبلیغات موبایل را مقداردهی اولیه کند. این کار باید فقط یک بار انجام شود، ایده آل در هنگام راه اندازی برنامه.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

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

پیاده سازی

مراحل اصلی برای یکپارچه سازی تبلیغات بینابینی عبارتند از:

  1. آگهی بینابینی را بارگیری کنید
  2. تبلیغ بینابینی را نشان دهید
  3. به رویدادهای تبلیغاتی بینابینی گوش دهید
  4. آگهی بینابینی را پاک کنید
  5. آگهی بینابینی بعدی را از قبل بارگیری کنید

آگهی بینابینی را بارگیری کنید

بارگذاری یک تبلیغ بینابینی با استفاده از روش استاتیک Load() در کلاس InterstitialAd انجام می شود. روش بارگذاری به شناسه واحد تبلیغات، یک شی AdRequest و یک کنترل کننده تکمیل نیاز دارد که در صورت موفقیت یا عدم موفقیت بارگیری آگهی فراخوانی می شود. شی InterstitialAd بارگذاری شده به عنوان یک پارامتر در کنترل کننده تکمیل ارائه می شود. مثال زیر نحوه بارگیری InterstitialAd را نشان می دهد.


  // These ad units are configured to always serve test ads.
  #if UNITY_ANDROID
  private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
  private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
  private string _adUnitId = "unused";
    #endif

  private InterstitialAd _interstitialAd;

  /// <summary>
  /// Loads the interstitial ad.
  /// </summary>
  public void LoadInterstitialAd()
  {
      // Clean up the old ad before loading a new one.
      if (_interstitialAd != null)
      {
            _interstitialAd.Destroy();
            _interstitialAd = null;
      }

      Debug.Log("Loading the interstitial ad.");

      // create our request used to load the ad.
      var adRequest = new AdRequest();

      // send the request to load the ad.
      InterstitialAd.Load(_adUnitId, adRequest,
          (InterstitialAd ad, LoadAdError error) =>
          {
              // if error is not null, the load request failed.
              if (error != null || ad == null)
              {
                  Debug.LogError("interstitial ad failed to load an ad " +
                                 "with error : " + error);
                  return;
              }

              Debug.Log("Interstitial ad loaded with response : "
                        + ad.GetResponseInfo());

              _interstitialAd = ad;
          });
  }

تبلیغ بینابینی را نشان دهید

برای نمایش یک تبلیغ بینابینی بارگذاری شده، متد Show() را در نمونه InterstitialAd فراخوانی کنید. تبلیغات ممکن است یک بار در هر بار نمایش داده شود. از متد CanShowAd() برای تأیید اینکه آگهی آماده نمایش است استفاده کنید.

/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
    if (_interstitialAd != null && _interstitialAd.CanShowAd())
    {
        Debug.Log("Showing interstitial ad.");
        _interstitialAd.Show();
    }
    else
    {
        Debug.LogError("Interstitial ad is not ready yet.");
    }
}

به رویدادهای تبلیغاتی بینابینی گوش دهید

برای سفارشی‌سازی بیشتر رفتار تبلیغ خود، می‌توانید به تعدادی از رویدادها در چرخه عمر تبلیغ متصل شوید. با ثبت نام نماینده مطابق شکل زیر به این رویدادها گوش دهید.

private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
    // Raised when the ad is estimated to have earned money.
    interstitialAd.OnAdPaid += (AdValue adValue) =>
    {
        Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
            adValue.Value,
            adValue.CurrencyCode));
    };
    // Raised when an impression is recorded for an ad.
    interstitialAd.OnAdImpressionRecorded += () =>
    {
        Debug.Log("Interstitial ad recorded an impression.");
    };
    // Raised when a click is recorded for an ad.
    interstitialAd.OnAdClicked += () =>
    {
        Debug.Log("Interstitial ad was clicked.");
    };
    // Raised when an ad opened full screen content.
    interstitialAd.OnAdFullScreenContentOpened += () =>
    {
        Debug.Log("Interstitial ad full screen content opened.");
    };
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += () =>
    {
        Debug.Log("Interstitial ad full screen content closed.");
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);
    };
}

آگهی بینابینی را پاک کنید

وقتی کار با InterstitialAd تمام شد، مطمئن شوید که متد Destroy() را قبل از رها کردن مرجع خود به آن فراخوانی کنید:

_interstitialAd.Destroy();

این به افزونه اطلاع می دهد که شی دیگر استفاده نمی شود و حافظه ای که اشغال می کند قابل بازیابی است. عدم فراخوانی این روش منجر به نشت حافظه می شود.

آگهی بینابینی بعدی را از قبل بارگیری کنید

تبلیغات بینابینی یک شی یک بار مصرف هستند. این بدان معناست که وقتی یک تبلیغ بینابینی نشان داده شد، شیء نمی تواند دوباره استفاده شود. برای درخواست تبلیغ بینابینی دیگری، یک شی InterstitialAd جدید ایجاد کنید.

برای تهیه یک تبلیغ بینابینی برای فرصت نمایش بعدی، پس از بالا آمدن رویداد تبلیغاتی OnAdFullScreenContentClosed یا OnAdFullScreenContentFailed آگهی بینابینی را از قبل بارگیری کنید.

private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
    // Raised when the ad closed full screen content.
    interstitialAd.OnAdFullScreenContentClosed += ()
    {
        Debug.Log("Interstitial Ad full screen content closed.");

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
    // Raised when the ad failed to open full screen content.
    interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
    {
        Debug.LogError("Interstitial ad failed to open full screen content " +
                       "with error : " + error);

        // Reload the ad so that we can show another as soon as possible.
        LoadInterstitialAd();
    };
}

بهترین شیوه ها

تعیین کنید که آیا تبلیغات بینابینی نوع مناسبی از تبلیغات برای برنامه شما هستند یا خیر.
تبلیغات بینابینی در برنامه هایی با نقاط انتقال طبیعی بهترین کارایی را دارند. نتیجه گیری یک کار در یک برنامه، مانند اشتراک گذاری یک تصویر یا تکمیل یک سطح بازی، چنین نقطه ای را ایجاد می کند. مطمئن شوید که در نظر داشته باشید که در کدام نقاط از جریان برنامه‌تان تبلیغات بینابینی به بهترین شکل نمایش داده می‌شود و احتمالاً کاربر چگونه پاسخ می‌دهد.
هنگام نمایش یک تبلیغ بینابینی، اقدام را متوقف کنید.
انواع مختلفی از تبلیغات بینابینی مانند متن، تصویر یا ویدیو وجود دارد. مهم است که مطمئن شوید وقتی برنامه شما یک تبلیغ بینابینی را نمایش می‌دهد، استفاده از برخی منابع را نیز به حالت تعلیق در می‌آورد تا تبلیغ بتواند از آنها استفاده کند. به عنوان مثال، هنگامی که برای نمایش یک تبلیغ بینابینی تماس می گیرید، مطمئن شوید که خروجی صوتی تولید شده توسط برنامه شما را متوقف کنید. می‌توانید پخش صداها را در رویداد OnAdFullScreenContentClosed() از سر بگیرید که وقتی کاربر تعامل با آگهی را به پایان رساند می‌تواند فراخوانی شود. علاوه بر این، در حین نمایش آگهی، به طور موقت هرگونه کار محاسباتی شدید، مانند حلقه بازی را متوقف کنید. این تضمین می کند که کاربر گرافیک آهسته یا بی پاسخ یا ویدیویی با لکنت را تجربه نکند.
کاربر را با تبلیغات غرق نکنید.
در حالی که افزایش دفعات تبلیغات بینابینی در برنامه شما ممکن است راهی عالی برای افزایش درآمد به نظر برسد، همچنین می‌تواند تجربه کاربر را کاهش داده و نرخ کلیک را کاهش دهد. اطمینان حاصل کنید که کاربران آنقدر مکرراً قطع نمی شوند که دیگر نتوانند از استفاده از برنامه شما لذت ببرند.

منابع اضافی

* نمونه مورد استفاده