首页 文章

Admob Interstitial在页面(活动)加载后启动

提问于
浏览
0

我按照以下链接实施了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();
        }
    }

}

2 回答

  • 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()代码

  • 0

    将此代码放在第一个活动中,并将 showInterstitial(); 放入正在启动第二个活动的项目的OnClick中 . showInterstitial() 应该是在OnClick中完成的第一件事,然后启动下一个活动 .

    然后你可以摆脱整个部分:

    mInterstitialAd.setAdListener(new AdListener() {
            public void onAdLoaded() {
                showInterstitial();
            }
        });
    

    广告将在该背景中加载,因为您要在onCreate中加载广告(就像您应该的那样),并且在用户点击该项目以移至下一个活动时,广告应该已准备就绪 . 如果尚未准备就绪,则根本无法显示 .

相关问题