본문으로 이동

플러터:구글 AdMob

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2026년 1월 9일 (금) 12:10 판 (새 문서: {{플러터}} == 개요 == 플러터 앱에 구글 광고 삽입과 관련한 문서. = 사전 준비 = {| class="wikitable" !과정 !설명 !비고 |- |Google AdMob 계정 생성 | * https://admob.google.com 에 접속한다. * 구글 계정으로 로그인 후 AdMob 계정을 생성한다. * 앱을 등록하고 광고 단위 ID를 생성한다. | |- |패키지 추가 |플러터에서는 <code>google_mobile_ads</code> 패키지를 사용한다. |<syntaxhighlight lang="yaml">...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

틀:플러터 Dart:개요 플러터에 대한 지식 분류

  1. 플러터:개요
    1. 플러터:VSCode
    2. 플러터:안드로이드 스튜디오
  2. 플러터:실행
  3. 플러터:개념 잡기
    1. 플러터:화면 하나 만들기
    2. 플러터:변하는 화면(StatefulWidget)
    3. 플러터:화면 전환(화면 쌓기, 하단 네비게이션 바)
    4. 플러터:화면 전환(Drawer)
    5. 플러터:입력 관련
      1. 플러터:버튼
      2. 플러터:키보드 입력
      3. 플러터:슬라이더
    6. 플러터:그래프 그리기(fl chart)
    7. 플러터:데이터 저장(간단한 데이터)
    8. 플러터:인증(Firebase 인증)(미완)
    9. 플러터:인증(OAuth2)(미완)
  4. 권한 사용
    1. 플러터:마이크 입력
  5. 위젯
    1. 플러터:아이콘
    2. 플러터:레이아웃 계열 위젯
    3. 플러터:네비게이션 계열 위젯
    4. 플러터:버튼
    5. 플러터:상태관리(미완)
  6. 플러터:DB연결
    1. 플러터:Firebase(미완)
    2. 플러터:MySQL(미완)
  7. 디자인
    1. 플러터:테마
    2. 플러터:앱바
  8. 플러터:배포
    1. 플러터:배포(안드로이드)(미완)
  9. 플러터:참고자료
  10. 플러터:위젯
    1. 플러터:공간배치용 위젯
  11. 플러터:구글 AdMob(미완)
  12. 플러터:라이브러리
    1. 플러터:logger

플러터 앱에 구글 광고 삽입과 관련한 문서.

사전 준비

[편집 | 원본 편집]
과정 설명 비고
Google AdMob 계정 생성
  • 구글 계정으로 로그인 후 AdMob 계정을 생성한다.
  • 앱을 등록하고 광고 단위 ID를 생성한다.
패키지 추가 플러터에서는 google_mobile_ads 패키지를 사용한다.
dependencies:
  flutter:
    sdk: flutter
  google_mobile_ads: ^5.0.0
flutter pub get

플랫폼별 설정

[편집 | 원본 편집]
플랫폼 설명 비고
Android android/app/src/main/AndroidManifest.xml에 다음 메타데이터를 추가한다.
<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
iOS ios/Runner/Info.plist에 App ID를 추가한다.
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>

광고 초기화

[편집 | 원본 편집]

앱 시작 시 광고 SDK를 초기화해야 한다.

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await MobileAds.instance.initialize();
  runApp(const MyApp());
}

배너 광고

[편집 | 원본 편집]

배너 광고 생성

[편집 | 원본 편집]
BannerAd bannerAd = BannerAd(
  size: AdSize.banner,
  adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 테스트 ID
  listener: BannerAdListener(),
  request: const AdRequest(),
);

광고 로드

[편집 | 원본 편집]
bannerAd.load();

화면에 표시

[편집 | 원본 편집]
SizedBox(
  width: bannerAd.size.width.toDouble(),
  height: bannerAd.size.height.toDouble(),
  child: AdWidget(ad: bannerAd),
)

전면 광고

[편집 | 원본 편집]

전면 광고 로드

[편집 | 원본 편집]
InterstitialAd.load(
  adUnitId: 'ca-app-pub-3940256099942544/1033173712',
  request: const AdRequest(),
  adLoadCallback: InterstitialAdLoadCallback(
    onAdLoaded: (ad) {
      ad.show();
    },
    onAdFailedToLoad: (error) {},
  ),
);

보상형 광고

[편집 | 원본 편집]

보상형 광고 예제

[편집 | 원본 편집]
RewardedAd.load(
  adUnitId: 'ca-app-pub-3940256099942544/5224354917',
  request: const AdRequest(),
  rewardedAdLoadCallback: RewardedAdLoadCallback(
    onAdLoaded: (ad) {
      ad.show(
        onUserEarnedReward: (ad, reward) {
          // 보상 처리
        },
      );
    },
    onAdFailedToLoad: (error) {},
  ),
);

테스트 광고

[편집 | 원본 편집]

개발 중에는 반드시 테스트 광고 ID를 사용해야 한다. 실제 광고 ID를 테스트 중 사용하면 계정이 정지될 수 있다.

주의사항

[편집 | 원본 편집]
  • 광고 클릭을 유도하는 UI는 정책 위반이다.
  • 광고를 과도하게 표시하면 사용자 경험이 크게 저하된다.
  • 앱 출시 전 반드시 실제 광고 ID로 교체한다.

참고 자료

[편집 | 원본 편집]