2016-11-06 4 views
1

Android 앱을 개발했으며 Google의 adMob 삽입 광고를 통합했습니다. 문제는 에뮬레이터에서 광고가 성공적으로 표시되지만 내 기기에는 광고가 표시되지 않는다는 것입니다. AdMob에서 만든 광고 단위 ID를 생성하고 앱을 adMob에 연결했습니다. 이제 showInterstitial() 함수기기에 삽입 광고가 표시되지 않는 이유

InterstitialAd mInterstitialAd; 

mInterstitialAd = new InterstitialAd(this); 
     mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen)); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     // Load ads into Interstitial Ads 
     mInterstitialAd.loadAd(adRequest); 
     mInterstitialAd.setAdListener(new AdListener() { 
      public void onAdLoaded() { 
       showInterstitial(); 
      } 
     }); 

:

private void showInterstitial() { 
    Random r = new Random(); 
    if (mInterstitialAd.isLoaded()) { 
     new android.os.Handler().postDelayed(
       new Runnable() { 
        public void run() { 

         mInterstitialAd.show(); 
         AdRequest adRequest = new AdRequest.Builder().build(); 
         mInterstitialAd.loadAd(adRequest); 
        } 
       }, 
       r.nextInt(7000 - 5000) + 5000); 

    } 
} 

내가 임의의 시간 제한을 추가하고 광고가로드 될 때 표시됩니다

여기 내 코드입니다.

compile 'com.google.android.gms:play-services-ads:9.8.0' 

NB를 :

내 Gradle을 파일에서

나는 다음과 같은 추가. 앱에 다른 배너 광고가 있습니다.

enter image description here

삽입 광고가 기기에 표시되지 않는 이유 어떤 생각을 가지고 하나 : 그것은 여기 잘 작동 에뮬레이터에

은 스크린 샷입니까? . 고맙습니다.

+0

어떤 오류 코드가 표시됩니까? Logcat 출력을 확인하십시오. – earthw0rmjim

답변

2

showInterstitial() 기능을 변경했지만 문제가 해결되었습니다. 문제는 광고 로딩과 관련이 있습니다. 여기에 제 수정이 있습니다 :

@Override 
    public void onResume() { 
     // Start or resume the game. 
     super.onResume(); 
     showInterstitial(); 
    } 
    @Override 
    protected void onStart() { 
     super.onStart(); 
     showInterstitial(); 
    } 

활동이 시작되거나 다시 시작될 때 광고를 표시합니다. 광고를 표시하려면 이벤트가 필요합니다.

//Interstitial 
      private InterstitialAd mInterstitialAd; 
      mInterstitialAd = new InterstitialAd(this); 
      mInterstitialAd.setAdUnitId(getString(R.string.banner_ad_unit_interstitial)); 
      AdRequest adRequestInterstitial = new AdRequest.Builder().addTestDevice("deviceid").build(); 
      mInterstitialAd.loadAd(adRequestInterstitial); 

      mInterstitialAd.setAdListener(new AdListener() { 
       @Override 
       public void onAdClosed() { 

       } 

       @Override 
       public void onAdLoaded() { 
        mAdIsLoading = false; 
        showInterstitial(); 
       } 

       @Override 
       public void onAdFailedToLoad(int errorCode) { 
        mAdIsLoading = false; 
       } 
      }); 

이 내 결과 내 삼성 장치에 :

enter image description here

내가 그 문제였다 생각

내가 삽입 광고를 선언하고 내 showInterstitial() 기능 방법이다.

+0

당신은 생명의 은인 .. !! : P 내가 벌 수 있도록 도와 주셔서 감사합니다. 권자 –

0

광고 요청을 생성하는 동안 'addTestDevice ("")'메소드를 사용하십시오.

AdRequest adRequest = new AdRequest.Builder().addTestDevice("deviceid").build(); 

deviceId는 새 광고를 만든 후 logcat 출력을 보면 알 수 있습니다. 로그에서 "ads"태그를 찾으십시오. 광고를 요청할 때 addTestDevice ("some value")가 표시됩니다.

1
AdRequest adRequest = new AdRequest.Builder().addTestDevice("deviceid").build(); 

테스트 장치로 사용하십시오.