flutter- Admob 배너 적용.
flutter에 Admob 배너 적용하는 방법.
* 라이브러리 페이지.
https://pub.dev/packages/google_mobile_ads
* Admob 라이브러리 설치.
flutter pub add google_mobile_ads
* AndroidManifest에 추가.
인터넷 권한은 admob 라이브러리에서 자동병합 되어 따로 할 필요가 없다.
android\app\src\main\AndroidManifest.xml
<application>
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-##############"/>
</application>
* build.gradle에 추가.
2022년08월 현재 flutter과 Admob이 minSdkVersion 불일치로 컴파일 에러가 난다.
minSdkVersion 19, 20 가능하지만 추가 코드 작업이 필요하다. 특별한 사유가 없으면 21로 하는 걸 추천한다.
android\app\build.gradle
minSdkVersion 21
* Admob 라이브러리 초기화.
main.dart 이나 초기화 코드에 아래 코드를 넣는다.
MobileAds.instance.initialize();
* 구현 코드.
본인에 맞게 변경해 구현한다.
// 광고 ID를 리턴하는 함수.
String getAdId() {
if (!kReleaseMode) {
return 'ca-app-pub-3940256099942544/6300978111';
}
if (Platform.isAndroid) {
return 'ca-app-pub-#############';
} else if (Platform.isIOS) {
// return 'ca-app-pub-';
}
throw UnsupportedError("Unsupported platform");
}
// 광고를 불러 오는 함수.
void getBannerAd(String adId, AdEventCallback onSuccess) {
BannerAd(
adUnitId: adId,
size: AdSize.mediumRectangle,
request: const AdRequest(),
listener: BannerAdListener(
onAdLoaded: onSuccess,
onAdFailedToLoad: (ad, error) {
// Releases an ad resource when it fails to load
ad.dispose();
print('[Error] Ad load failed (code=${error.code} message=${error.message})');
},
),
).load();
}
// 배너 변수.
BannerAd? _adBanner;
@override
void initState() {
super.initState();
// 배너를 불러온다.
// 배너 로딩이 성공하면 _adBanner에 값을 넣는다.
getBannerAd(getAdId(), (ad) {
setState(() {
_adBanner = ad as BannerAd;
});
});
}
@override
void dispose() {
// 종료시 광고를 닫는다.
_adBanner?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
// 광고를 표시할 곳에 위젯을 추가한다.
// 아래는 예시다.
Container(
color: Colors.white60,
width: 300,
height: 300,
child:
child: null != _adBanner ? AdWidget(ad: _adBanner!) : const Text(''),
,
);
}
댓글
댓글 쓰기