본문 바로가기

앱 개발

iOS 앱 리젝트 해결기: App Tracking Transparency (ATT) 구현 필수!

반응형

리젝트 메시지

Guideline 2.1 - Information Needed
The app uses the AppTrackingTransparency framework, but we are unable to locate
the App Tracking Transparency permission request when reviewed on iPadOS 18.6.

 

왜 리젝트됐을까?

제 앱은 Google AdMob을 사용하는 메트로놈 앱입니다. 리젝트된 이유를 분석해보니

 

1. ATT 패키지는 설치했지만 실제로 사용하지 않음

  • pubspec.yaml에 app_tracking_transparency 패키지 포함 ✅
  • Info.plist에 권한 설명 추가 ✅
  • 실제 권한 요청 코드는 없음 ❌

 

2. Apple의 판단

  • "ATT 프레임워크가 있으니 사용자를 추적할 의도가 있는데, 왜 권한을 요청하지 않나?"
  • 특히 iPadOS 18.6 리뷰에서 이 문제를 발견

 

ATT가 뭐고 왜 필요한가?

App Tracking Transparency (ATT)란?

iOS 14.5부터 Apple이 도입한 개인정보 보호 기능입니다. 앱이 사용자를 "추적"하려면 반드시 허락을 받아야 합니다.

 

맞춤형 광고란?

  • 맞춤형 광고: 사용자의 관심사, 행동 패턴을 분석해서 보여주는 광고
    • 예: 운동 앱을 자주 쓰는 사용자 → 운동화 광고
  • 일반 광고: 모든 사용자에게 동일하게 보여주는 광고

 

IDFA (Identifier for Advertisers)

  • Apple 기기의 광고 식별자
  • ATT 권한이 있어야만 접근 가능
  • 광고 네트워크가 사용자를 식별하고 맞춤형 광고를 제공하는데 사용

 

수익 차이

  • ATT 권한 O → IDFA 사용 가능 → 맞춤형 광고 → 높은 광고 수익 💰
  • ATT 권한 X → IDFA 사용 불가 → 일반 광고만 → 낮은 광고 수익 📉

 

해결 방법

1. 필요한 패키지 설치

# pubspec.yaml
dependencies:
  app_tracking_transparency: ^2.0.6

 

2. Info.plist 설정 확인

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

 

3. 권한 요청 코드 추가

// main.dart
import 'dart:io';
import 'package:app_tracking_transparency/app_tracking_transparency.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // iOS에서만 ATT 권한 요청
  if (Platform.isIOS) {
    try {
      final status = await AppTrackingTransparency.requestTrackingAuthorization();
      if (status == TrackingStatus.authorized) {
        print('맞춤형 광고 가능!');
      } else {
        print('일반 광고만 표시');
      }
    } catch (e) {
      print('ATT 권한 요청 실패: $e');
    }
  }
  
  // AdMob 초기화 (ATT 권한 요청 후에!)
  MobileAds.instance.initialize();
  
  runApp(MyApp());
}

 

주의사항

1. ATT 권한 요청 타이밍

  • 앱 시작 직후가 가장 안전
  • AdMob 초기화 전에 요청해야 함

 

2. Android는 해당 없음

  • ATT는 iOS만의 정책
  • Platform.isIOS 체크 필수

 

3. 사용자가 거부해도 앱은 작동해야 함

  • 권한 거부 시 일반 광고만 표시
  • 앱 기능 제한 금지

 

실제 영향

ATT 도입 후 통계

  • 평균 ATT 허용률: 약 25-30%
  • 맞춤형 광고 eCPM이 일반 광고보다 2-3배 높음
  • 수익 감소를 최소화하려면 UX 개선 필요

 

결론

Apple은 사용자 프라이버시를 매우 중요하게 생각합니다. AdMob 같은 광고 네트워크를 사용한다면

  1. ATT 패키지를 설치했으면 반드시 사용하기
  2. 사용하지 않을 거면 완전히 제거하기
  3. 애매한 중간 상태 = 리젝트

저처럼 "패키지만 설치하고 실제로 안 쓰는" 실수를 하지 마세요!

반응형