java - Admob 既不展示测试广告,也不展示真实广告
问题描述
我已经在 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.");
}
我尝试过的事情
编译gradle
implementation 'com.google.android.gms:play-services-ads:15.0.1'
使用 firebase 广告编译 gradle,遵循 firebase 站点中的指南并将 firebase 连接到我的 admob 帐户
在相对和线性布局中包含 AdView
更改广告尺寸
更改活动和布局
没有任何效果。据我了解,我的日志显示广告请求成功,但 admob 目前没有要显示的广告。可能是因为我的应用还没有上线,所以没有显示实时广告,但为什么没有显示测试广告?为什么只有实时插页式广告有效?我还认为我的 admob 帐户可能会被禁用,但这些广告可以在我的其他应用程序上运行。
解决方案
改变你ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
的ads:adUnitId="your_banner_id"
注意: ca-app-pub-3940256099942544/6300978111
它用于测试!
试试这个代码的横幅
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);
对于插页式广告
MobileAds.initialize(LoginActivity.this, getResources().getString(R.string.app_id));
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getResources().getString(R.string.full_screen_ads_id));
mInterstitialAd.loadAd(new AdRequest.Builder()
.build());
mInterstitialAd.setAdListener(new com.google.android.gms.ads.AdListener() {
@Override
public void onAdLoaded() {
mInterstitialAd.show();
super.onAdLoaded();
}
});
推荐阅读
- angular - 我怎样才能使 devextreme dx-autocomplete 仅成为数字
- javascript - 引导模式不加载图像
- javascript - 是否有任何解决方法(或破解)可以在 Chrome、Firefox 和 Safari 上自动播放音频?
- python - 在读取和执行操作时写入 CSV 文件时未写入数据
- ruby - 使用机械化不工作(Ruby)更改表单选择字段
- python - 如何在python中编写谷歌表格
- c++ - Getline 代码无法正常工作或我的代码无法正确编译
- python - 使用python对嵌套JSON的键进行展平和映射
- php - 从 url 清除永久链接删除 php 扩展
- javascript - 无法在库中使用嵌套的延迟加载模块构建 Angular 8 应用程序