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.dart 中的 main():
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>