java - 从较新版本的 Android Studio 构建应用一年后广告停止工作
问题描述
大约一年前,我在 android studio 中完成了一个超级简单的游戏并发布了它。现在我想做一个小更新并在更合适的地方展示广告。但广告根本不起作用 - 代码与原来相同,但广告无法加载。
我的帐户没有被禁用,因为如果我从 Playstore 下载我的游戏,广告仍然有效。
我使用不同版本的android studio,所以项目自行升级,但我不知道它是否改变了graddle或manifest或其他东西,所以这可能会发生。
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId("ca-app-pub-xxxxxxxxxxxxxx/xxxxxxxx");
mInterstitialAd.loadAd(new AdRequest.Builder().build());
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded () {
if(enableAd) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
}
});
解决方案
在您的 AdListener 中使用onAdClosed()以在每次显示广告时重新加载您的广告,并将您的初始广告创建为mainActivity.create()的一部分。
如果您想展示广告,请在应用中的任何位置使用mInterstitialAd.show() 。显示后,它会关闭并重新加载下一个广告。
这样做是缓冲您的广告。每当您展示插页式广告时,它都会显示已加载的广告,然后在您展示广告后重新加载新的广告。使 ad.show() 更快。
mInterstatialAd = new InterstitialAd(getBaseContext());
mInterstatialAd.setAdUnitId(getResources()
.getString(R.string.AdmobTestInterstitial));
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed () {
mInterstatialAd.loadAd(myAdRequest);
}
});
public void showMyInterstitialAd(){
if(mInterstitialAd!=null &&
mInstitialAd.isLoaded()) mInterstitialAd.show();
}
祝你好运。
推荐阅读
- python - 浮点数计算时的小数值误差
- python - 使用 Python 的点图的节点和边的上下文菜单
- terraform - Terraform 以正确的顺序创建资源,但以错误的顺序销毁它们
- c# - 使用 FFMPEG(c# 应用程序)向视频添加文本
- android - 在不使用云服务的情况下,在哪里使用 React Native 将数据存储在本地以保持持久性和安全性?
- activerecord - ActiveRecord 视图为单个记录方法生成 SQL
- snowflake-cloud-data-platform - where used list - 查询雪花元数据信息
- java - 如何将 imageViews 设置为单击而不是双击
- java - 日期回文查找器无法正常运行 (Java)
- r - 纯 RDA 和双标图,删除贡献大于 10% 方差的值