PHP

[admob, 안드로이드] 특정 확률로 "전면광고" 나오게끔 구현하기

미스털이 사용자 2023. 8. 4. 19:59
반응형

 

이번엔 전면광고를 로딩할 계획이다.

 

1) admob에서 전면광고를 신청한다.

대표사진 삭제

사진 설명을 입력하세요.

대표사진 삭제

사진 설명을 입력하세요.

대표사진 삭제

사진 설명을 입력하세요.

 

2) 생성된 아이디를 기억해두고 초기화/로딩을 위한 소스를 만들어준다.

2-1) 초기화 메소드

public void loadAd() {
        String AD_UNIT_ID = "ca-app-pub-XXXXXXXXXXXXXXXXX";
        AdRequest adRequest = new AdRequest.Builder().build();
        InterstitialAd.load(
                this,
                AD_UNIT_ID,
                adRequest,
                new InterstitialAdLoadCallback() {
                    @Override
                    public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                        // The mInterstitialAd reference will be null until
                        // an ad is loaded.
                        DetailActivity.this.interstitialAd = interstitialAd;
                        //Log.i(TAG, "onAdLoaded");
                        //Toast.makeText(DetailActivity.this, "onAdLoaded()", Toast.LENGTH_SHORT).show();
                        interstitialAd.setFullScreenContentCallback(
                                new FullScreenContentCallback() {
                                    @Override
                                    public void onAdDismissedFullScreenContent() {
                                        // Called when fullscreen content is dismissed.
                                        // Make sure to set your reference to null so you don't
                                        // show it a second time.
                                        DetailActivity.this.interstitialAd = null;
                                        Log.d("TAG", "The ad was dismissed.");
                                    }

                                    @Override
                                    public void onAdFailedToShowFullScreenContent(AdError adError) {
                                        // Called when fullscreen content failed to show.
                                        // Make sure to set your reference to null so you don't
                                        // show it a second time.
                                        DetailActivity.this.interstitialAd = null;
                                        Log.d("TAG", "The ad failed to show.");
                                    }

                                    @Override
                                    public void onAdShowedFullScreenContent() {
                                        // Called when fullscreen content is shown.
                                        Log.d("TAG", "The ad was shown.");
                                    }
                                });

                        showInterstitial(); //////////실질적으로 보여주는 부분
                    }

                    @Override
                    public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                        // Handle the error
                        Log.i(TAG, loadAdError.getMessage());
                        interstitialAd = null;

                        String error =
                                String.format(
                                        "domain: %s, code: %d, message: %s",
                                        loadAdError.getDomain(), loadAdError.getCode(), loadAdError.getMessage());
                        /*
                        Toast.makeText(
                                        DetailActivity.this, "onAdFailedToLoad() with error: " + error, Toast.LENGTH_SHORT)
                                .show();
                                
                        */
                    }
                });
    }
 

 

2-2) 초기화 한 것을 나타내는 메소드

private void showInterstitial() {
        // Show the ad if it's ready. Otherwise toast and restart the game.
        if (interstitialAd != null) {
            interstitialAd.show(this);
        } else {
            //Toast.makeText(this, "Ad did not load", Toast.LENGTH_SHORT).show();
        }
    }
 

위의 메소드는 액티비티의 onCreate()에서 호출해주면 된다.

 

2-3) 특정확률 적용해 호출해주기

/////////////이곳에 30% 확률 넣어주기
        int iVal = (int) (Math.random() * 10);
        if(3 <= iVal && iVal <= 5) {
            loadAd();
        }
 
 

Math.random은 0~1의 소수를 반환한다. 이를 이용해 3,4,5 즉 3/10(30%)의 확률로 loadAd()메소드를 호출하게끔 구현한다.

 

반응형