import 'package:google_mobile_ads/google_mobile_ads.dart'; import 'package:flutter/material.dart'; class MyBannerAd extends StatefulWidget { final bool isEnabled; const MyBannerAd({super.key, required this.isEnabled}); @override State createState() => _MyBannerAdState(); } class _MyBannerAdState extends State { BannerAd? _bannerAd; bool _isLoaded = false; bool _isInitializing = false; @override void initState() { super.initState(); if (widget.isEnabled) { _loadAd(); } } void _loadAd() async { _bannerAd = BannerAd( adUnitId: 'ca-app-pub-2626773788355001/7557216229', request: const AdRequest(), size: AdSize.banner, listener: BannerAdListener( onAdLoaded: (ad) => setState(() => _isLoaded = true), onAdFailedToLoad: (ad, error) { ad.dispose(); print('Ad failed to load: $error'); }, ), )..load(); } @override void dispose() { _bannerAd?.dispose(); super.dispose(); } @override Widget build(BuildContext context) { if (!widget.isEnabled || !_isLoaded || _bannerAd == null) { return const SizedBox.shrink(); } return Container( alignment: Alignment.center, width: double.infinity, height: _bannerAd!.size.height.toDouble(), child: AdWidget(ad: _bannerAd!), ); } }