[Flutter, admob] 안드로이드, iOS에 따라 광고 ID 자동 변경하기
플러터(flutter)를 이용해서 앱을 만들고 수익화를 위한 첫단계로 애드몹(admob) 광고를 앱에 붙이실겁니다. 그리고 애드몹 광고를 송출하기 위해서는 애드몹에서 만든 광고 별로 ID를 입력해야 하는데 플러터(flutter)는 안드로이드와 iOS 둘다 만들수 있는 크로스 플랫폼이기 때문에 ios용 아이디와 안드로이드 용 광고 아이디가 각각 필요합니다. 물론 둘 중 하나만 만든다고 하면 한개만 있어도 됩니다.
하지만, 이렇게 iOS, 안드로이드 둘다 만든다고 하면 iOS를 빌드 할때, 안드로이드를 빌드 할때마다 광고 ID를 변경해줘야 하는 번거로움이 있는데 이번에는 그런 번거로움을 해결할 수 있는 방법과 배포버전일때와 디버그 모드일때 광고 ID를 변경하는 방법을 알아보도록 하겠습니다.
목차
1. 광고 id 변수 만들기
2. 안드로이드인지 iOS인지 알아보기
3. 안드로이드, iOS에 따라 변수 적용하기
광고 id 변수 만들기
kReleaseMode로 현재 배포버전인지 확인후 릴리스 모드이면 실제 광고 ID가 이는 Map 변수를 아니면 테스트용 광고 ID가 있는 Map 변수를 반환합니다. '[YOUR iOS AD UNIT ID]' 에 실제 애드몹에서 만드신 광고 ID를 입력하면 됩니다.
const Map<String, String> BANNER_UNIT_ID = kReleaseMode
? {
'ios': '[YOUR iOS AD UNIT ID]',
'android': '[YOUR Android AD UNIT ID]',
}
: {
'ios': 'ca-app-pub-3940256099942544/2934735716',
'android': 'ca-app-pub-3940256099942544/6300978111',
};
안드로이드, iOS 테스트 광고 단위 ID
광고형식 | 테스트용 광고 ID for 안드로이드 | 테스트용 광고 ID for iOS |
앱 오프닝 광고 | ca-app-pub-3940256099942544/9257395921 | ca-app-pub-3940256099942544/5575463023 |
적응형 배너 | ca-app-pub-3940256099942544/9214589741 | ca-app-pub-3940256099942544/2435281174 |
배너 | ca-app-pub-3940256099942544/6300978111 | ca-app-pub-3940256099942544/2934735716 |
전면 광고 | ca-app-pub-3940256099942544/1033173712 | ca-app-pub-3940256099942544/4411468910 |
동영상 전면광고 | ca-app-pub-3940256099942544/8691691433 | ca-app-pub-3940256099942544/5135589807 |
보상형 광고 | ca-app-pub-3940256099942544/5224354917 | ca-app-pub-3940256099942544/1712485313 |
보상형 전면광고 | ca-app-pub-3940256099942544/5354046379 | ca-app-pub-3940256099942544/6978759866 |
네이티브 광고 고급형 | ca-app-pub-3940256099942544/2247696110 | ca-app-pub-3940256099942544/3986624511 |
네이티브 광고 고급형 동영상 | ca-app-pub-3940256099942544/1044960115 | ca-app-pub-3940256099942544/2521693316 |
안드로이드인지 iOS인지 알아보기
Platform.isAndroid를 이용해 안드로이드면 "android"를 iOS면 "ios" 가 String os에 들어가게 합니다.
import 'dart:io' show Platform;
String os = Platform.isAndroid ? "android" : "ios";
안드로이드, iOS에 따라 변수 적용하기
적용하는 법은 쉽습니다. 1단계에서 만든 BANNER_UNIT_ID에 os를 대입하면 자동으로 안드로이드냐 iOS냐에 따라 광고 ID를 자동으로 지정할 수 있습니다.
final String bannerId = BANNER_UNIT_ID[os]!;
전체코드
광고 아이디 변수
const Map<String, String> BANNER_UNIT_ID = kReleaseMode
? {
'ios': '[YOUR iOS AD UNIT ID]',
'android': '[YOUR Android AD UNIT ID]',
}
: {
'ios': 'ca-app-pub-3940256099942544/2934735716',
'android': 'ca-app-pub-3940256099942544/6300978111',
};
String os = Platform.isAndroid ? "android" : "ios";
final String bannerId = BANNER_UNIT_ID[os]!;
참조 사이트
https://developers.google.com/admob?hl=ko
'플러터관련 정보 > 플러터-안드로이드 개발' 카테고리의 다른 글
[플러터, 애드몹] 테스트 기기에서 네이티브 광고 검사기(admob native ad validator)가 나올때 (0) | 2023.11.26 |
---|---|
[Flutter, admob] 앱 오프닝 광고(App open ads) 플러터 앱에 추가하기(사용법) -ChatGPT와 공식 문서로 코딩 공부 (2) | 2023.10.26 |
[플러터, 구글드라이브] 앱 데이터를 Google Drive에 백업하기&복원하기 2탄 (0) | 2023.09.17 |
[플러터, 구글드라이브] 앱 데이터를 Google Drive에 백업하기&복원하기 1탄 (2) | 2023.09.16 |
[flutter, drift, SQLite] New 플러터와 드리프트(drift)로 간단한 메모장 만들기 - 2탄(컬럼 추가, 마이그레이션) (0) | 2023.06.16 |
댓글