[Android] AdMob 배너 광고 레이아웃 깨짐 방지 및 가변 크기(Adaptive Banner) 적용 방법
앱을 운영하다 보면 AdMob 배너 광고를 붙여야 할 때가 많습니다. 저의 경우도 하단에 배너를 달아두고 운영 중인데, 최근 나오는 Android 기기들은 화면 크기나 비율이 워낙 제각각이라(폴더블, 태블릿, 가로 모드 등) 고정 크기 배너만 고집하면 레이아웃이 붕 뜨거나 어색하게 깨지는 문제가 발생하더군요. 자꾸 까먹기도 하고 실무에서 매번 찾아보기 귀찮아서, 안정적으로 배너 광고를 올리는 레이아웃 구조와 가변 배너(Anchored Adaptive Banner) 적용 방법을 정리해 둡니다. 1. 배너 광고 적용 시 자주 겪는 문제와 원인 단순히 "화면 아래에 View 하나 얹으면 되겠지" 하고 접근하면 운영하다가 꼭 아래와 같은 안 좋은 상황을 마주하게 됩니다. 레이아웃 튐 현상: 광고가 로딩되기 전에는 높이가 0이었다가, 광고가 로드되는 순간 갑자기 화면이 툭 밀려 내려가면서 사용자가 버튼을 잘못 누르는 오인 클릭이 발생합니다. 화면 크기 미대응: XML에 320x50 같은 고정 크기만 넣어두면 태블릿이나 가로 모드에서 양옆이 훤히 비어 보입니다. 메모리 누수: Fragment나 Activity가 종료될 때 리소스를 제대로 해제하지 않으면 메모리를 계속 잡아먹습니다. 정책 위반 위험: UMP(개인정보 동의) 흐름이 끝나기도 전에 광고를 요청하거나, 개발 중에 실제 광고 ID를 그대로 박아서 테스트하면 계정이 정지될 수 있습니다. 따라서 배너는 광고 컨테이너 높이, 화면 회전, 라이프사이클 관리를 처음부터 세트로 묶어서 설계해야 안전합니다. 2. 해결 방법: XML 레이아웃 구조 잡기 광고를 콘텐츠 위에 겹쳐 올리면 100% 버튼 오인 클릭으로 구글 경고를 받거나 사용자 원성을 삽니다. 아예 콘텐츠 영역과 광고 영역을 아래처럼 확실하게 분리해 주는 것이 좋습니다. XML < androidx.constraintlayout.widget.ConstraintLayout xmlns:android = "http://sc...