createBanner static method

Future<String?> createBanner({
  1. required String placementName,
  2. String? adId,
  3. CloudXAdViewListener? listener,
  4. AdViewPosition? position,
})

Create a banner ad

If adId is not provided, one will be automatically generated. Returns the adId (either provided or generated) for use with other methods.

placementName - Ad placement name adId - Optional custom ad identifier listener - Optional callback listener for ad events position - Optional position for programmatic banner placement. If provided, creates a native overlay banner at the specified position. If null, creates a widget-based banner for use with CloudXBannerView.

Implementation

static Future<String?> createBanner({
  required String placementName,
  String? adId,
  CloudXAdViewListener? listener,
  AdViewPosition? position,
}) async {
  await _ensureEventStreamInitialized();

  // Auto-generate adId if not provided
  final id = adId ??
      'banner_${placementName}_${DateTime.now().millisecondsSinceEpoch}';

  final arguments = <String, dynamic>{
    'placementName': placementName,
    'adId': id,
  };

  // Add position if programmatic banner
  if (position != null) {
    arguments['position'] = position.value;
  }

  final success = await _invokeMethod<bool>('createBanner', arguments);

  if (success ?? false) {
    if (listener != null) {
      _listeners[id] = listener;
    }
    return id;
  }

  return null;
}