我已将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的正确解决方案吗?这可能是什么原因?