39 lines
970 B
Dart
39 lines
970 B
Dart
|
import 'package:google_mobile_ads/google_mobile_ads.dart';
|
||
|
import 'package:flutter_dotenv/flutter_dotenv.dart';
|
||
|
|
||
|
class AdHelper {
|
||
|
static BannerAd? bannerAd;
|
||
|
static bool isBannerAdLoaded = false;
|
||
|
|
||
|
static Future<void> loadBannerAd(Function setStateCallback) async {
|
||
|
await dotenv.load(fileName: ".env");
|
||
|
final adUnitId = dotenv.env['AD_UNIT_ID'] ?? '';
|
||
|
|
||
|
bannerAd = BannerAd(
|
||
|
adUnitId: adUnitId, // Replace with actual ID
|
||
|
size: AdSize.banner,
|
||
|
request: AdRequest(),
|
||
|
listener: BannerAdListener(
|
||
|
onAdLoaded: (ad) {
|
||
|
setStateCallback(() {
|
||
|
isBannerAdLoaded = true;
|
||
|
});
|
||
|
},
|
||
|
onAdFailedToLoad: (ad, error) {
|
||
|
print('Banner Ad failed to load: $error');
|
||
|
isBannerAdLoaded = false;
|
||
|
ad.dispose();
|
||
|
},
|
||
|
),
|
||
|
);
|
||
|
|
||
|
bannerAd?.load();
|
||
|
}
|
||
|
|
||
|
static void disposeAd() {
|
||
|
bannerAd?.dispose();
|
||
|
bannerAd = null;
|
||
|
isBannerAdLoaded = false;
|
||
|
}
|
||
|
}
|