매치 시즈의 안드로이드 빌드를 쓰시는 분에게 제보가 왔습니다.
물리버튼이 숨겨져 있는데 의도된 거야? 물리버튼 불러내려다가 광고 누를 것 같은데
의도된 설정이 맞았습니다. 전체화면(immersive) 모드는 첫 커밋부터 켜져 있었습니다. 게임 화면을 화면 끝까지 쓰려고 넣은 것이고, 그때는 그게 옳았습니다.
옳던 설정이 틀린 설정이 된 지점
바뀐 것은 설정이 아니라 화면 맨 아래의 뜻이었습니다.
| 배너를 붙이기 전 | 배너를 붙인 뒤 | |
|---|---|---|
| 화면 아래 가장자리 | 아무것도 없다 | 광고가 있다 |
| 위로 쓸어 올리면 | 시스템 바가 나온다 | 광고를 지나쳐야 시스템 바가 나온다 |
전체화면 모드는 내비게이션 바를 숨기고, 숨겨진 바를 부르는 방법은 아래에서 위로 쓸어 올리는 것입니다. 그 손가락이 지나는 자리에 광고를 놓은 셈입니다.
이건 사용성 문제가 아닙니다
오탭이 불편한 정도의 이야기였다면 저울질을 했을 것입니다. 그런데 광고에서 의도치 않은 클릭은 무효 트래픽이고, 무효 트래픽이 쌓이면 광고 계정이 정지됩니다. 게임 화면 몇 픽셀과 바꿀 수 있는 것이 아닙니다.
그래서 전체화면을 껐습니다. 끄면 안드로이드가 내비게이션 바 자리를 앱 영역에서 빼 주고, 배너는 그 위에 놓입니다. 쓸어 올릴 일 자체가 없어집니다.
대가는 정직하게 적어 둡니다. 위쪽 상태바도 같이 보입니다(3120px 중 90px쯤). 게임 영역이 그만큼 줄어 칸이 조금 작아집니다.
배너를 위로 띄우는 방법도 있긴 합니다. 하지만 전체화면 상태에서는 제스처 인셋이 0으로 보고돼서 얼마나 띄워야 하는지 믿을 수가 없습니다. 믿을 수 없는 값으로 여백을 계산하면 기기마다 다른 자리에 배너가 놓입니다.
같은 날 다른 앱에서도 껐습니다
블록 캔버스도 같은 구조였습니다. 하단 배너가 있고 전체화면이 켜져 있었습니다. 제보를 기다릴 이유가 없어서 같이 껐습니다.
여기서는 하나가 더 있었습니다. 짧은 화면에서 배너가 버튼을 덮고 있었습니다. 이 경우 버튼을 누르려는 탭이 그대로 광고 클릭이 됩니다. 그래서 순서를 못박았습니다 — 배너가 덮을 자리를 배너가 뜨기 전에 먼저 비웁니다. 순서를 뒤집으면 잠깐이지만 버튼 위에 광고가 올라앉는 구간이 생깁니다.
같은 김에 판이 화면 높이를 다 쓰도록 배치도 다시 잡았습니다. 긴 폰에서 위아래로 남던 빈 띠를 없애고 그만큼 칸을 키웠습니다 — 전체화면을 끄면서 잃은 세로를 다른 데서 벌어 온 셈입니다.
남는 규칙 하나
설정은 그 자리에 무엇이 있느냐에 따라 옳고 그름이 바뀝니다.
전체화면은 화면 아래에 아무것도 없을 때 맞는 설정이었고, 광고를 붙이는 순간 틀린 설정이 됐습니다. 코드는 한 줄도 안 바뀌었는데 말입니다. 그래서 광고나 시스템 UI를 붙일 때는 새로 만드는 것만 볼 게 아니라, 이미 켜 둔 설정 중에 전제가 바뀐 것이 없는지를 같이 봐야 합니다.
두 앱 모두 실기기에서 상태바·내비 바·배너·게임 영역이 겹치지 않는 것을 눈으로 확인했습니다.