我使用gridview适配器创建了一个音板(因此无法在声音按钮上设置插页式广告) 我还有一个带有三个标签的导航栏,所以我决定在第二个片段上设置插页式广告,如下所示:
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 :(得分: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();
}