showBannerAds function
dynamic
showBannerAds({})
Implementation
showBannerAds(
{int pos = 0,
AdSize size = AdSize.banner,
Function(Widget)? onAdLoadedCallback,
Function? onAdFailedToLoadCallback}) {
if (_settings == null ||
(_settings?.adSetting?.appVersionCode == appVersionCode) ||
(_settings?.adsSequence?.isEmpty ?? true) ||
((_settings?.adsSequence?.length ?? 0) <= pos)) {
if (onAdFailedToLoadCallback != null) {
onAdFailedToLoadCallback();
}
return;
}
switch (_settings?.adsSequence?[pos]) {
case _GOOGLEAD:
if ((_settings?.googleAds?.isBannerAds ?? false) &&
(_settings?.googleAds?.bannerId ?? "").isNotEmpty) {
BannerAd(
size: size,
adUnitId: _settings?.googleAds?.bannerId ?? "",
listener: BannerAdListener(
onAdLoaded: (Ad ad) {
print('$ad loaded.');
if (onAdLoadedCallback != null && ad is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
child: AdWidget(ad: ad),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('$BannerAd failedToLoad: $error');
ad.dispose();
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
onAdOpened: (Ad ad) => print('$BannerAd onAdOpened.'),
onAdClosed: (Ad ad) => print('$BannerAd onAdClosed.'),
),
request: _request)
.load();
} else {
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
case _ADMANAGERAD:
if ((_settings?.googleAds?.isBannerAds ?? false) &&
(_settings?.googleAds?.bannerId ?? "").isNotEmpty) {
AdManagerBannerAd(
adUnitId: _settings?.googleAds?.bannerId ?? "",
sizes: <AdSize>[size],
request: _ad_manager_request,
listener: AdManagerBannerAdListener(
onAdLoaded: (Ad ad) async {
// print('Inline adaptive banner loaded: ${ad.responseInfo}');
if (onAdLoadedCallback != null && ad is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
child: AdWidget(ad: ad),
));
}
// After the ad is loaded, get the platform ad size and use it to
// update the height of the container. This is necessary because the
// height can change after the ad is loaded.
/* AdManagerBannerAd bannerAd = (ad as AdManagerBannerAd);
final AdSize? size = await bannerAd.getPlatformAdSize();
if (size == null) {
print('Error: getPlatformAdSize() returned null for $bannerAd');
return;
}*/
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Inline adaptive banner failedToLoad: $error');
ad.dispose();
// _adManagerBannerAd = null;
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
),
).load();
} else {
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
case _APPLOVINAD:
if ((_settings?.appLovin?.isBannerAds ?? false) &&
(_settings?.appLovin?.bannerId ?? "").isNotEmpty) {
AppLovinBannerAd(
adUnitId: _settings?.appLovin?.bannerId ?? "",
size: size,
listener: BannerAdListener(
onAdLoaded: (Ad ad) async {
// print('Inline adaptive banner loaded: ${ad.responseInfo}');
if (onAdLoadedCallback != null && ad is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
child: AdWidget(ad: ad),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Inline adaptive banner failedToLoad: $error');
ad.dispose();
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
),
).load();
} else {
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
case _FACEBOOKAD:
if ((_settings?.facebookAds?.isBannerAds ?? false) &&
(_settings?.facebookAds?.bannerId ?? "").isNotEmpty) {
FacebookBannerAd(
adUnitId: _settings?.facebookAds?.bannerId ?? "",
size: size,
listener: BannerAdListener(
onAdLoaded: (Ad ad) async {
// print('Inline adaptive banner loaded: ${ad.responseInfo}');
if (onAdLoadedCallback != null && ad is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
child: AdWidget(ad: ad),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Inline adaptive banner failedToLoad: $error');
ad.dispose();
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
),
).load();
} else {
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
default:
showBannerAds(
pos: pos + 1,
size: size,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
break;
}
}