initialize method
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:
- Calls
MobileAds.instance.initialize() - Configures test device IDs
- 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;
}