구글 애드몹을 위한 iOS TrackingPermission 설정
iOS에서 Tracking Permission이 필요한 이유
Apple 가이드라인 2.1 만족 여부
Apple의 가이드라인 2.1은 AppTrackingTransparency 프레임워크를 통해 사용자의 추적 권한을 명시적으로 요청하도록 요구합니다. 특히, iOS 14 이상 및 iPadOS 18.2.1 환경에서 권한 요청이 표시되지 않으면 심사에서 거절될 수 있습니다. 위에서 설명한 설정은 이 요구사항을 충족하며, 추적 권한 요청이 iPadOS를 포함한 모든 iOS 환경에서 올바르게 표시되도록 보장합니다. 구글 애드몹(Google AdMob)과 같은 타겟팅 광고 네트워크는 **사용자의 IDFA(Identifier for Advertisers)**를 사용하여 개인화된 광고를 제공합니다. 하지만, iOS 14 이상부터 Apple은 사용자의 개인정보 보호를 강화하기 위해 앱이 IDFA를 활용하려면 AppTrackingTransparency 프레임워크를 통해 명시적인 동의를 받도록 요구합니다.
이를 구현하지 않으면:
- 개인화되지 않은 일반 광고만 제공되어 광고 수익이 감소할 수 있습니다.
- Apple의 심사를 통과하지 못할 가능성이 있습니다.
따라서, 애드몹을 사용하여 최대한의 광고 수익을 얻고 Apple의 가이드라인을 준수하려면, 사용자에게 추적 권한을 요청하는 것이 필수입니다.
TrackingPermission 구현 방법
react-native-tracking-transparency 라이브러리를 사용하여 간단하게 iOS 추적 권한을 요청할 수 있습니다. 아래는 설정과 사용 방법입니다.
1. 라이브러리 설치
먼저, react-native-tracking-transparency 패키지를 설치합니다:
npm install react-native-tracking-transparency
cd ios
pod install
2. Info.plist 설정 추가
Info.plist 파일에 아래의 키를 추가하여 추적 권한 요청 시 표시할 메시지를 정의합니다:
<key>NSUserTrackingUsageDescription</key>
<string>개인화된 광고 제공을 위해 추적 권한이 필요합니다.</string>
3. TrackingPermission 컴포넌트 구현
아래는 TrackingPermission 컴포넌트의 구현 예제입니다. 중요: 최신 버전에서는 requestTrackingPermission을 사용해야 합니다.
import React, { useEffect } from 'react';
import { Platform, Alert } from 'react-native';
import { requestTrackingPermission } from 'react-native-tracking-transparency';
const TrackingPermission = () => {
useEffect(() => {
const requestPermission = async () => {
if (Platform.OS === 'ios') {
try {
const status = await requestTrackingPermission();
console.log('Tracking Authorization Status:', status);
if (status === 'authorized') {
console.log('Tracking authorized');
} else {
console.log('Tracking not authorized');
Alert.alert(
'Tracking 권한 필요',
'개인화 광고 제공을 위해 권한이 필요합니다.',
[{ text: '확인' }]
);
}
} catch (error) {
console.error('Tracking 권한 요청 오류:', error);
}
} else {
console.log('iOS에서만 Tracking 권한 요청이 필요합니다.');
}
};
requestPermission();
}, []);
return null;
};
export default TrackingPermission;
requestTrackingPermission 사용 이유
과거에는 requestTrackingAuthorization 함수가 사용되었으나, 최신 버전에서는 **requestTrackingPermission**으로 대체되었습니다.
주요 차이점:
- **requestTrackingPermission**은 최신 React Native 및 라이브러리 버전과 더 잘 호환됩니다.
- 네이티브 종속성을 처리하는 방식이 개선되었습니다.
Tip: requestTrackingPermission을 사용하는 것이 더 안전하며, 업데이트된 문서와 코드 스타일을 준수할 수 있습니다.
요약
- Tracking Permission 요청 이유: 개인화된 광고 제공 및 광고 수익 극대화.
- 필수 설정: Info.plist에 메시지 추가.
- 라이브러리 사용: react-native-tracking-transparency 설치 후 requestTrackingPermission 함수로 구현.