initialize method

Future<void> initialize()

Initializes AdMob SDK and runs the UMP consent flow.

Must be called once before showing any ads. Typically called in main() before runApp().

This method:

  1. Calls MobileAds.instance.initialize()
  2. Configures test device IDs
  3. Runs the UMP consent check (shows dialog if needed)

Throws StateError if called after dispose.

Implementation

Future<void> initialize() async {
  _assertNotDisposed();
  if (_isInitialized) return;

  _retryStrategy = RetryStrategy(
    maxRetries: _config.maxRetryCount,
    baseDelayMs: _config.retryBaseDelayMs,
  );

  _interstitialFrequencyCap = FrequencyCap(
    intervalSeconds: _config.frequencyCapSeconds,
  );

  _consentManager = ConsentManager(adManager: this);

  // In production, this would call:
  // await MobileAds.instance.initialize();
  // MobileAds.instance.updateRequestConfiguration(
  //   RequestConfiguration(testDeviceIds: _config.testDeviceIds),
  // );

  // Run UMP consent flow
  await _consentManager.requestConsent();

  _isInitialized = true;
}