프로그래밍/Android

안드로이드 Admob 종료 및 뒤로가기시 전면광고 추가하기

Lou Park 2019. 4. 24. 15:47

안드로이드 앱에 Admob 전면 광고를 추가할 때는 Admob 광고 정책을 잘 지켜야한다.

광고 정책을 피해서 좋은 타이밍에 전면광고를 추가하는 방법으로는 여러가지가 있는데,

그중에서도 뒤로가기/백키(Back key) 를 눌렀을때 전면광고를 보여주는 구현을 해볼 것이다.


* 종료 및 뒤로가기 시 Admob 전면광고를 붙이는 일은 현재 광고정책에 맞지않습니다. (2020.05.17 수정)

1. 전면광고 초기화

우선 이렇게 생긴 MainActivity에 전면광고를 초기화 한다.

public class MainActivity extends AppCompatActivity {
    private InterstitialAd interstitialAd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);
        // 전면광고 초기화
        AdRequest adRequest = new AdRequest.Builder().build();
        interstitialAd = new InterstitialAd(context);
        interstitialAd.setAdUnitId("ca-app-pub-67001845146665xx/88509xxxxx"); // * 자신의 전면광고 단위 아이디
        interstitialAd.loadAd(adRequest);
    }
}

2. onBackPressed() 오버라이딩

그리고는 MainActivity내에 onBackPressed() 메소드를 오버라이딩해서 전면광고를 보여줄 수 있도록 구현한다.
웹뷰가 메인으로 있는 액티비티 내에서는 back key를 누르면 웹 내의 뒤로가기가 작동할 수 있도록 해주는 것도 잊지말자!
안그러면 뒤로가기 할때마다 전면광고가 보여지는 끔찍한일이 생길지도...ㅎㅎ

    @Override
    public void onBackPressed() {
        // 혹시 웹 뷰를 사용하는 액티비티일 경우 웹뷰 뒤로가기를 구현해준다.
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            if (interstitialAd.isLoaded()) {
                interstitialAd.show();
                interstitialAd.setAdListener(new AdListener() {
                    @Override
                    public void onAdClosed() {
                        // 사용자가 광고를 닫으면 뒤로가기 이벤트를 발생시킨다.
                        finish();
                    }
                });
            } else {
                super.onBackPressed();
            }
        }
    }

3. 광고가 잘 나오는지 체크!

이제 앱을 실행시켜 뒤로가기를 눌러본다음, 잘 구현이 되었는지 체크해주면된다.
+ 추가로 혹시 뒤로가기 버튼을 따로 구현했다면, 해당 버튼의 onClickListener 내에 onBackPressed(); 를 써주면된다.