앱 프로그래밍/플러터(Flutter)

Firebase를 이용한 Messaging/Admob 설정

0_TLS 2025. 1. 24. 14:40

Firebase를 이용한 Messaging 구현하기


1. FCM(Firebase Clous Messaging)의 이해

1. 푸시 알림(push notification)의 다양한 사용

  • 이메일 도착을 알리기 위해 처음 시작
  • 정보 제공의 기능을 넘어 강력한 마케팅 도구로 주목받음
  • 이벤트, 쿠폰, 신상품, 메시지 등 앱의 새로운 소식을 실시간으로 알림
  • 앱의 참여율이나 매출을 높일 수 있음

2. FCM(Firebase Cloud Messaging) 서비스란?

Firebase에서 제공하는 푸시 알림 서비스

  1. FCM의 SDK를 이용해 앱에서 푸시 알림을 받을 수 있게 구현
  2. Firebase에 푸시 알림을 등록하면 사용자의 기기에 전송

2. Firebase를 이용한 Messaging 구현

1. Messaging 패키지 추가

pubspec.yaml 파일을 열고 dependencies 항목에 Firebase Messaging 패키지 추가

firebase_messaging: ^10.0.1

 

2. Firebase.initalizeApp 선언

main.dart로 이동하여 home에 FutureBuilder 위젯을 이용, Firebase.initalizeApp을 실행

 

3. _initFirebase Messaging(context) 호출

ConnectionState.done 완료 후 초기화 함수 _initFirebase Messaging(context) 호출

 

4. 토큰 이용하기

initFirebaseMessaging() 함수 아래에 _getToken() 함수 추가, 호출

앱 실행 후, 로그창에서 토큰 확인

=> 앱과 통신하는 토큰

=> 토큰을 이용하여 개별 푸시 메시지를 보낼 수 있음

=> 맞춤 푸시도 이런 방식으로 보내게 됨

 


import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_analytics/observer.dart';
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

import 'memoPage.dart';



void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  runApp(MyApp());
}



class MyApp extends StatelessWidget {
  static FirebaseAnalytics analytics = FirebaseAnalytics();
  static FirebaseAnalyticsObserver observer =
      FirebaseAnalyticsObserver(analytics: analytics);

  @override
  Widget build(BuildContext context) {

    return MaterialApp(
      title: 'Firebase Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      navigatorObservers: <NavigatorObserver>[observer],
      home: FutureBuilder(
        future: Firebase.initializeApp(), // 선언해야 할 함수
        builder: (context, snapshot) {
          if (snapshot.hasError) { // 만약 선언 시 에러가 나면 출력될 위젯
            return Center(
              child: Text('Error'),
            );
          }
// 선언 완료 후 표시할 위젯
          if (snapshot.connectionState == ConnectionState.done) {
            _getToken();
            _initFirebaseMessaging(context);
            return MemoPage();
          }
// 선언되는 동안 표시할 위젯
          return Center(
            child: CircularProgressIndicator(),
          );
        },
      ),
    );
  }

  _getToken() async {
    FirebaseMessaging messaging = FirebaseMessaging.instance;
    print("messaging.getToken() , ${await messaging.getToken()}");
  }

  _initFirebaseMessaging(BuildContext context) {
    FirebaseMessaging.onMessage.listen((RemoteMessage event) {
      print(event.notification!.title);
      print(event.notification!.body);
      showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              title: Text("알림"),
              content: Text(event.notification!.body!),
              actions: [
                TextButton(
                  child: Text("Ok"),
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                )
              ],
            );
          });
    });
    FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) {});
  }

}

 


Firebase를 이용한 Admob 구현하기


1. Google Admob 알아보기

1. Google Admob이란?

구글에서 앱 개발자들이 광고를 앱에 넣어서 수익을 얻을 수 있도록 제공하는 광고 플랫폼

 

2. Firebase를 이용한 Admob 구현

1. Admob 가입하기

Firebase 콘솔 접속 -> 왼쪽 메뉴에 '참여 -> AdMob'클릭 -> AdMob 가입하기

*구글 계정에 생년월일 정보가 빠져있다면, 중간에 생년월일을 입력하는 과정을 거쳐야 가입 가능

 

2. Admob 새 앱 설정

플랫폼과 현재 앱 스토어에 등록되어있는지 여부 설정

플랫폼 : 'andriod', 지원되는 앱 스토어에 앱이 등록되어 있나요? '아니오' 선택

 

앱 이름과 사용자 측정 항목을 설정

 

3. 앱 ID 확인

앱에서 애드몹 광고를 연결할 때 필요한 앱 ID를 확인

왼쪽 메뉴에서 '앱 설정' -> 앱 ID를 확인하고 별도로 기록해 두기

 

4. 광고 형식 선택 : 배너 광고 만들기

Admob이 제공하는 광고 형식 : 배너, 전면, 리워드, 네이티브 고급 광고, 앱 열기(베타) 등 총 5가지

 

5. 광고 단위 설정 구성

Admob 메뉴에서 '앱 -> 광고 단위' 선택 (광고 단위가 없으면 '시작하기')

-> '배너' 선택 -> 광고 단위 이름 : '하단 배너'로 설정 -> '광고 단위 만들기'

 

6. 안드로이드 프로젝트에 코드 입력

firebase_example 프로젝트의 pubspec.yaml파일을 열고 Firebase Admob 패키지를 추가

google_mobile_ads: ^0.13.0 # 파이어베이스 애드몹 패키지

 

app/src/main 폴더 아래에 있는 AndroidManifest.xml 파일에 다음 코드를 추가

<meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-4874780746681507~9421048506"/> //애드몹 앱 ID

    </application>

 

7. 플러터 프로젝트에 코드 입력

main.dart 파일을 열고 Admob 패키지 import

main() 함수에서 Admob 초기화 함수 호출