배너 광고는 기기 화면의 상단이나 하단에서 앱의 레이아웃 안에 게재됩니다. 사용자가 앱과 상호작용하는 동안 화면에 계속 표시되며 일정 시간이 지나면 자동으로 새로고침될 수 있습니다
이 가이드에는 Ad Manager의 배너 광고를 사용할 수 있습니다. 코드 스니펫과 지침 외에도 배너 크기 조정에 대한 정보를 얻을 수 있습니다
항상 테스트 광고로 테스트
앱을 빌드하고 테스트할 때는 운영 중인 실제 광고 대신 테스트 광고를 사용하세요. 이렇게 하지 않으면 계정이 정지될 수 있습니다.
테스트 광고를 로드하는 가장 쉬운 방법은 배너:
/21775744923/example/adaptive-banner
테스트 광고 단위는 모든 요청에 대해 테스트 광고를 반환하도록 구성되어 있습니다. 코딩, 테스트 및 디버깅 중에 앱에서 자유롭게 사용할 수 있습니다. 단, 있습니다.
광고 로드
다음 예에서는 배너 광고를 인스턴스화합니다.
class BannerExampleState extends State<BannerExample> { AdManagerBannerAd? _bannerAd; bool _isLoaded = false; // TODO: replace this test ad unit with your own ad unit. final adUnitId = '/21775744923/example/adaptive-banner'; /// Loads a banner ad. void loadAd() { _bannerAd = AdManagerBannerAd( adUnitId: adUnitId, request: const AdManagerAdRequest(), size: AdSize.banner, listener: AdManagerBannerAdListener( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); setState(() { _isLoaded = true; }); }, // Called when an ad request failed. onAdFailedToLoad: (ad, err) { debugPrint('AdManagerBannerAd failed to load: $error'); // Dispose the ad here to free resources. ad.dispose(); }, ), )..load(); } }
배너 크기
아래 표에는 표준 배너 크기가 나와 있습니다.
크기(dp(너비x높이)) | 설명 | AdSize 상수 |
---|---|---|
320x50 | 표준 배너 | banner
|
320x100 | 대형 배너 | largeBanner
|
320x250 | 중형 직사각형 | mediumRectangle
|
468x60 | 전체 크기 배너 | fullBanner
|
728x90 | 리더보드 | leaderboard
|
제공된 너비 x 조정 가능한 높이 | 적응형 배너 | 해당 사항 없음 |
맞춤 배너 크기를 지정하려면 원하는 AdSize
를 설정합니다.
final AdSize adSize = AdSize(300, 50);
배너 광고 이벤트
AdManagerBannerAdListener
를 사용하면 다음과 같은 수명 주기 이벤트를 수신 대기할 수 있습니다.
광고가 로드되었을 때처럼 말이죠 이 예에서는 각 메서드를 구현하고 메시지를 기록합니다.
추가합니다.
class BannerExampleState extends State<BannerExample> { AdManagerBannerAd? _bannerAd; bool _isLoaded = false; // TODO: replace this test ad unit with your own ad unit. final adUnitId = '/21775744923/example/adaptive-banner'; /// Loads a banner ad. void loadAd() { _bannerAd = AdManagerBannerAd( adUnitId: adUnitId, request: const AdManagerAdRequest(), size: AdSize.banner, listener: AdManagerBannerAdListener( // Called when an ad is successfully received. onAdLoaded: (ad) { debugPrint('$ad loaded.'); setState(() { _isLoaded = true; }); }, // Called when an ad request failed. onAdFailedToLoad: (ad, err) { debugPrint('AdManagerBannerAd failed to load: $error'); // Dispose the ad here to free resources. ad.dispose(); }, // Called when an ad opens an overlay that covers the screen. onAdOpened: (Ad ad) {}, // Called when an ad removes an overlay that covers the screen. onAdClosed: (Ad ad) {}, // Called when an impression occurs on the ad. onAdImpression: (Ad ad) {}, ), )..load(); } }
배너 광고 표시
AdManagerBannerAd
를 위젯으로 표시하려면 AdWidget
를 인스턴스화해야 합니다.
load()
를 호출한 후 지원되는 광고와 함께 표시됩니다. load()
를 호출하기 전에 위젯을 만들 수 있지만 위젯 트리에 위젯을 추가하기 전에 load()
를 호출해야 합니다.
AdWidget
는 Flutter의 위젯 클래스에서 상속되며 다른 클래스처럼 사용할 수 있습니다.
위젯에 추가합니다. iOS에서는 지정된 속성이 있는 위젯에 위젯을 배치해야 합니다.
지정할 수 있습니다. 그렇지 않으면 광고가 게재되지 않을 수 있습니다. AdManagerBannerAd
는 광고와 일치하는 크기의 컨테이너에 배치할 수 있습니다.
... if (_bannerAd != null) { Align( alignment: Alignment.bottomCenter, child: SafeArea( child: SizedBox( width: _bannerAd!.size.width.toDouble(), height: _bannerAd!.size.height.toDouble(), child: AdWidget(ad: _bannerAd!), ), ), ) } ...
더 이상 액세스할 필요가 없는 광고는 폐기해야 합니다. 권장사항
dispose()
호출 시점은 AdWidget
위젯 트리 또는 AdManagerBannerAdListener.onAdFailedToLoad()
에서
있습니다.
작업이 끝났습니다. 이제 앱에서 배너 광고를 게재할 수 있습니다.
Android 9 이하의 스크롤 제한
Android 9 이상을 실행하는 구형이거나 덜 강력한 기기 중 최적의 성능을 발휘할 수 있습니다 을 사용해야 합니다. 권장사항만 Android 10 이상에서 이러한 유형의 배너를 사용하는 경우 고정 게재위치 배너(예: 앵커 광고 배너는 영향을 받지 않으며 API 레벨을 제공합니다.