showNativeAds function
dynamic
showNativeAds({
- int pos = 0,
- bool isMediumNativeAds = false,
- Color backgroundColor = const Color(0xFFFFFFFF),
- Color borderColor = const Color(0xFFFFFFFF),
- double borderwidth = 1.0,
- BorderStyle borderstyle = BorderStyle.solid,
- EdgeInsetsGeometry? widgetMargin,
- double borderRadius = 12,
- Size size = const Size(double.infinity, 350),
- dynamic onAdLoadedCallback()?,
- Function? onAdFailedToLoadCallback,
Implementation
showNativeAds(
{int pos = 0,
bool isMediumNativeAds = false,
Color backgroundColor = const Color(0xFFFFFFFF),
Color borderColor = const Color(0xFFFFFFFF),
double borderwidth = 1.0,
BorderStyle borderstyle = BorderStyle.solid,
EdgeInsetsGeometry? widgetMargin,
double borderRadius = 12,
Size size = const Size(double.infinity, 350),
Function(Widget)? onAdLoadedCallback,
Function? onAdFailedToLoadCallback}) async {
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?.isNativeAds ?? false) &&
(_settings?.googleAds?.nativeId ?? "").isNotEmpty) {
_nativeAd = NativeAd(
adUnitId: _settings?.googleAds?.nativeId ?? "",
isMediumNativeAds: isMediumNativeAds,
request: _request,
factoryId: 'nativeFactoryId',
listener: NativeAdListener(
onAdLoaded: (Ad nativeAd) {
print('$NativeAd loaded.');
if (onAdLoadedCallback != null && nativeAd is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
margin: widgetMargin,
alignment: Alignment.center,
decoration: BoxDecoration(
color: backgroundColor,
border: Border.all(
color: borderColor,
width: borderwidth,
style: borderstyle),
borderRadius:
BorderRadius.all(Radius.circular(borderRadius))),
child: AdWidget(ad: nativeAd),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print(
'$NativeAd == = = ==== ==== ==== ==== ==== ==== === failedToLoad: $error');
ad.dispose();
_nativeAd = null;
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
isMediumNativeAds: isMediumNativeAds,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
onAdOpened: (Ad ad) => print('$NativeAd onAdOpened.'),
onAdClosed: (Ad ad) => print('$NativeAd onAdClosed.'),
),
)..load();
} else {
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
isMediumNativeAds: isMediumNativeAds,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
case _ADMANAGERAD:
if ((_settings?.googleAds?.isNativeAds ?? false) &&
(_settings?.googleAds?.nativeId ?? "").isNotEmpty) {
_nativeAd = NativeAd.fromAdManagerRequest(
adUnitId: _settings?.googleAds?.nativeId ?? "",
isMediumNativeAds: isMediumNativeAds,
factoryId: 'nativeFactoryId',
listener: NativeAdListener(
onAdLoaded: (Ad nativeAd) {
print('$NativeAd loaded.');
if (onAdLoadedCallback != null && nativeAd is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
alignment: Alignment.center,
margin: widgetMargin,
decoration: BoxDecoration(
color: backgroundColor,
border: Border.all(
color: borderColor,
width: borderwidth,
style: borderstyle),
borderRadius:
BorderRadius.all(Radius.circular(borderRadius))),
child: AdWidget(ad: nativeAd),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('$NativeAd failedToLoad: $error');
ad.dispose();
_nativeAd = null;
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
isMediumNativeAds: isMediumNativeAds,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
onAdOpened: (Ad ad) => print('$NativeAd onAdOpened.'),
onAdClosed: (Ad ad) => print('$NativeAd onAdClosed.'),
),
adManagerRequest: _ad_manager_request)
..load();
} else {
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
isMediumNativeAds: isMediumNativeAds,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
case _APPLOVINAD:
if ((_settings?.appLovin?.isNativeAds ?? false) &&
(_settings?.appLovin?.nativeAds?.manual ?? "").isNotEmpty) {
_appLovinnativeAd = AppLovinNativeAd(
isMediumNativeAds: isMediumNativeAds,
adUnitId: _settings?.appLovin?.nativeAds?.manual ?? "",
factoryId: 'nativeFactoryId',
listener: NativeAdListener(
onAdLoaded: (Ad nativeAd) {
print('$NativeAd loaded.');
if (onAdLoadedCallback != null && nativeAd is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
alignment: Alignment.center,
margin: widgetMargin,
decoration: BoxDecoration(
color: backgroundColor,
border: Border.all(
color: borderColor,
width: borderwidth,
style: borderstyle),
borderRadius:
BorderRadius.all(Radius.circular(borderRadius))),
child: AdWidget(ad: nativeAd),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('$NativeAd failedToLoad: $error');
ad.dispose();
_appLovinnativeAd = null;
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
isMediumNativeAds: isMediumNativeAds,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
onAdOpened: (Ad ad) => print('$NativeAd onAdOpened.'),
onAdClosed: (Ad ad) => print('$NativeAd onAdClosed.'),
))
..load();
} else {
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
isMediumNativeAds: isMediumNativeAds,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
case _FACEBOOKAD:
if ((_settings?.facebookAds?.isNativeAds ?? false) &&
(_settings?.facebookAds?.nativeId ?? "").isNotEmpty) {
_facebooknativeAd = FacebookNativeAd(
isMediumNativeAds: isMediumNativeAds,
adUnitId: _settings?.facebookAds?.nativeId ?? "",
factoryId: 'nativeFactoryId',
listener: NativeAdListener(
onAdLoaded: (Ad nativeAd) {
print('$NativeAd loaded.');
if (onAdLoadedCallback != null && nativeAd is AdWithView) {
onAdLoadedCallback(Container(
width: size.width.toDouble(),
height: size.height.toDouble(),
alignment: Alignment.center,
margin: widgetMargin,
decoration: BoxDecoration(
color: backgroundColor,
border: Border.all(
color: borderColor,
width: borderwidth,
style: borderstyle),
borderRadius:
BorderRadius.all(Radius.circular(borderRadius))),
child: AdWidget(ad: nativeAd),
));
}
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('$NativeAd failedToLoad: $error');
ad.dispose();
_appLovinnativeAd = null;
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
isMediumNativeAds: isMediumNativeAds,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
},
onAdOpened: (Ad ad) => print('$NativeAd onAdOpened.'),
onAdClosed: (Ad ad) => print('$NativeAd onAdClosed.'),
))
..load();
} else {
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
isMediumNativeAds: isMediumNativeAds,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
}
break;
default:
showNativeAds(
pos: pos + 1,
size: size,
widgetMargin: widgetMargin,
isMediumNativeAds: isMediumNativeAds,
backgroundColor: backgroundColor,
borderColor: borderColor,
borderwidth: borderwidth,
borderstyle: borderstyle,
borderRadius: borderRadius,
onAdLoadedCallback: onAdLoadedCallback,
onAdFailedToLoadCallback: onAdFailedToLoadCallback);
break;
}
}