Flutter_끄적끄적
[Flutter]플러터 애드몹 적용하기 |안드로이드, IOS
Ksr
2021. 11. 29. 22:51
반응형
- 사용 패키지
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 추가)
android value 값은 애드몹에서 받은 기기ID 입력(***~***)<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-************~*************"/> </application>
- 코드 애드몹 초기화 (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 해줘야함
반응형