-
Flutter - 광고 넣기, firebase_admob 라이브러리 개발 중지로 다른 방법 찾아봐야 할듯.개발/Flutter 2021. 9. 28. 16:41반응형
1. 수입을 위한 광고 Google AdMob
우선 이번 광고넣기를 위한 firebase 콘솔에 새로운 프로젝트를 생성해준다. 플러터 프로젝트랑 똑같이 해두는게 좋음.
파이어 베이스에 안드로이드 추가할때 android - app - src - main - AndroidManifest.xml 의 package의 이름을 복사해서 넣어주면 된다. 그 후 google services.json을 android - app 에 넣어주면 된다. 다음 단계들은 그냥 넘겨주면 제대로 생성이 된것을 알 수 있다. android 와 android - app에 있는 build.gradle를 실행 시켜 준다.
android - build.gradle buildscript { dependencies { classpath 'com.google.gms:google-services:4.3.3' } }
android - app - build.gradle //가장 하단에 추가. apply plugin: 'com.google.gms.google-services'
위의 두개를 해당 경로에 맞게 넣어준다.
app 경로의 build.gradle에는 android - defaultConfig에 multiDexEnabled true 를 추가해 준다. 해당 부분은 안드로이드 프로젝트의 크기가 리미트가 제한 되어 있는데 파이어베이스의 코어가 커서 제한을 풀어주는 부분이라고 이해하면 되겠다. 그리고 같은 파일의 dependencies에 implementation 'com.android.support:multidex:1.0.3' 도 추가해 주면 된다.
여기까지 안드로이드 설정이다. IOS는 없으므로 패스. 에뮬레이터를 실행해서 잘 실행이 된다면 잘 설정된것.
파이어베이스 코어 플러그인 설치
파이어베이스 기능을 사용하기위한 라이브러리 pub.dev 에서 설치 가능. pubspec.yaml 에 dependencies에 firebase_core: ^0.5.3을 추가해준다. pub get으로 가져오고 난후 initialization을 해줘야 함. main.dart에서 수정을 해줘 보자. MaterialApp을 FutureBuilder로 감싸 준 후 future 옵션에 Firebase.initializaeAPP()을 넣어 주면 된다. 이 부분은 우리가 생성한 파이어베이스 프로젝트와 연결해주는 역할을 한다.
return FutureBuilder( // 파이어베이스 프로젝트와 연결해주는 부분 future: Firebase.initializeApp(), builder: (contest, snapshot){ //initialization이 완성 됐을때 return의 부분을 보여줄 것임. if(snapshot.hasError){ return MaterialApp( home: Scaffold( body: Text('에러, 다시 시도해보세요.'),//scaffold만 아니라 MaterialApp 까지 넣어준 이유는 scaffold만 넣으면 이상하게 나올수 있음 잘 정돈되서 나오기 위해서,,, ), ); } if(snapshot.connectionState == ConnectionState.done){ return MaterialApp( home: WordListPage(), ); } return MaterialApp( home: Scaffold( body: CircularProgressIndicator(),//CircularProgressIndicator 로딩화면 ), ); }, );
해당 부분을 작성하고 실행 해주면 정상 작동 하는것을 알 수 있다.
애드몹 세팅하고 플러터에 연결
파이어베이스 콘솔에서 좌측에 admob에 들어가서 가입 후 admob 페이지에서 앱추가를 해준다. (강의에서는 기존 테스팅 app이 있는데 가입해서 보니 없다...어떻게 해야할지 모르겠다. 앱 상태도 검수필요라서...흠... 제대로 실행되는지 알수 없음. 일단 끝까지 해보기만 할것임)
pub.dev 에서 firebase_admob을 추가해주면 된다. firebase_admob: ^0.10.3 으로 버전을 해서 입력해 주면 된다.(현재 pub.dev확인 결과 개발 중지로 보임 아예 실행이 안되서 admob_flutter로 실행함)
readme를 읽고 따라함.....
google admob으로 가서 appid 가져와야 하지만 readme읽어보니 테스트 아이디로 할 수 있을듯. ios는 패스.
admob을 initialization 해줘야함.
기존 futurebuilder에서 initializeApp을 해줬는데 void main에 올려서 해주는 방법도 있다.
그러나 에러가 나옴 firebase를 initialize 되기 전에 flutter가 binding이 되어야 함 main 상단에 WidgetsFlutterBinding.ensureInitialized();를 추가해 주면됨.
그래도 안되서 현재 3강 마무리 단계라 future 옵션에 firebase.initializeApp() 넣은채로 실행하니 잘되서 넣고 끝냄 깃도 그렇게 올리고 끝냄.
banner ad 사용하기
여러개를 해봤지만 안됨..... 다른 외국강의나 찾아봐야 할꺼같음.
반응형'개발 > Flutter' 카테고리의 다른 글
Flutter - 인별 클론 코딩 V1.0, 시작 (0) 2021.09.29 Flutter - 플러터 알림 보내기 (0) 2021.09.29 Flutter - 페이스북 로그인, 애플로그인 (0) 2021.09.28 Flutter - 구글 로그인 초기, 구현, 로그아웃 (0) 2021.09.14 Flutter - 로그인시 에러, 이메일 인증 확인, 템플릿 변경, login (0) 2021.09.14 댓글