تبلیغات بنری

با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

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

این راهنما به شما نشان می دهد که چگونه تبلیغات بنری را از AdMob در یک برنامه Unity ادغام کنید. علاوه بر تکه‌های کد و دستورالعمل‌ها، اطلاعاتی در مورد اندازه‌بندی صحیح بنرها و پیوندهایی به منابع اضافی نیز دارد.

پیش نیازها

یک BannerView ایجاد کنید

اولین قدم برای نمایش یک بنر، ایجاد یک شی BannerView در یک اسکریپت C# است که به GameObject متصل شده است.

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

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

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

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

سازنده یک BannerView دارای پارامترهای زیر است:

  • adUnitId - شناسه واحد تبلیغات AdMob که BannerView باید تبلیغات را از آن بارگیری کند.
  • AdSize - اندازه تبلیغ AdMob که می خواهید استفاده کنید (برای جزئیات به اندازه بنرها مراجعه کنید).
  • AdPosition - موقعیتی که بنر تبلیغاتی باید در آن قرار گیرد. فهرست AdPosition مقادیر موقعیت آگهی معتبر را فهرست می کند.

توجه به نحوه استفاده از واحدهای تبلیغاتی مختلف، بسته به پلتفرم، مهم است. باید از یک واحد تبلیغات iOS برای درخواست تبلیغات در iOS و یک واحد تبلیغات Android برای درخواست در Android استفاده کنید.

(اختیاری) موقعیت آگهی سفارشی

برای کنترل بیشتر بر روی مکان BannerView روی صفحه نسبت به آنچه که توسط مقادیر AdPosition ارائه شده است، از سازنده BannerView که دارای مختصات x و y به عنوان پارامتر است استفاده کنید:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

گوشه سمت چپ بالای BannerView در مقادیر x و y قرار می‌گیرد که به سازنده منتقل می‌شود، جایی که مبدأ بالای سمت چپ صفحه است.

(اختیاری) اندازه های تبلیغاتی سفارشی

علاوه بر استفاده از یک ثابت AdSize، می توانید یک اندازه سفارشی نیز برای تبلیغ خود تعیین کنید:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

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

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

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

یک تبلیغ را بارگیری کنید

هنگامی که BannerView نمونه سازی شد، گام بعدی بارگذاری آگهی است. این کار با loadAd() در کلاس BannerView انجام می شود. یک آرگومان AdRequest دارد، که اطلاعات زمان اجرا (مانند اطلاعات هدف‌یابی) را در مورد یک درخواست آگهی منفرد نگه می‌دارد.

در اینجا مثالی آورده شده است که نحوه بارگذاری آگهی را نشان می دهد:

...
    private void RequestBanner()
    {
        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

خودشه! اکنون برنامه شما برای نمایش تبلیغات بنری از AdMob آماده است.

رویدادهای تبلیغاتی

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

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.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.LoadAdError.GetMessage());
    }

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

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

رویداد OnAdFailedToLoad حاوی آرگومان های رویداد ویژه است. یک نمونه از HandleAdFailedToLoadEventArgs با Message که خطا را توصیف می کند، ارسال می کند:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
رویداد تبلیغاتی شرح
OnAdLoaded رویداد OnAdLoaded زمانی اجرا می‌شود که بارگیری آگهی به پایان برسد.
OnAdFailedToLoad رویداد OnAdFailedToLoad زمانی فراخوانی می شود که آگهی بارگیری نشود. پارامتر Message نوع خرابی رخ داده را توصیف می کند.
OnAdOpening این روش زمانی فراخوانی می شود که کاربر روی یک تبلیغ ضربه می زند. اگر از یک بسته تحلیلی برای ردیابی کلیک ها استفاده می کنید، این مکان مناسبی برای ثبت آن است.
OnAdClosed هنگامی که کاربر پس از مشاهده URL مقصد تبلیغ به برنامه برمی گردد، این روش فراخوانی می شود. برنامه شما می‌تواند از آن برای از سرگیری فعالیت‌های معلق یا انجام هر کار دیگری که برای آماده‌سازی خود برای تعامل لازم است استفاده کند.

جدول زیر اندازه های استاندارد بنر را فهرست می کند.

اندازه بر حسب dp (WxH) شرح دسترسی AdSize ثابت
320x50 بنر استاندارد گوشی و تبلت BANNER
320x100 بنر بزرگ گوشی و تبلت LARGE_BANNER
300x250 مستطیل متوسط ​​IAB گوشی و تبلت MEDIUM_RECTANGLE
468x60 بنر سایز کامل IAB قرص FULL_BANNER
728x90 تابلوی امتیازات IAB قرص LEADERBOARD
عرض ارائه شده x ارتفاع تطبیقی بنر تطبیقی گوشی و تبلت N/A
عرض صفحه x 32|50|90 بنر هوشمند گوشی و تبلت SMART_BANNER
درباره بنرهای تطبیقی ​​که برای جایگزینی بنرهای هوشمند در نظر گرفته شده است، بیشتر بیاموزید.

تبلیغات بنری را پاک کنید

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

bannerView.Destroy();

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

منابع اضافی

نمونه ها

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