我已经苦苦挣扎了近一个星期的Admob广告问题,到处搜索互联网以找到可能的解决方案,但什么都没用。我的Android应用无法显示测试广告或实时广告。这是日志:
I/Ads: Updating ad debug logging enablement.
I/Ads: Starting ad request.
SDK version: afma-sdk-a-v13280019.11910000.1
I/Ads: This request is sent from a test device.
W/Ads: Not retrying to fetch app settings
W/Ads: Update ad debug logging enablement as false
W/Ads: App does not have the required permissions to get location
I/Ads: Trying mediation network:
I/Ads: Instantiating mediation adapter: com.google.DummyAdapter
I/Ads: No fill from any mediation ad networks.
I/Ads: Scheduling ad refresh 60000 milliseconds from now.
W/Ads: Failed to load ad: 3
我的测试插页式广告可以正常加载,但实际的广告却无法加载。横幅广告也无法显示,无论是测试广告还是实际广告。
以下是我的XML AdView:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111"> //test admob unit id
</com.google.android.gms.ads.AdView>
我会用以下代码加载横幅:
MobileAds.initialize(this, getString(R.string.app_id));
adView1 = findViewById(R.id.adView);
AdRequest adRequest1 = new AdRequest.Builder().addTestDevice("my_test_device_id").build();
adView1.loadAd(adRequest1);
这个实时插页广告是通过以下方式加载的,并且它可以正常工作(测试版本不能):
final InterstitialAd mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("_live_ad_id");
mInterstitialAd.loadAd(new AdRequest.Builder().addTestDevice("my_test_device_id").build());
mInterstitialAd.setAdListener(new AdListener(){
@Override
public void onAdLoaded(){
mInterstitialAd.show();
}
});
if (mInterstitialAd.isLoaded()) {
} else {
Log.d("TAG", "The interstitial wasn't loaded yet.");
}
我尝试过的事情
使用
implementation 'com.google.android.gms:play-services-ads:15.0.1'
编译gradle根据firebase网站的指南编译gradle并将firebase连接到我的admob账户
将AdView放置在Relative和Linear Layout中
更改广告大小
更改活动和布局
没有任何作用。从日志中我了解到广告请求是成功的,但是AdMob目前没有广告可供显示。也许实时广告未显示,因为我的应用程序还没有上线,但是为什么测试广告不显示呢?而且为什么只有实时插页广告起作用?我还以为我的AdMob帐户可能已被禁用,但广告在其他应用程序中有效。