【问题标题】:Admob Interstitial launches after page(activity) loadAdmob 插页式广告在页面(活动)加载后启动
【发布时间】:2017-05-20 04:02:12
【问题描述】:

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

}

【问题讨论】:

    标签: android admob


    【解决方案1】:

    您需要将广告加载和广告展示分开,以避免在不必要的时间显示广告。

    您所做的是在您真正想要展示广告的时间加载广告

    首先在活动开始时加载广告:

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

    【讨论】:

      【解决方案2】:

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

      然后您可以删除整个部分:

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

      广告将在该背景下加载,因为您正在 onCreate 中加载广告(就像您应该做的那样),并且在用户单击项目以移动到下一个活动时,广告应该已经准备就绪。如果它还没有准备好,它根本不会显示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多