본문 바로가기
[개발 일지]

애드몹 전면광고 뒤로가기 처리에 대한 연구 (어이가 없습니다..)

by Hevton 2023. 8. 28.
반응형

이 글을 통해 도움받으실 분들이 꼭 계셨으면 좋겠습니다.

저는 이걸 찾아보고 연구해서 이유를 찾아내느라 꽤 오래 걸렸거든요..

 

 

보통 최신 버전의 앱을 개발하시는 분들, Kotlin으로 앱을 개발하시는 분들은

뒤로가기를 커스텀하기 위해 아래와 같은 콜백을 이용하실 겁니다.

OnBackPressedCallback

 

 

onBackPressed()는 모두가 아시다시피 deprecated 되었기 때문에 더 이상 사용하지 않길 권장하고 있죠.

그래서 저는 onBackPressed()는 전혀 사용하지 않고, OnBackPressedCallback을 커스텀하여 사용하고 있었습니다.

 

 

OnBackPressedCallback 사용법

우선 이를 사용하는 방법에 대해 간단히 말씀드리겠습니다.

<application
    android:name=".MainApplication"
    android:allowBackup="true"
    android:enableOnBackInvokedCallback="true"
    android:label="앱 이름"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

AndroidManifest.xml 파일에

enableOnBackInvokedCallback = "true" 설정을 임해주시고

 

소스코드에서 콜백을 등록해줍니다.

private lateinit var callback: OnBackPressedCallback
        callback = object : OnBackPressedCallback(true) {
            override fun handleOnBackPressed() {
            
        
            }
        }
        onBackPressedDispatcher.addCallback(this, callback)

이런식으로 사용해주시면 됩니다. 

 

 

 

애드몹 전면광고, 뒤로가기로 종료가 된다?

문제는 여기서 발생했습니다. 애드몹에는 다양한 전면광고가 게재되는데, 그 중에서도 단가가 높은 동영상 광고의 경우는 특히

5초의 카운트다운이 있습니다.

 

제 앱에서는 이 5초가 끝나기도 전에, 또는 애드몹 전면광고 자체적으로 그냥 스마트폰 내의 뒤로가기 버튼을 통해 광고를 언제든지 명시적으로 종료할 수가 있었습니다. 이게 너무 어이가 없더군요.

 

근데 다른 앱들을 보면, 다 뒤로가기로 종료가 안되고, 광고 내의 x버튼을 눌러야 하거나, 동영상 광고의 경우 x버튼이 나타나기 전 까지 5초의 카운트다운을 기다려야 했습니다.

 

 

왜 다른 앱들은 뒤로가기로 종료가 안되는데, 내 앱만 종료가 될까?

이는 CTR에도 큰 영향을 끼치기에,, 고쳐야 겠다고 생각했습니다.

아무리 검색해도 답은 나오지 않았고, 애드몹 공식 커뮤니티에서 찾아봐도 라이브러리 버전에 대해서만 이야기했습니다.

하지만 예전 버전을 이용하면 스토어에 올릴 수 없도록 정책이 바뀌었기 때문에 이는 방법이 아니라고 생각되었습니다.

 

그렇게 계속 시도한 끝에,

대부분의 앱들이 설마 아직도 onBackPressed()를 사용할까 싶어서 저도 

android:enableOnBackInvokedCallback="true" 이런거 다 지우고 onBackPressed()로 구현했더니.. 

뒤로가기로 전면광고가 종료되지 않았습니다.

 

놓치지 말아야 할 건, AndroidManifest.xml에서 반드시 제거해줘야합니다.

 

 

최신버전의 기술을 쓴 게 오히려 더 귀찮아진다니,, Android Navigation Jetpack을 사용하면서도 정말 오류가 많고 짜증난다고 생각했는데, 여기서도 또 경험하네요.

 

신기술이 당연하게도 잔에러도 많고, 예외도 너무 많은 것 같습니다.

Android Jetpack Navigation은 이득이 많은지 실이 많은지도 헷갈릴 정도에요 ㅜㅜ

도입한게 정말 후회됩니다.

 

또한, 많은 앱들이 아직도 오래된 버전의 구현을 사용한다는 것도 깨닫게 되었네요. 기분이 이상합니다.

돈을 버는 것과 기술자인 것은 다른 것 같아요.

 

제발 조옴~~

 

 

반응형