loadNativeAd method

Future<String?> loadNativeAd({
  1. required String adUnitId,
  2. AdRequestConfig? requestConfig,
  3. NativeAdMediaAspectRatio? mediaAspectRatio,
})

Loads a native ad.

adUnitId - The ad unit ID for the native ad. requestConfig - Optional configuration for the ad request. mediaAspectRatio - Optional media aspect ratio preference for the native ad.

Returns a unique native ad ID if successful, null otherwise.

Example:

final nativeAdId = await ads.loadNativeAd(
  adUnitId: 'ca-app-pub-xxxxx/xxxxx',
  mediaAspectRatio: NativeAdMediaAspectRatio.landscape,
);

Implementation

Future<String?> loadNativeAd({
  required String adUnitId,
  AdRequestConfig? requestConfig,
  NativeAdMediaAspectRatio? mediaAspectRatio,
}) async {
  _validateAdUnitId(adUnitId);
  try {
    debugPrint('Loading native ad: adUnitId=$adUnitId');
    final params = <String, dynamic>{
      'adUnitId': adUnitId,
    };

    if (requestConfig != null) {
      params.addAll(requestConfig.toMap());
    }

    if (mediaAspectRatio != null) {
      params['mediaAspectRatio'] = mediaAspectRatio.index;
    }

    final result = await _channel.invokeMethod<String>(
      'loadNativeAd',
      params,
    );
    debugPrint('Native ad loaded with ID: $result');
    return result;
  } catch (e) {
    debugPrint('Error loading native ad: $e');
    return null;
  }
}