2014-09-15 5 views
1

Google 검색을 사용하여 삽입 광고를 표시하는 Android 앱이 있습니다. admob 네트워크. admob에 대한 좋은 점은 활동이 독립적이라는 것입니다. 내 MainActivity에 광고를로드 할 수 있으며 admob이 광고를 준비 할 때마다 MainActivity에 없을 때도 표시됩니다. 이미 광고를 표시하려면 isLoaded() 방법을 사용하고, 원하는만큼 시간의 90 %를 이미 사용하고 있습니다.모든 삽입 광고를 취소/일시 중지/중지

그러나 나머지 10 %는 그렇지 않습니다. 광고가 게임의 품질을 떨어 뜨리기 때문에 자유롭게 움직여야하는 특정 활동이 있습니다. 휴대 전화가 느리거나 연결 속도가 느리고 광고를로드하는 데 약간의 시간이 걸리면 광고가 잘못된 활동으로 나올 수 있습니다.

로드 된 광고를 닫고 아직 표시되지 않은 광고를로드하는 기능이 있습니까? 이것은 두 가지 활동에만 적용되며 다른 활동은 그대로 남습니다.

Ads.loadAdMobInterstitial(MainActivity.this); 

이것은 광고 처리 내 클래스 :

은 나의 주요 활동에 나는 전화

public class Ads { 

    public static InterstitialAd loadAdMobInterstitial(final Context context) { 

      int admobUnitId = string.admob_ad_unit_id; 

      final InterstitialAd iAd = new InterstitialAd(context); 
      iAd.setAdUnitId(context.getString(admobUnitId)); 

      iAd.setAdListener(new AdListener() { 
       @Override 
       public void onAdLoaded() { 
         iAd.show(); 
       } 

      });  

      AdRequest adRequest = new AdRequest.Builder() 
      .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) 
      .build(); 

      iAd.loadAd(adRequest); 

      return iAd; 
     } 
} 

답변

1

확인을, 무엇보다도 먼저, 당신이해야 onAdLoaded()에서 NEVER 전화 interstitialAd.show() . 당신이 지적했듯이 사용자 경험이 좋지 않습니다. AdMob 계정이 금지 될 수도 있습니다.

정말로하고 싶은 것은 기존 활동을 조각으로 리팩터링하고 MainActivity 내에서 모두 호스트하는 것입니다. 이렇게하면 삽입 광고를 켜고 끌 때 필요한 제어 기능을 사용할 수 있습니다.

그리고 onAdLoaded()이 아닌 앱의 자연 중단 점에서 삽입 광고를 보여야합니다.

+0

아니라 지금 리팩토링 활동이 옵션을 선택하지 않습니다, 너무 많은 시간이 소요 될 것입니다. 어쨌든, 앱 내 어디에서나 광고를 보여주는 것은 두 가지 활동 외에는 괜찮습니까? 그렇게 할 방법이 없습니까? –

+0

당신이하지 않으려 고하는 방식은 아닙니다. – William

0

삽입 광고는 백그라운드에서로드하지만 onAdLoaded() 메소드는 사용하지 마세요. 당신이 당신의 틈새를 표시하려는 앱의 시점에서 때

, 이것을 사용 :

if (admobInterstitial.isLoaded()) { 
    admobInterstitial.show(); 
} 

것은이로드 될 경우에만에 삽입 광고를 표시합니다. 그렇지 않으면 아무 일도 일어나지 않을 것입니다.

0

액티비티 또는 프래그먼트의/onResume 메소드에 부울 플래그를 추가 할 수 있습니다. 그렇다면이 같은 adLoaded 이벤트에서 확인하십시오 : 조각에

interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
      super.onAdLoaded(); 
      if(!paused) { 
       interstitial.show(); 
      } 
     } 
    }); 
관련 문제