【问题标题】:Ad request successful, but no ad returned due to lack of ad inventory广告请求成功,但由于缺少广告资源而没有返回广告
【发布时间】:2014-01-17 15:18:27
【问题描述】:

我是 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。

【问题讨论】:

    标签: android admob


    【解决方案1】:

    如果您有该错误,那么您的代码是正确的。 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

    【讨论】:

    • 测试模式工作正常,但我需要在这个测试应用中展示一个真实的广告。
    • @Drafff ,请等待 1-2 天,真正的 AdMob 横幅会显示。这是我的解决方案。
    • 我已经等了 2 个月了,但什么也没发生。此外,AdMob 支持真的很垃圾,很难联系那里的人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多