본문 바로가기
GAME/개발

Unity - Google admob banner 연동

by 차르스 2021. 11. 7.

구글 애드몹 전면 광고는 손쉽게 연동되었는데 배너 광고는 원하는대로 연동이 잘 안되었다. 대기화면에서만 배너가 보이고 게임을 시작하면 배너가 사라져야 하는데 계속해서 남아 있던 것. 구글링을 해보니 여러 구현 방법이 나왔지만 구글 공식 문서 방식대로 하면 아래와 같다.

 

    public void RequestBanner() {
        if (bannerView != null) { // banner 생성 전에 clean-up
            bannerView.Destroy();
        }

        AdSize adaptiveSize = AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        bannerView = new BannerView(adBannerUnitId, adaptiveSize, AdPosition.Bottom);

        AdRequest adRequest = new AdRequest.Builder().Build();

        bannerView.LoadAd( adRequest );

    }

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

 

배너를 보여줄때 RequestBanner() 를 호출하고 가릴때는 HideBanner() 를 호출하면 된다. 간혹 LoadAd() 는 배너를 로드만하고 보여주는건 ShowAd() 를 쓰라는 글들이 있는데 현 시점에서는 옳지 않다. LoadAd() 만으로 배너광고는 표시된다. 배너를 삭제할 때는 Destroy() 를 쓰고 Destroy() 를 쓰지 않으면 new BannerView() 로 할당한 메모리 수거가 되지 않아서 메모리 누수가 생길 수 있다고 공식 문서에 쓰여 있다. 따라서, Request 가 Destroy 보다 많은 구조에서 루핑이 되면 메모리가 샐 수 있으니 [Request - Destroy] 커플로 배너 on/off 관리를 잘 해주어야겠다.

 

애드몹 광고 테스트는 항상 Test adUnitId 로! 그렇지 않으면 부정 행위로 귀신 같이 광고 제재가 들오니 주의!

댓글