loadNativeAd method
void
loadNativeAd()
Load native ad
Implementation
void loadNativeAd() {
if (_isNativeLoading || _isNativeLoaded || _nativeAdUnitId == null) return;
_isNativeLoading = true;
_nativeAd = NativeAd(
adUnitId: _nativeAdUnitId!,
factoryId: 'listTile', // You need to implement this in platform code
request: const AdRequest(),
listener: NativeAdListener(
onAdLoaded: (ad) {
_isNativeLoaded = true;
_isNativeLoading = false;
onAdLoaded?.call('Native');
print('✅ Native Ad loaded successfully');
},
onAdFailedToLoad: (ad, error) {
_isNativeLoaded = false;
_isNativeLoading = false;
ad.dispose();
_nativeAd = null;
onAdError?.call('Native: ${error.message}');
print('❌ Native Ad failed to load: ${error.message}');
// Retry loading after delay
Future.delayed(AdConstants.adRetryDelay, () {
loadNativeAd();
});
},
onAdOpened: (ad) {
onAdShown?.call('Native');
print('📱 Native Ad opened');
},
onAdClosed: (ad) {
onAdClosed?.call('Native');
print('🔒 Native Ad closed');
},
),
);
_nativeAd!.load();
}