我在Flutter应用上实现了横幅广告,使用测试广告可以正常运行,但无法在侦听器中检测到“展示”事件。可以很好地检测到诸如“已加载”和“已打开”之类的其他事件,而不是“印象”事件。
Firebase上的DebugView事件也不会显示自动收集的事件ad_query,ad_impression和ad_exposure。但是,它确实显示ad_click事件。
这是测试广告的正常行为吗?我只是确定要先使用真实的广告ID。
如果我的代码很重要,那么重试逻辑看起来不错吗?
BannerAd _bannerAd;
BannerAd createBannerAd() {
return BannerAd(
adUnitId: BannerAd.testAdUnitId,
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {
if (event == MobileAdEvent.failedToLoad) {
// retry loading ad
_loadAd();
print("Ad Failed to load, retrying");
}
if (event == MobileAdEvent.impression) {
print("Impression");
}
print("------BannerAd event :$event");
},
);
}
_loadAd() async {
// duration to wait before showing ad
var _duration = new Duration(seconds: 5);
return new Timer(_duration, () {
_bannerAd?.dispose();
_bannerAd = createBannerAd()..load();
_bannerAd..show();
});
}
@override
void initState() {
super.initState();
FirebaseAdMob.instance.initialize(appId: FirebaseAdMob.testAppId);
_bannerAd?.dispose();
// Run timer to show ad after certain delay
_loadAd();
}
@override
void dispose() {
_bannerAd?.dispose();
super.dispose();
}