NativeExpressAdView不使用原生广告单元ID,但可以使用横幅单元广告

时间:2016-11-18 07:05:33

标签: java android

我已将admob集成到我的项目中,并根据要求我使用 NativeExpressAdView 来显示原生广告。但它不适用于本机的单元ID。但是当我在 NativeExpressAdView 中添加banner的单元ID时,它的工作发现如下:

XML代码:

<com.google.android.gms.ads.NativeExpressAdView
                    android:id="@+id/adView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    ads:adUnitId="@string/admob_id_banner"
                    ads:adSize="FULL_WIDTHx220
</com.google.android.gms.ads.NativeExpressAdView>

Java代码:

AdRequest adRequest = new AdRequest.Builder()
//.addTestDevice("6D446467FCE9EB26F0F478F9B93230AC")
.build();
adView.setAdListener(new AdListener() {

    @Override
    public void onAdClosed() {
        super.onAdClosed();
    }

    @Override
    public void onAdFailedToLoad(int i) {
        super.onAdFailedToLoad(i);
        String mErrorCode = "default";
        switch (i){
            case AdRequest.ERROR_CODE_INTERNAL_ERROR:
            mErrorCode = "internal error";
            break;
            case AdRequest.ERROR_CODE_INVALID_REQUEST:
            mErrorCode = "invalid request";
            break;
            case AdRequest.ERROR_CODE_NETWORK_ERROR:
            mErrorCode = "network error";
            break;
            case AdRequest.ERROR_CODE_NO_FILL:
            mErrorCode = "no fill";
            break;
        }
        Toast.makeText(HomeActivity.this, String.format("onAdFailedToLoad(%S)",mErrorCode), Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAdLeftApplication() {
        super.onAdLeftApplication();
    }

    @Override
    public void onAdOpened() {
        super.onAdOpened();
    }

    @Override
    public void onAdLoaded() {
        super.onAdLoaded();
    }
});
adView.loadAd(adRequest);

当我使用Native unit id时,它总是显示“内部错误”。但如果我在 NativeExpressAdView 中使用横幅ID,则效果很好。

这是在 NativeExpressAdView 中使用横幅广告单元ID的正确解决方案吗?这可能是什么原因?

0 个答案:

没有答案