본문 바로가기
PROGRAMING📚/Unity📑

[유니티 Unity] 구글 애드몹 배너(BannerView) 광고 넣기

별찌루 2023. 2. 6.
728x90
반응형

 

유니티에서 배너 광고 넣기

 

전면 광고 넣는 방법은 이전 글에서 확인 해주세요

 

이번에는 전면 광고가 아닌 유니티 배너 광고를 넣어보려고 합니다.

 

패키지 다운받고 넣는 방법은 아래에서 확인해 주세요

https://j2su0218.tistory.com/514#toc-link-1

 

[유니티 Unity] 구글 애드몹 전면 광고 넣는 방법

Google AdMob 구글 애드몹 광고 넣기 일단 구글 애드몹 사이트로 들어가서 원하는 광고의 방식을 설정해주어야한다. https://admob.google.com/intl/ko/home/ Google AdMob: 모바일 앱 수익 창출 인앱 광고를 사용

j2su0218.tistory.com

 

배너 광고 넣는 방법

일단 광고 애드몹을 넣기 위해서

using GoogleMobileAds.Api를 선언 해주어야 한다.

 

using GoogleMobileAds.Api;

 

이제 구글 애드몹 관련 클래스를 사용할 수 있기 때문에 

전면 광고에서는 InterstitialAd 클래스를 사용하지만

배너 광고는 BannerView 클래스를 사용하기 때문에

 

 private BannerView bannerView;

BannerView를 사용하기 위해서 선언을 해준다.

 

그 다음에 함수를 하나 만들어서 구글 애드몹에서 생성한 

해당 배너 광고를 사용하겠다는 기기ID와 광고 ID를 가져와서

넣어줘야한다.

 

더보기

기기 ID 샘플

 

ca-app-pub-3940256099942544~3347511713 

 

  배너 광고 샘플  

    Banner Ad Sample : ca-app-pub-3940256099942544/6300978111
    Banner IOS Sample ID: ca-app-pub-3940256099942544/2934735716

    전면 광고 샘플

    InterstitialAd Ad Sample : ca-app-pub-3940256099942544/1033173712
    InterstitialAD IOS Sample: ca-app-pub-3940256099942544/4411468910

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

 

전처리기를 이용해서 해당 플랫폼 광고 ID가 맞게 작동할 수 있도록 구현해준다.

 

그리고 비어있는 광고를 생성해주고

LoadAd를 사용해서 광고를 불러준다.

 

AdRequest request = new AdRequest.Builder().Build();
this.bannerView.LoadAd(request);

 

해주고 실행을 하면 

아래쪽에 광고가 나오는 것을 확인 할 수 있다.

 

전체 코드 정리

    //배너 광고 로드하기
    private void RequestBanner()
    {
#if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/6300978111"; //sample
#elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/2934735716"; //sample
#else
        string adUnitId = "unexpected_platform";
#endif
        //새로운 광고 배너를 만들기 전에 정리를 해주어야한다.
        if(this.bannerView != null)
        {
            this.bannerView.Destroy();
        }
        AdSize adaptiveSize =
        AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);
        //AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth((int)MobileAds.Utils.GetDeviceScale());
        //광고 이벤트를 등록
        this.bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;//OnAdLoaded 이벤트는 광고 로드가 완료되면 실행됩니다.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad; //이벤트는 광고 로드에 실패할 때 실행됩니다
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;//사용자가 광고를 탭하면 호출됩니다. 
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;//사용자가 광고의 도착 URL을 조회한 후 앱으로 돌아가면 이 메서드가 호출

        AdRequest request = new AdRequest.Builder().Build();
        this.bannerView.LoadAd(request);

        Canvas banner = GameObject.Find("ADAPTIVE(Clone)").GetComponent<Canvas>();
        banner.renderMode = RenderMode.ScreenSpaceCamera;
        banner.worldCamera = Camera.main;

    }

    private void HandleOnAdClosed(object sender, EventArgs e)
    {
      print("HandleAdLoaded event received");
    }

    private void HandleOnAdOpened(object sender, EventArgs e)
    {
        print("HandleFailedToReceiveAd event received with message: "
                + e.ToString());
    }

    private void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs e)
    {
        print("HandleAdOpened event received");
        RequestBanner();
    }

    private void HandleOnAdLoaded(object sender, EventArgs e)
    {
       print("HandleAdClosed event received");
        print(String.Format("Ad Height: {0}, width: {1}",
         this.bannerView.GetHeightInPixels(),
         this.bannerView.GetWidthInPixels()));

    }

    public void ShowBanner(bool b)
    {
        bannerView.Show();
    }

    public void HideBanner()
    {
        bannerView.Hide();
    }

 

728x90
반응형

댓글