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

'GAME > 개발' 카테고리의 다른 글
| 첫 자작 게임 런칭 - 스카이콩콩 (SkyKongKong) (0) | 2022.02.12 |
|---|---|
| Unity - Device Simulator 와 Application.platform (0) | 2021.11.07 |
| 유니티에서 SHA-1 Key 생성 방법 (1) | 2021.11.05 |
| unity - git 연동 에러 : because the tip of your current branch is behind... (0) | 2021.11.05 |
| Unity - Git 연동 에러 : Temp/UnityLockfile (0) | 2021.11.05 |
댓글