Admob 的测试广告或普通广告未在我的 Flutter 应用中展示。我的广告请求返回此错误:“广告加载失败:3”。我搜索了这个错误代码并找到了:
The ad request was successful, but no ad was returned due to lack of ad inventory.
Constant Value: 3
但不仅是我的广告,测试广告也没有展示。我使用 google_mobile_ads 包。这是我的代码:
main() 在 main.dart:
void main() {
WidgetsFlutterBinding.ensureInitialized();
MobileAds.instance.initialize();
runApp(MyApp());
}
我主屏幕状态类中的这个变量(它是一个有状态的小部件)
BannerAd _ad;
bool isLoaded = false;
屏幕的initState函数
void initState() {
_ad = BannerAd(
adUnitId: BannerAd.testAdUnitId,
request: AdRequest(),
size: AdSize.banner,
listener: AdListener(
onAdLoaded: (_) {
print("loaded");
setState(() {
isLoaded = true;
});
},
onAdFailedToLoad: (ad, error) {
print("error: $error");
ad.dispose();
},
));
_ad.load();
super.initState();
}
这个条件在主栏的底部
if (isLoaded)
Container(
width: _ad.size.width.toDouble(),
height: _ad.size.height.toDouble(),
child: AdWidget(ad: _ad),
),
处理方法
void dispose() {
_ad?.dispose();
super.dispose();
}
以及android/app/src/main/AndroidManifests.xml文件的相关部分
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713"/>
</application>