만족
[Android] Google Play - 앱, 타사 광고, 기기 기능 방해 정책 위반 본문
[Android] Google Play - 앱, 타사 광고, 기기 기능 방해 정책 위반
FrontEnd/Android Satisfaction 2020. 8. 6. 21:24
갑자기 다음과 같은 메일이 날라오며 앱 업데이트가 거부되었다.
의아한 것은 해당 업데이트 내용은 버그 수정 및 편의성 강화로써 광고 관련 코드는 수정된 바가 전혀 없다는 것이다.
이의 신청을 진행했으나 돌아온 답변은 더 이해할 수 없는 내용이였다.
광고가 내 앱을 벗어나 다른 앱 위에 있다는 것인데...
무슨 말인지 잘 생각해보니 알게 되었다.
1. 앱이 백그라운드 상태일 때도 전면광고를 표시함
mInterstitialAd.adListener = object : AdListener() { override fun onAdLoaded() { if (!isDestroyed){ mInterstitialAd.show() } } override fun onAdClosed() { super.onAdClosed() if(!isDestroyed) progressDialog.dismiss() openMainActivity() } override fun onAdFailedToLoad(i: Int) { super.onAdFailedToLoad(i) if(!isDestroyed) progressDialog.dismiss() openMainActivity() } }
해당 코드는 전면 광고의 로드 상태에 따른 동작을 명시한 코드이다.
onAdLoaded를 보면 Activity가 Destroy되지 않았다면 전면 광고를 표시하게 되어 있다.
해당 시나리오에서는 다음과 같은 일이 발생할 수 있다.
1. 사용자가 앱을 켜고 스플래시 화면으로 진입
2. 광고가 로드되는 도중 다른 앱으로 이동
3. 나의 앱은 백그라운드에서 광고가 로드되었으므로 mInterstitalAd.show()가 작동됨
4. 다른 앱의 위에 전면 광고가 표시됨
따라서 앱이 포그라운드에 있는지, 백그라운드에 있는 지도 확인해봐야 한다.
https://satisfactoryplace.tistory.com/134
위의 포스트를 참고하여 액티비티가 포그라운드에 있는지도 확인하여 광고를 표시해야 한다
//wait for load ad mInterstitialAd.adListener = object : AdListener() { override fun onAdLoaded() { //바뀐 부분 //isDestroy가 아니라 isActivityForeground로 비교하여 광고를 표시한다 if(isActivityForeground){ mInterstitialAd.show() }else{ if(!isDestroyed){ progressDialog.dismiss() finish() } } } override fun onAdClosed() { super.onAdClosed() if(!isDestroyed) progressDialog.dismiss() openMainActivity() } override fun onAdFailedToLoad(i: Int) { super.onAdFailedToLoad(i) if(!isDestroyed) progressDialog.dismiss() openMainActivity() } }
2. 광고가 예기치 않은 시점에 표시됨
https://support.google.com/admob/answer/6201362?hl=ko
스플래시 화면이 없는 앱의 경우 다음과 같은 위반사항을 쉽게 저지를 수 있다
올바른 광고 표시를 위해서는 사용자와 상호작용이 시작되었을 때 그 행동에 대한 응답이 진행되기 전에 광고를 표시하거나
별도 스플래시 액티비티를 만들어 "데이터/광고 로딩"과 "메인 화면"을 분리시켜 주어야 한다.
'FrontEnd > Android' 카테고리의 다른 글
[Android] BuildConfig.DEBUG가 릴리즈 모드에서도 true가 되는 현상 (0) | 2020.09.11 |
---|---|
[Android] 현재 Activity의 Foreground/Background 상태 확인 (0) | 2020.08.06 |
[Android] boommenu 라이브러리 오류 (java.lang.IndexOutOfBoundsException) (0) | 2020.07.31 |
[Android] getFragmentManager vs getChildFragmentManager (0) | 2020.07.30 |
[Android] Fragment의 getActivity()는 언제 null을 반환할까 (0) | 2020.07.17 |