본문 바로가기

[Flutter, admob] 안드로이드, iOS에 따라 광고 ID 자동 변경하기

ironwhale 2023. 10. 25.

플러터(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  |  Google for Developers

설정한 기준에 부합하는 타겟팅 인앱 광고를 통해 모바일 앱에서 수익을 창출하는 방법을 알아보세요.

developers.google.com

 

댓글