iOS 앱에 애드몹 배너광고를 추가한 지 4일만에 게재 제한을 먹었습니다.
클릭수 고작 3에 노출도 거의 안되는데,
내 기기도 테스터로 넣었는데,
너무 억울한 마음이 들었습니다.
하지만 꼼꼼히 살펴보니 정지 먹을 만 했더군요.(매번 내잘못인데 매번 남탓하게 됩니다)
이유: 과도한 요청
광고 노출에 비해 호출(요청)되는 양이 너무 많았습니다.
배너 하나 부르는데 통신이 여러번 시도되어서 무효 트래픽으로 잡힌 것 같더군요.
즉 코드를 잘못 짰습니다. 광고 잘 나오니 확인도 제대로 안하고 업데이트 한 죄였습니다.
구체적인 이유는 두가지 입니다.
1. 배너를 뷰컨트롤러 위에 추가한게 아니라, 테이블뷰의 헤더 안에다 넣었는데, 테이블뷰가 리로드 될 때마다 광고가 새로 호출이 되었습니다.
2. 반복코드를 줄이려고 배너 선언을 슈퍼클래스에 해두고 배너를 쓸 때마다 addSubview를 해서 썼는데, 안쓰는 뷰에서도 배너가 초기화 되면서 불필요한 호출이 생겼습니다.
이 두가지 때문에 과도한 광고 호출이 반복되었던 것입니다.
그리고 2번째 문제 때문에 통신이 실패되는 로그도 있었습니다.(잘 돌아가니 무시했던게 화근이었죠.)
Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
ProcessAssertion::acquireSync Failed to acquire RBS assertion 'WebProcess Suspended Assertion' for process with PID=27012, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}
문제해결
1. 배너광고를 테이블뷰 안에 넣지않고 뷰컨트롤러에 직접 추가해서 최상단에 고정시킴>>뷰컨트롤러 초기화 시에만 광고 호출
2. 슈퍼클래스의 배너 상수를 lazy 변수로 변경. >>lazy 변수는 쓰이지 않으면 초기화 되지 않으므로 배너 쓰일때만 광고 호출.
lazy var bannerView: GADBannerView = {
var view = GADBannerView(adSize: GADAdSizeBanner)
view.translatesAutoresizingMaskIntoConstraints = false
view.adUnitID = "ca-app-pub-3940256099942544/2934735716" //테스트광고id
view.load(GADRequest())
return view
}()
이런 기초적인 실수를 하는 분들이 많지는 않을 거라고 생각하지만, 혹시나 해서 포스팅 합니다.
광고 정지먹으면 수정해도 바로 풀리지 않으니까요.
PS. 구글 애드몹님. 죄송합니다. 정말로 고의가 아니었습니다. 한번만 봐주세요.
'iOS' 카테고리의 다른 글
[iOS/Swift] ImageView Zoom기능: Scrollview 보다 Imageview가 커지는 문제 (1) | 2023.12.07 |
---|---|
[iOS] 아이폰꿀팁 - 와이파이 비밀번호 텍스트 스캔으로 쉽게 입력하기 (0) | 2023.10.05 |
[iOS] 아이폰 꿀팁 - 집중모드 홈화면, 잠금화면 설정하기 (1) | 2023.09.30 |
[iOS]아이폰 꿀팁: 메모장으로 스캔하기 (0) | 2023.09.24 |
[iOS/Swfit] PHAsset으로 날짜별 사진 가져오기: PHImageManager (0) | 2023.09.21 |