load method
Implementation
@override
Future<bool> load() {
if (state == AdState.loading) return Future.value(false);
state = AdState.loading;
final completer = Completer<bool>();
_ad = NativeAd(
adUnitId: adUnitId,
request: const AdRequest(),
nativeTemplateStyle: NativeTemplateStyle(
templateType: _mapTemplate(templateSize),
),
listener: NativeAdListener(
onAdLoaded: (_) {
state = AdState.loaded;
completer.complete(true);
},
onAdFailedToLoad: (ad, error) {
dPrint('❌ Native load failed: ${error.message}');
state = AdState.failed;
ad.dispose();
_ad = null;
completer.complete(false);
},
),
)..load();
return completer.future;
}