add ad services and Docker configuration for web app
Some checks failed
Build Android App / build (push) Has been cancelled
Some checks failed
Build Android App / build (push) Has been cancelled
This commit is contained in:
73
lib/services/admob_service.dart
Normal file
73
lib/services/admob_service.dart
Normal file
@@ -0,0 +1,73 @@
|
||||
import "package:flutter/foundation.dart";
|
||||
import "package:flutter/widgets.dart";
|
||||
import "package:google_mobile_ads/google_mobile_ads.dart";
|
||||
import "ad_service.dart";
|
||||
|
||||
class AdMobService implements AdService {
|
||||
BannerAd? _bannerAd;
|
||||
bool _isLoaded = false;
|
||||
|
||||
// Ad unit IDs
|
||||
static const String _androidBannerAdUnitId = "ca-app-pub-5177609929140951/8415596856";
|
||||
static const String _iosBannerAdUnitId = "ca-app-pub-5177609929140951/7102515188";
|
||||
|
||||
String get _bannerAdUnitId {
|
||||
if (defaultTargetPlatform == TargetPlatform.android) {
|
||||
return _androidBannerAdUnitId;
|
||||
} else if (defaultTargetPlatform == TargetPlatform.iOS) {
|
||||
return _iosBannerAdUnitId;
|
||||
} else {
|
||||
throw UnsupportedError("Platform not supported");
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> initialize() async {
|
||||
await MobileAds.instance.initialize();
|
||||
print("AdMob initialized");
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> loadBannerAd() async {
|
||||
_bannerAd = BannerAd(
|
||||
adUnitId: _bannerAdUnitId,
|
||||
size: AdSize.banner,
|
||||
request: const AdRequest(),
|
||||
listener: BannerAdListener(
|
||||
onAdLoaded: (ad) {
|
||||
print("Banner ad loaded");
|
||||
_isLoaded = true;
|
||||
},
|
||||
onAdFailedToLoad: (ad, error) {
|
||||
print("Banner ad failed to load: $error");
|
||||
ad.dispose();
|
||||
_isLoaded = false;
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
await _bannerAd!.load();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget getBannerWidget() {
|
||||
if (_bannerAd == null || !_isLoaded) {
|
||||
return SizedBox.shrink();
|
||||
}
|
||||
|
||||
return SizedBox(
|
||||
height: 50,
|
||||
child: AdWidget(ad: _bannerAd!),
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_bannerAd?.dispose();
|
||||
_bannerAd = null;
|
||||
_isLoaded = false;
|
||||
}
|
||||
|
||||
@override
|
||||
bool get isLoaded => _isLoaded;
|
||||
}
|
||||
Reference in New Issue
Block a user