【问题标题】:Android Interstitial Ad not loadingAndroid 插页式广告未加载
【发布时间】:2018-03-23 10:28:19
【问题描述】:

我正在尝试在平板电脑上加载带有测试广告 ID 的插页式广告。输出广告未显示,但我收到“onAdLoaded”回调。

这是我的代码:-

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
 setContentView(R.layout.ad_activity);

 mPublisherInterstitialAd = new PublisherInterstitialAd(this);
 mPublisherInterstitialAd.setAdUnitId("/6499/example/interstitial");
 mPublisherInterstitialAd.loadAd(newPublisherAdRequest.Builder().build());

    mPublisherInterstitialAd.setAdListener(new AdListener(){
        @Override
        public void onAdLoaded() {

            Log.d("AD ","LOADED");
        }

        @Override
        public void onAdFailedToLoad(int i) {

            Log.d("AD ","FAILED");
        }
    });
}

【问题讨论】:

  • 你刚刚创建了广告吗?,logcat 有什么错误吗?
  • 这是我的日志..
  • /6499/example/interstitial是什么广告id?,使用这个广告idca-app-pub-3940256099942544/1033173712
  • 插页式广告需要时间准备。在你做了什么之后,你需要调用 mPublisherInterstitialAd.show()。见developers.google.com/admob/android/interstitial
  • 这些是我的日志开始广告请求。找不到方法 android.webkit.WebSettings.setMixedContentMode,引用自方法 com.google.android.gms.ads.internal.webview.m.

标签: android admob interstitial


【解决方案1】:

试试这个

public void inrequestadd() {
    mInterstitial = new InterstitialAd(MainActivity.this);
    mInterstitial.setAdUnitId("Your ID");
    mInterstitial.loadAd(new AdRequest.Builder().build());
    mInterstitial.setAdListener(new AdListener() {

        @Override
        public void onAdClosed() {
            super.onAdClosed();

        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            super.onAdFailedToLoad(errorCode);

        }

        @Override
        public void onAdLoaded() {
            super.onAdLoaded();
            if (mInterstitial.isLoaded()) {
                mInterstitial.show();
            }
        }

    });
}

【讨论】:

  • 那么,和问题中的代码有什么区别??
  • @SiddharthPatel,同意
  • 我猜他只是在其他地方调用它,但它仍然不起作用,因为他只是创建它并且没有使用广告的调试版本......
  • 可能没有调用那个方法。
  • 我已经实现了上面的函数,我也得到了回调“onAdLoaded”。但我的问题是,它没有显示在屏幕上。
【解决方案2】:

我是这样处理这种代码的

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initAds();
}

private void initAds() {
      MobileAds.initialize(this, "your app id");
      mInterstitialAd = new InterstitialAd(this);                         
      mInterstitialAd.setAdUnitId("your ad unit ID"); 
      mInterstitialAd.loadAd(new AdRequest.Builder().build());

      mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            // Load the next interstitial.
            mInterstitialAd.loadAd(new AdRequest.Builder().build());
        }

      });
}

也在清单文件中:

    <meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="your app id"/>

接下来,根据您的应用程序的逻辑,您将拥有如下内容:

if (mInterstitialAd.isLoaded()) {
   mInterstitialAd.show();
} else {
   System.out.println("The interstitial wasn't loaded yet. Do some other action");
}

【讨论】:

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