load method

  1. @override
Future<bool> load()
override

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;
}