[모바일 앱] 더 나은 광고 경험(Better Ads Experiences) 정책 위반 미리 대응 방법
2022년 9월 30일까지 처리해야하는 정책이 있다. 바로 더 나은 광고 경험 정책인데 자세한 내용은 다음과 같다.
더 나은 광고 경험(Better Ads Experiences)
개발자는 사용자가 Google Play 앱을 사용할 때 양질의 경험을 누릴 수 있도록 다음 광고 가이드라인을 준수해야 합니다. 다음과 같이 예상치 못한 방식으로 사용자에게 광고를 표시할 수 없습니다.
사용자가 명시적으로 선택한 보상형 광고에는 이 정책이 적용되지 않습니다(예: 개발자가 특정 게임 기능 또는 콘텐츠의 잠금 해제를 대가로 사용자에게 명시적으로 시청을 제안하는 광고). 이 정책은 정상적인 앱 사용 또는 게임 플레이를 방해하지 않는 수익 창출 및 광고에도 적용되지 않습니다(예: 광고가 통합된 동영상 콘텐츠, 전체 화면이 아닌 배너 광고). |
출처 :https://www.betterads.org/standards/#mobileapp
광고 정책 위반 사례가 있는데 반드시 확인해야할 부분이다. 만약 게임이 아닌 경우라면 더더욱 내용을 잘 파악하고 대응해야한다. 하나씩 살펴 보자
더 나은 광고 경험 위반 사례
- 게임 플레이 도중에 또는 콘텐츠 세그먼트 시작 중에 나타나는 예상치 못한 광고(예: 사용자가 버튼을 클릭한 후 버튼 클릭으로 의도한 동작이 실행되기 전). 사용자는 게임이 시작되거나 콘텐츠가 표시될 것이라고 예상하므로 이러한 광고는 사용자가 예상치 못한 것입니다.
① 예상치 못한 정적 광고가 게임 플레이 도중에 레벨 시작 시 나타납니다.
② 예상치 못한 동영상 광고가 콘텐츠 세그먼트 시작 중에 나타납니다.
- 게임 플레이 도중에 나타나고 15초가 지난 후에도 닫을 수 없는 전체 화면 광고
① 전면 광고가 게임 플레이 도중에 나타나고 15초 이내에 사용자에게 건너뛸 수 있는 옵션을 제공하지 않습니다.
게임에 대한 가이드라인은 정확하게 알려주고 있지만
게임이 아닌 앱의 경우는 단순하게만 알려주기 때문에
어떻게 처리하느냐에 따라 정책 위반이 될 수도 있다.
보통 전면광고의 경우 로딩하는 시간이 있어서 사용자가 어떤 동작을 하는 과정에
광고를 호출하게 되는데
사용자가 이미지 해당 정보를 보고 있는데
갑자기 광고가 뒤 늦게 나타는 경험을 해봤을 것이다.
이거 광고 정책 위반사례에 해당이 된다.
그래서 나는 이 문제를 처리하기 위해
전면광고 코드를 미리 불러오지않고
화면 전환이나 특정 버튼 등을 클릭했을 때
프로그레스 바(로딩바)를 추가 한 후
광고 로딩이 완료되면
광고를 호출 후 다이얼로그창을 닫도록 구현하였다.
그리고 광고창을 닫거나
광고 로드에 실패했을 때 사용자가 클릭한 정보를 보여주는 액티비티 창을 호출하도록 코드를 변경하였다.
SDK 버전에 따라 전면광고 구현 방법은 다르다.
다음 예시코드는 sdk 버전은 아래와 같다.
implementation 'com.google.firebase:firebase-core:17.2.1'
implementation 'com.google.firebase:firebase-ads:18.3.0'
MobileAds.initialize(MainActivity.this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) { }
});
mInterstitialAd = new InterstitialAd(MainActivity.this);
mInterstitialAd.setAdUnitId(getString(R.string.banner_fullscreen_id));
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
super.onAdLoaded();
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
@Override
public void onAdClosed() {
super.onAdClosed();
if (asyncDialog != null && asyncDialog.isShowing() && !MainActivity.this.isFinishing()) { //java.lang.IllegalArgumentException: View not attached to window manager 오류 방지
asyncDialog.dismiss();
}
callHistoryFragment();
}
@Override
public void onAdFailedToLoad(int i) {
super.onAdFailedToLoad(i);
if (asyncDialog != null && asyncDialog.isShowing() && !MainActivity.this.isFinishing()) { //java.lang.IllegalArgumentException: View not attached to window manager 오류 방지
asyncDialog.dismiss();
}
callHistoryFragment();
}
});
Google Play의 더 나은 광고 경험 정책 이해하기
Google Play의 광고 정책을 준수하는 한, 앱이 로드된 후 정적 전면 광고를 게재할 수 있습니다. 앱에 스플래시 화면이 없다면 앱 홈 화면이 로드될 때까지 기다린 후 광고를 표시하세요.
모바일 앱 광고 정책 확인하기
예정된 Google Play 및 Android 정책 기한
2022년 9월까지 처리해야하는 정책 | 2022년 11월까지 처리해야하는 정책 |
패키지 설치 요청 권한 | 대상 API 수준 요구사항 정책 |
더 나은 광고 경험 정책 | |
정기 결제 정책 업데이트 |
[REFERENCE]