插页式广告和横幅广告加载失败

Interstitial and banner ads fail to load

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

下面是创建横幅广告视图和添加新生成的广告单元的代码。还有广告侦听器支持的插页式广告代码,以查看广告是否有效..

//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 消息。甚至横幅广告也不起作用。 在 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

错误代码上的数字不同:0、2、3。我不确定这意味着什么,因为我是整个 android 世界的新手(我几个月前才开始编码。)

横幅广告未加载,因为没有可用的广告。这就是 "No fill from ad server means"。它偶尔会发生,尤其是当您的流量较低时。

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

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

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

相反,您应该从应用中的自然断点调用 interstial#show(),例如在游戏关卡结束时。