Java NativeExpressAdView不使用本机广告单元id,但可以使用横幅广告单元id
我已经在我的项目中集成了admob,根据要求,我正在使用NativeExpressAdView来显示本地广告。但是它不适用于本地的单位ID。但是当我在NativeExpressAdView中添加banner的单位ID时,它可以工作,如下所示: XML代码:Java NativeExpressAdView不使用本机广告单元id,但可以使用横幅广告单元id,java,android,Java,Android,我已经在我的项目中集成了admob,根据要求,我正在使用NativeExpressAdView来显示本地广告。但是它不适用于本地的单位ID。但是当我在NativeExpressAdView中添加banner的单位ID时,它可以工作,如下所示: XML代码: <com.google.android.gms.ads.NativeExpressAdView android:id="@+id/adView" andro
<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>
当我使用本机单元id时,它总是显示“内部错误”。但是如果我在NativeExpressAdView中使用横幅id,它工作正常
这是在NativeExpressAdView中使用横幅单元id的正确解决方案吗?这可能是什么原因呢?只有当您提到完美的AdSize时,才会显示NativeADS。试试不同的尺寸。例如,当您第一次测试NativeAd时,请查看此文档,尝试在您的移动设备中以横向模式进行测试。有时,宽度也可能是问题所在,NativeAd可能不会出现。
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);