아이폰에서 플러터로 작성된 앱을 테스트시 애드몹의 실제 광고가 아닌 "Test Ad" 라벨이 붙은 테스트 광고가 보이도록 하는 방법을 다루고 있습니다.
자기 광고를 실수로 클릭해도 정책위반이 되어 계정이 정지될 수 있으니 테스트 기기로 등록이 필수입니다.
최초작성 2026. 5. 2
.
.
Android는 AdMob 콘솔(설정 > 테스트 기기)에서 광고 ID(AAID)를 입력해 두면 해당 안드로이드폰에는 테스트 광고가 표시됩니다.
광고 ID는 안드로이드폰의 설정에서 확인이 가능합니다.
.
.
하지만 아이폰에서는 다릅니다. iOS 14.5부터 도입된 ATT(App Tracking Transparency) 때문에 IDFA를 애드몹 콘솔에 등록해도 테스트 광고가 제대로 표시안될 수 있습니다. 또한 IDFA는 아이폰 설정에서 확인도 안되며 앱을 제거하고 재설치할때마다 바뀔 수 있습니다.
.
1) 사용자가 ATT 권한을 거부하면 IDFA가 모두 0으로 나온다
→ AdMob 콘솔에 IDFA를 등록해 둬도 0과는 매칭이 안 됨
2) "광고 추적 제한"이 켜진 단말도 마찬가지로 IDFA가 0
3) 시뮬레이터·일부 환경에선 IDFA 자체를 못 가져온다
4) IDFA는 앱 삭제·재설치 시점이나 OS 정책에 따라 바뀔 수 있다
.
.
이런 이유로 Google Mobile Ads SDK는 iOS에서 IDFA와 무관한 별도의 "테스트 기기 해시 ID"를 만들어 콘솔에 출력해 주고,
그 값을 코드의 testDeviceIds 배열에 그대로 넣도록 안내합니다.
이 해시는 ATT 권한 상태와 관계없이 동작하기 때문에 가장 확실한 방법입니다.
.
.
1단계. 앱을 한 번 실행해서 "테스트 기기 해시 ID" 얻기
.
먼저 등록 코드 없이 앱을 실행해서 광고가 한 번 떠야 합니다.
그러면 콘솔에 다음과 같은 줄이 출력됩니다.
| <Google> To get test ads on this device, set: GADMobileAds.sharedInstance().requestConfiguration .testDeviceIdentifiers = [ "여기에-해시-문자열" ] |
.
.
큰따옴표 안의 값이 이 단말의 테스트 기기 해시 ID입니다. 복사해 둡니다.
.
주의할 점은 이 해시는 앱을 삭제 후 재설치하면 바뀔 수 있습니다. 바뀌면 위 로그를 다시 확인해서 갱신해야 합니다.
이 값은 IDFA가 아니라 SDK가 만든 별도의 식별자입니다.
.
.
2단계. main.dart 에 testDeviceIds 등록
.
main() 안에서 MobileAds.instance.initialize() 다음에 updateRequestConfiguration() 을 호출합니다.
| import 'package:google_mobile_ads/google_mobile_ads.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await MobileAds.instance.initialize(); await MobileAds.instance.updateRequestConfiguration( RequestConfiguration( testDeviceIds: [ // 1단계에서 콘솔에 찍힌 iOS 단말의 해시 ID 'PASTE_YOUR_IOS_DEVICE_HASH_HERE', ], ), ); runApp(const MyApp()); } |
.
.
3단계. 정상 적용 확인
.
앱을 완전히 종료한 뒤 다시 빌드·실행합니다.
화면에 뜬 광고 위에 "Test Ad" 라벨이 보이면 성공입니다.
.
testDeviceIds에 등록된 단말에서만 테스트 광고가 나오고 일반 사용자에겐 정상 광고가 나가므로, 운영 빌드에 그대로 둬도 안전합니다.