首页 文章

插页式广告和 Banner 广告无法加载

提问于
浏览
0

我一直在研究这段代码,显然插页式广告和 Banner 广告无法加载 .

以下是用于创建 Banner 广告和添加新生成的广告单元的代码 . 也是adlistener支持的插页式广告代码,以查看广告是否有效 .

//Ads ----------------
    // Create the adView
    RelativeLayout layout = new RelativeLayout(this);
    layout.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

    //<!-- Ads Using Google Play Services SDK -->
    adView = new AdView(this);
    adView.setAdSize(AdSize.SMART_BANNER);
    adView.setAdUnitId(AD_UNIT_ID);

    // Add the adView to it
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

    adView.setLayoutParams(params);

    layout.addView(mGLSurfaceView);
    layout.addView(adView);

    setContentView(layout);
    //New AdRequest 
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
    //-----------------------------------------------------Interstitial Add
    // Create an Interstitial ad.

    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId(AD_INTERSTITIAL_UNIT_ID);
    interstitialAd.loadAd(new AdRequest.Builder().build());
    interstitialAd.setAdListener(new AdListener() {
          @Override
          public void onAdLoaded() {
            interstitialAd.show();
          }

          @Override
          public void onAdFailedToLoad(int errorCode) {
              Toast.makeText(getApplicationContext(), "Interstitial Ads loading failed", Toast.LENGTH_SHORT).show();
          }
    });

     // Load the interstitial ad.
    showInterstitialAds();

public void showInterstitialAds()
{
    runOnUiThread(new Runnable() {
        public void run() {
             AdRequest interstitialAdRequest = new AdRequest.Builder().build();
             interstitialAd.loadAd(interstitialAdRequest);
        }
    });
}

在应用程序中,我得到的是Toast消息,声明插页式广告不起作用 . 即使 Banner 广告也不起作用 . 在logcat上,我收到不同的消息:我上次得到:

01-17 16:54:05.765: I/Ads(1136): No fill from ad server.
01-17 16:54:05.769: I/Ads(1136): Scheduling ad refresh 60000 milliseconds from now.
01-17 16:54:05.769: W/Ads(1136): Failed to load ad: 3

这就是:

01-17 16:52:02.945: I/Ads(1136): Starting ad request.
01-17 16:52:02.945: I/Ads(1136): Use AdRequest.Builder.addTestDevice("A55B0AA295150C0583B3FADA0B02054B") to get test ads on this device.

我在showInterstitialAds中尝试了上述内容,但我一直收到相同的错误,广告没有显示 .

此外,最有趣的是:

There was a problem getting an ad response. ErrorCode: 2

在errocode上有不同的数字:0,2,3 . 我不确定它是什么意思,因为我是整个Android世界的新手(几个月前我刚刚开始编码 . )

1 回答

  • 1

    由于没有可用的广告,因此未加载 Banner 广告 . 这就是“广告服务器无法填充”的含义 . 偶尔会发生这种情况,尤其是当您的流量较低时 .

    要测试您应该配置AdView以显示测试广告 . 见https://developer.android.com/reference/com/google/android/gms/ads/AdRequest.Builder.html#addTestDevice(java.lang.String)

    很难说你的插页式广告出了什么问题 . 您使用的是正确的AdUnitId吗?

    也永远不要从 onAdLoaded() 调用 interstitial#show() . 它提供了非常糟糕的用户体验,可能会禁止您的帐户 .

    相反,您应该从应用中的自然断点调用 interstial#show() ,就像在游戏关卡结束时一样 .

相关问题