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(''),
,
);
}



댓글

이 블로그의 인기 게시물

Unity3D git 저장소에 올릴때 필요없는 파일 제외하기. gitignore

콘탁 Kontakt, KOMPLETE 저렴한 구입 방법.

플러터(flutter) 개발 참고 사이트들.