Flutter에서 광고를 추가하려면, 주로 Google의 모바일 광고 SDK인 Google Mobile Ads SDK를 사용합니다. 이를 통해 배너 광고, 전면 광고, 보상형 광고 등 다양한 형식의 광고를 앱에 통합할 수 있습니다. 다음은 Flutter 앱에 광고를 추가하는 기본적인 단계입니다:

1. Google Mobile Ads SDK 추가

pubspec.yaml 파일에 Google Mobile Ads Flutter 플러그인을 의존성으로 추가합니다.

yamlCopy code
dependencies:
  flutter:
    sdk: flutter
  google_mobile_ads: ^latest_version

**latest_version**은 사용하고 싶은 google_mobile_ads 패키지의 최신 버전으로 대체해야 합니다. 패키지의 최신 버전은 pub.dev에서 확인할 수 있습니다.

2. Android와 iOS를 위한 설정

3. 광고 초기화 및 로드

앱이 시작될 때 MobileAds.instance.initialize() 메소드를 호출하여 Google Mobile Ads SDK를 초기화합니다. 이는 보통 main.dart 파일의 main() 함수에서 수행됩니다.

dartCopy code
void main() {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();
  runApp(MyApp());
}

4. 광고 표시

이제 광고 유닛을 생성하고 광고를 로드한 후, 앱의 UI에 표시할 수 있습니다. 예를 들어, 배너 광고를 표시하는 방법은 다음과 같습니다:

dartCopy code
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: BannerAdExample(),
    );
  }
}

class BannerAdExample extends StatefulWidget {
  @override
  _BannerAdExampleState createState() => _BannerAdExampleState();
}

class _BannerAdExampleState extends State<BannerAdExample> {
  late BannerAd _bannerAd;
  bool _isBannerAdReady = false;

  @override
  void initState() {
    super.initState();

    _bannerAd = BannerAd(
      adUnitId: 'ca-app-pub-3940256099942544/6300978111', // 테스트 광고 ID
      size: AdSize.banner,
      request: AdRequest(),
      listener: BannerAdListener(
        onAdLoaded: (_) {
          setState(() {
            _isBannerAdReady = true;
          });
        },
        onAdFailedToLoad: (ad, err) {
          print('Failed to load a banner ad: ${err.message}');
          _isBannerAdReady = false;
          ad.dispose();
        },
      ),
    );

    _bannerAd.load();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Banner Ad Example'),
      ),
      body: Center(
        child: _isBannerAdReady
            ? Container(
                width: _bannerAd.size.width.toDouble(),
                height: _bannerAd.size.height.toDouble(),
                child: AdWidget(ad: _bannerAd),
              )
            : Text('Loading banner ad...'),
      ),
    );
  }

  @override
  void dispose() {
    _bannerAd.dispose();
    super.dispose();
  }
}

이 예제에서는 배너 광고를 로드하고, 준비되면 화면에 표시합니다. 실제 앱에 배포할 때는 **adUnitId**를 귀하의 실제 광고 단위 ID로 교체해야 합니다.

Google Mobile Ads SDK를 사용하면 다양한 유형의 광고를 쉽게 통합하고 관리할 수 있습니다. Flutter 앱에 광고를 추가할 때는 사용자 경험을 방해하지 않는 방식으로 광고를 배치하는 것이 중요합니다.