2017-03-31 104 views
0

我创建了一个带有GridView Adapter的音板(因此没有机会在声音按钮上设置插页式广告) 我也有一个带有三个选项卡的导航栏,因此我决定在第二个片段上设置插页式广告,如下所示:如何在这种情况下正确显示插页式广告?

public class SecondFragment extends Fragment { 
    private InterstitialAd mInterstitialAd; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView=inflater.inflate(R.layout.second_layout,container,false); 

     final AdRequest adRequest = new AdRequest.Builder().build(); 
     mInterstitialAd = new InterstitialAd(getActivity()); 
     mInterstitialAd.setAdUnitId("MYID"); 
     mInterstitialAd.loadAd(adRequest); 
     mInterstitialAd.setAdListener(new AdListener() { 
      @Override 
      public void onAdLoaded() { 
       super.onAdLoaded(); 
       if(mInterstitialAd.isLoaded()){ 
        mInterstitialAd.show(); 
       } 

      } 

      @Override 
      public void onAdClosed() { 
      } 
     }); 


     return rootView; 
    } 

但是问题是广告弹出时间延迟了3秒,这就是为什么我从AdMob收到一封邮件,因此我必须正确设置插页式广告,而不是像以前那样。

所以我的问题是,你会在这种情况下做什么?你会在哪里设置InterstitialAd?

这是我的应用程序,3个片段充满声音的按钮:https://gyazo.com/1ecd359b38fcfe0606bb3e74b684f16e

回答

0

从你的代码你给请求加载广告,然后在加载广告,那么你显示广告。

加载广告总是有延迟,所以我的建议是加载您的广告以前是背景,不显示该广告。每当您只想展示广告时,请检查您的插页式广告是否已准备好展示,如果是,请展示。

立即在背景中拨打电话createInterstitial(),之后每当您要显示插页式广告时,请致电showInterstitial()

public void crateInterstitial(){ 

    interstitialAd = new InterstitialAd(this.activity); 
    interstitialAd.setAdUnitId(AD_UNIT_ID_INTERSTITIAL); 
    interstitialAd.setAdListener(new AdListener() { 
     @Override 
     public void onAdLoaded() { 
      // not call show interstitial ad from here    
     } 

     @Override 
     public void onAdClosed() { 
       loadInterstitial(); 
     } 
     }); 
    loadInterstitial(); 
} 

public void loadInterstitial(){ 

    AdRequest interstitialRequest = new AdRequest.Builder().build(); 
    interstitialAd.loadAd(interstitialRequest); 
} 

public void showInterstitial(){ 
    if (interstitialAd.isLoaded()) 
      interstitialAd.show();       
    else 
     loadInterstitial();              
} 
+0

请解释我在哪里,我不得不说“createInterstitial()”,“loadInterstitial()”和“showInterstitial” beceause我不明白它在哪里做。 –

+0

立即调用crateInterstitial(),只要您想要显示插页式广告,只需调用showInterstitial()方法即可。 – Aryan