[Flutter] 광고 설정하기(Google AdMob)

JO_CHOI·2021년 3월 23일
0

Flutter

목록 보기
5/5

1. 환경설정

  • pubspec.yaml파일에 해당 코드를 추가한다.
    google_mobile_ads: ^버전
dependencies:
  google_mobile_ads: ^0.11.0+4
  • AndroidManifest.xml 업데이트
    위치: android/app/src/main/AndroidManifest.xml
<manifest>
    <application>
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-aaaaaaaaaaaaaaaa~bbbbbbbbbb"/>
            //자신의 AdMob 앱 ID
    </application>
</manifest>
  • build.gradle 버전 업그레이드
    위치: android/build.gradle
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.4'
    }
  • build.gradle(버전 확인)
    위치: android/app/build.gradle
	android {
    compileSdkVersion 29 //28이상(필수)

    defaultConfig {
    	minSdkVersion 21//21이상 권장
        targetSdkVersion 29 // 19이상(필수)
        multiDexEnabled true//minSdkVersion 21이상일 경우 설정
    }
  • main함수 설정
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(MyApp());
}

2. 설치

커맨드 창에서

$ flutter pub get

명령어를 입력한다.

3. 불러오기

import 'package:google_mobile_ads/google_mobile_ads.dart';

4. BannerAd 등록하기

  final BannerAd myBanner = BannerAd(
    adUnitId: 'ca-app-pub-aaaaaaaaaaaaaaaa/bbbbbbbbbb', //자신의 UnitID
    size: AdSize.banner,
    request: AdRequest(),
    listener: AdListener(),
  );

추가로 아래 변수들을 선언해준다.

  AdWidget adWidget;
  Container adContainer;

5. initState()에서 배너 불러오기

  @override
  void initState() {
    Future(() async => await myBanner.load()).then((_) {
      if (!mounted) return;
      setState(() {
        adWidget = AdWidget(
          ad: myBanner,
        );
        adContainer = Container(
          alignment: Alignment.center,
          child: adWidget,
          width: myBanner.size.width.toDouble(),
          height: myBanner.size.height.toDouble(),
        );
      });
    });
    super.initState();
  }

6. 원하는 위치에서 Banner 위젯 사용하기

adContainer ?? Container(),

7. 마침

위의 내용은 '제임쓰 Dev'님의 유튜브를 참고하였습니다.
해당 링크: https://www.youtube.com/watch?v=DHmmce1nFlo

profile
꾸준함이 최선이다.

0개의 댓글