- 사용 패키지
import 'package:google_mobile_ads/google_mobile_ads.dart';
google_mobile_ads: ^0.12.0
- 설정하기 (android-> app-> build.gradle)
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.ksr.today_visting_list"
minSdkVersion 19 //구글 애드몹 사용을 위해 Sdk 버전을 19로 올려야함(수정)
multiDexEnabled true //Sdk 버전 Dex를 Enable 해줘야함 (추가)
targetSdkVersion 30
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
- 설정하기 (android-> app-> src-> main-> AndroidManifest.xml 추가)
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-************~*************"/>
</application>
android value 값은 애드몹에서 받은 기기ID 입력(***~***)
- 코드 애드몹 초기화 (main.dart)
Future<void> main() async {
//애드몹 바인딩 초기화
WidgetsFlutterBinding.ensureInitialized();
//기존 애드몹 초기화
MobileAds.instance.initialize();
bool data = await fetchData();
runApp(MyApp(
firstCheck: data,
));
}
class MyApp extends StatelessWidget {
final bool firstCheck;
....
- 코드 (초기 선언)
final String androidTestUnitId = BannerAd.testAdUnitId;//테스트용 광고ID
BannerAd? _bannerAd;
@override
void initState() {
// TODO: implement initState
super.initState();
_bannerAd = BannerAd(
size: AdSize.banner, //배너 크기
adUnitId: androidTestUnitId, //테스트용 광고ID
listener: AdListener(),
request: AdRequest())..load();
}
@override
void dispose() {
// TODO: implement dispose
_bannerAd!.dispose();
- 코드 (사용)
@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: Container(
width: double.infinity,
color: Color(0xff161616),
//위에서 초기 설정한 _bannerAd가 null 이면 일반 Container
child: this._bannerAd == null
? Container(color: Color(0xff161616),)
: AdWidget(
ad: this._bannerAd!,
)),
),
],
);
}
}
- 주의
_bannerAd를 사용 하고 사용하지 않을 때 반드시 dispose 해줘야함