تبلیغات بینابینی (قدیمی)

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

این راهنما نحوه ادغام تبلیغات بینابینی را در برنامه 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() را داشته باشید، می تواند اطمینان حاصل کند که برنامه شما یک تبلیغ بینابینی کاملاً بارگذاری شده در زمان نمایش آن آماده است.
کاربر را با تبلیغات غرق نکنید.
در حالی که افزایش تعداد تبلیغات بینابینی در برنامه شما ممکن است راهی عالی برای افزایش درآمد به نظر برسد، همچنین می تواند تجربه کاربر را کاهش دهد و نرخ کلیک را کاهش دهد. اطمینان حاصل کنید که کاربران آنقدر مکرراً قطع نمی شوند که دیگر نتوانند از استفاده از برنامه شما لذت ببرند.

منابع اضافی

نمونه ها

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