我按照以下链接
实施了Admob插页式广告http://www.androidhive.info/2016/02/android-how-to-integrate-google-admob-in-your-app/
此实施的问题在于活动之间未显示插页式广告。点击列表后,它将转到下一个活动,并在1-2秒后显示广告。这违反了Admob政策。
那么我如何以活动之间的广告显示方式实现代码。
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.InterstitialAd;
public class SecondActivity extends AppCompatActivity {
private String TAG = SecondActivity.class.getSimpleName();
InterstitialAd mInterstitialAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
mInterstitialAd = new InterstitialAd(this);
// set the ad unit ID
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() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
}
答案 0 :(得分:0)
将此代码放在第一个活动中,并将showInterstitial();
放入正在启动第二个活动的项目的OnClick中。 showInterstitial()
应该是在OnClick中完成的第一件事,然后启动下一个活动。
然后你可以摆脱整个部分:
mInterstitialAd.setAdListener(new AdListener() {
public void onAdLoaded() {
showInterstitial();
}
});
广告将在该背景中加载,因为您要在onCreate中加载广告(就像您应该的那样),并且在用户点击该项目以移至下一个活动时广告应该已准备就绪。如果还没有准备好,它就不会显示。
答案 1 :(得分:0)
您需要将广告加载和广告展示分开,以避免在不需要的时间展示广告。
您正在做的是在您真正想要展示广告时加载广告
首先在活动开始时加载广告:
interstitial = new InterstitialAd(this);
interstitial.setAdUnitId("ID");
AdRequest adRequest1 = new AdRequest.Builder().build();
interstitial.loadAd(adRequest1);
当您想要显示广告时 - 检查可用性并显示其是否已加载:
if (interstitial.isLoaded()) {
interstitial.show();
这样广告就会立即显示
我建议您将加载代码放在firstActivity中,当用户单击转到SecondActivity时,运行interstitial.show()代码