Android AdRequest仅返回onAdFailedToLoad AdRequest.ERROR_CODE_NO_FILL

时间:2015-06-10 06:26:41

标签: android admob

我的应用程序已在Google Play商店停留了一个月,一切正常。两天前,我将它添加到“为家庭设计”类别中。我收到了Google团队的接受和祝贺。因此,我的插页式广告已停止展示。我收到了AdRequest.ERROR_CODE_NO_FILL

InterstitialAd interstitialAd;   
Bundle extras = new Bundle();
extras.putBoolean("is_designed_for_families", true); 

AdRequest adRequest = new AdRequest.Builder()
        .addNetworkExtrasBundle(AdMobAdapter.class, extras)
        .build();
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId(InterstitialSample.AD_UNIT_ID);
interstitialAd.loadAd(adRequest);
interstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            Log.d("Tim", "OK");
        }

        @Override
        public void onAdFailedToLoad(int errorCode) {
            String message = String.format("onAdFailedToLoad (%s)", InterstitialSample.getErrorReason(errorCode));
            Log.d("Tim", message);
        }
    });

我没有更改包名。另外,我尝试更改AD_UNIT_ID但没有成功。

4 个答案:

答案 0 :(得分:3)

您的代码似乎没有任何问题。我认为你正在接受真正的#34;没有填充"响应。

被视为儿童和家庭友好的广告是更广泛的广告池的一个子集。如果您今天展示广告,在选择加入“为家庭计划”计划后,您可能会发现填充展示次数减少且收入减少。我们正在努力增加有资格投放到DFF应用的广告池。

答案 1 :(得分:1)

这不是一个错误。只有少数广告具有“适合5岁儿童”或“8岁儿童”的特征。从“为家庭设计”类别中移除您的应用,以展示广告或等到有类似特征的广告。

答案 2 :(得分:0)

我遇到与常规横幅广告类似的问题: 4月17日,我将应用程序添加到新的“Designed for Families”程序中,并设置了以下设置: 家庭类别:教育,年龄组:5岁及以上Under,6-8岁,展示广告:是的 我检查了要求和广告政策 - 我的应用是合规的。 该应用已成功获得Google开发团队的批准。

在Admob中打开案例后,他们要求我在源代码中添加将“is_designed_for_families”设置为true的代码,并为提供给子受众群体的广告请求调用tagForChildDirectedTreatment()方法。看到“is_designed_for_families”和tagForChildDirectedTreatment()设置为true后,AdMob将为该广告请求返回Designed for Families兼容广告。 我做到了,但没有任何变化 - 仍然收到“广告服务器没有填充。”

自4月以来,我的应用程序接近ZERO广告将近两个月。 似乎儿童友好广告池是空的。 我还在等待问题得到解决。

我认为问题在于Admob根本没有在广告活动中包含“Designed for Families”类别! 我亲自检查过,在设置广告活动时没有看到这个选项!

答案 3 :(得分:0)

我想想这个

/**
 * Called when leaving the activity
 */
@Override
public void onPause() {
    if (adView != null) {
        adView.pause();
    }
    super.onPause();
}

/**
 * Called when returning to the activity
 */
@Override
public void onResume() {
    super.onResume();
    if (adView != null) {
        adView.resume();
    }
}

/**
 * Called before the activity is destroyed
 */
@Override
public void onDestroy() {
    if (adView != null) {
        adView.destroy();
    }
    super.onDestroy();
}