广告请求成功,但由于缺少广告资源而未返回任何广告

时间:2014-01-16 07:28:05

标签: android admob

我是AdMob的新人。起初我正在尝试使用不同类型的广告创建测试应用。 我使用真正的ad_unit_id和nexus 4进行测试。

我为所有活动使用1个布局xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:id="@+id/empty_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
</LinearLayout>

当我使用横幅广告制作简单的活动时,它的工作正常。活动代码:

public class AdBannerActivity extends Activity {

    private AdView adView;

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

        adView = new AdView(this, AdSize.SMART_BANNER, getString(R.string.adUnitId));
        adView.setAdListener(this);

        LinearLayout layout = (LinearLayout) findViewById(R.id.empty_layout);

        layout.addView(adView);

        adView.loadAd(new AdRequest());
    }

    @Override
    public void onDestroy() {
        if (adView != null) {
            adView.destroy();
        }
        super.onDestroy();
    }
}

当我尝试使用全屏广告制作活动时,我收到错误消息:

Ad request successful, but no ad returned due to lack of ad inventory.

活动代码:

public class AdInterstitialActivity extends Activity implements AdListener {

    private InterstitialAd interstitial;

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

        interstitial = new InterstitialAd(this, getString(R.string.adUnitId));

        interstitial.setAdListener(this);

        AdRequest adRequest = new AdRequest();

        interstitial.loadAd(adRequest);
    }

    @Override
    public void onReceiveAd(Ad ad) {
        if (ad == interstitial) {
            interstitial.show();
        }
    }

    @Override
    public void onDismissScreen(Ad ad) {
    }

    @Override
    public void onFailedToReceiveAd(Ad ad, ErrorCode error) {
        Log.e("AdTest", "Error code: " + error);
    }

    @Override
    public void onLeaveApplication(Ad ad) {
    }

    @Override
    public void onPresentScreen(Ad ad) {
    }
}

我做错了什么? 如何解决这个问题?

解决方案:在AdMob帐户中为插页式广告制作新的ad_unit_id。

1 个答案:

答案 0 :(得分:6)

如果您有错误,那么您的代码是正确的。 Admob没有为您的应用展示任何广告(您所在的国家/地区,您的广告类型是决定因素)。

如果您想在测试模式下测试广告的行为,请看一下此链接:

https://developers.google.com/mobile-ads-sdk/docs/admob/additional-controls#testmode

编辑:如果您刚刚创建了自己的Admob帐户,可能需要一些时间和一些要求才能投放第一批广告。 我通过使用横幅的自定义大小看到人们也有这个错误,所以一定要检查:

https://developers.google.com/mobile-ads-sdk/docs/admob/intermediate#play