5줄요약 1. admob 계정 생성 (https://apps.admob.com/) 2. admob에서 앱 추가, 광고단위 만들기 3.google_mobile_ads라이브러리 추가 (https://pub.dev/packages/google_mobile_ads/install) 4. ios :ios/Runner/Info.plistios/Runner/Info.plist, android :android/app/src/main/AndroidManifest.xml광고 단위 ID 추가 5. google_mobile_ads를 활용해서 소스 구현 |
이전 글 보기(요약 1, 2번) : https://onemanonemonthoneproduct.tistory.com/4
3. google_mobile_ads 라이브러리 추가
pub.dev 페이지에서 google_mobile_ads 검색 후 플러터 프로젝트에서 라이브러리 인스톨
4. 프로젝트에 ApplicationID(단위 ID) 추가
✔︎ 개발 중에는 테스트ID로 활용 (참고: https://developers.google.com/admob/android/test-ads?hl=ko)
- Android : android/app/src/main/AndroidManifest.xml
- 아래의 meta-data에 application id(단위 ID)추가
<application ...>
...
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[YOUR APP ID]"
/>
...
</application>
- ios : ios/Runner/Info.plist
- 아래의 meta-data에 application id(단위 ID)추가
<dict>
...
<key>GADApplicationIdentifier</key>
<string>[YOUR APP ID]</string>
...
</dict>
5. 소스 구현
- main.dart 에 라이브러리 init
Future<void> main() async {
...
//라이브러리 init
await MobileAds.instance.initialize();
...
runApp(
const ProviderScope(child: TestApp()),
);
}
5-0. 개요
- 구현 하고자 하는 광고 단위를 검색해서 적용하세요.
- 호출 구현 플로우는 load ➜ show ➜ dispose 순서로 구현합니다.
- <YOUR_AD_UNIT_ID>에 발급받은 application id(단위 ID)로 변경합니다.
5-1. 배너 광고 (Banner Ads)
// Load
BannerAd _bannerAd = BannerAd(
adUnitId: '<YOUR_AD_UNIT_ID>',
size: AdSize.banner,
request: AdRequest(),
listener: BannerAdListener(),
);
_bannerAd.load();
// Show
if (_isBannerAdReady) {
AdWidget(ad: _bannerAd);
}
// Dispose
_bannerAd.dispose();
5-2. 전면 광고 (Interstitial Ads)
// Load
InterstitialAd.load(
adUnitId: '<YOUR_AD_UNIT_ID>',
request: AdRequest(),
adLoadCallback: InterstitialAdLoadCallback(
onAdLoaded: (InterstitialAd ad) {
_interstitialAd = ad;
},
onAdFailedToLoad: (LoadAdError error) {
print('Interstitial ad failed to load: $error');
},
),
);
// Show
_interstitialAd?.show();
// Dispose
_interstitialAd?.dispose();
5-3. 보상형 광고 (Rewarded Ads)
// Load
RewardedAd.load(
adUnitId: '<YOUR_AD_UNIT_ID>',
request: AdRequest(),
rewardedAdLoadCallback: RewardedAdLoadCallback(
onAdLoaded: (RewardedAd ad) {
_rewardedAd = ad;
},
onAdFailedToLoad: (LoadAdError error) {
print('Rewarded ad failed to load: $error');
},
),
);
// Show
_rewardedAd?.show(onUserEarnedReward: (AdWithoutView ad, RewardItem reward) {
print('Reward earned: ${reward.amount}');
});
// Dispose
_rewardedAd?.dispose();
예제를 참고해서 앱에 AD mob을 추가하고 수익을 발생시켜보세요.
'플러터' 카테고리의 다른 글
[flutter] firebase 연결 오류 'Error: Failed to list Firebase projects. See firebase-debug.log for more info.' (0) | 2024.06.12 |
---|---|
[flutter] admob 적용 - 1 (0) | 2023.12.01 |
[flutter] Debounce, Throttle를 쉽게 적용하는 방법 (0) | 2023.11.30 |