개발자가 iOS 14.5에서 사용자 기기의 광고 식별자(IDFA)에 액세스하거나 사용자를 추적하려면 Apple의 앱 추적 투명성 프레임워크를 통해 사용자 권한을 수신해야 합니다. 자세한 내용은 Apple의 사용자 개인 정보 보호 및 데이터 사용과 Apple의 앱 추적 투명성 문서를 참조하세요.
영향을 받는 Firebase 제품
Firebase SDK는 IDFA에 액세스하지 않지만 일부는 IDFA 액세스가 필요할 수 있는 Google 애널리틱스와 통합되어 있습니다.
아래 표에는 Apple 플랫폼에서 사용할 수 있는 Firebase 제품과 IDFA에 액세스할 수 없는 경우 각 제품의 기능이 어떻게 영향을 받는지가 나열되어 있습니다.
제품 | IDFA에 액세스할 수 없는 경우의 영향 |
---|---|
A/B 테스팅 | Google 애널리틱스와 통합된 A/B 테스팅의 일부 타겟팅 데이터(예: 인구통계)는 IDFA에서 가져옵니다. IDFA에 대한 액세스 권한이 없는 앱에서는 이 타겟팅을 사용할 수 없습니다. |
앱 체크 | 영향 없음 |
앱 배포 | 영향 없음 |
인증 | 인증과 자사 인증 제공업체에는 영향이 없습니다. (예: Google 로그인, 전화 인증) |
Crashlytics | 영향 없음. 실시간 비정상 종료 데이터와 탐색경로를 제공하는 Google 애널리틱스와 Crashlytics의 통합은 IDFA에 영향을 받지 않습니다. |
동적 링크 | 링크 열기 기능에는 영향이 없습니다. Google 애널리틱스와 함께 사용할 경우 링크 전환 이벤트의 기여 분석을 사용할 수 없습니다. |
Cloud Firestore | 영향 없음 |
Cloud Functions | 영향 없음 |
인앱 메시지 | 영향 없음 |
Firebase 설치 | 영향 없음 |
InstanceID | 영향 없음 |
클라우드 메시징 | Google 애널리틱스와 함께 사용할 경우 Google 애널리틱스는 일부 FCM 관련 전환 이벤트를 자동으로 로깅합니다. 이러한 이벤트에 대한 기여 분석에는 IDFA 액세스가 필요합니다. |
Firebase ML | 영향 없음 |
Performance Monitoring | 영향 없음 |
원격 구성 | Google 애널리틱스와 함께 사용하는 원격 구성에서는 IDFA 액세스 없이 타겟팅하는 데 자동 생성된 사용자 속성을 허용하지 않습니다. |
실시간 데이터베이스 | 영향 없음 |
Cloud Storage | 영향 없음 |
영향을 받는 Firebase 통합
아래 표에는 IDFA에 액세스할 수 없는 경우 영향을 받는 Firebase 통합 제품이 나열되어 있습니다.
제품 | IDFA에 액세스할 수 없는 경우의 영향 |
---|---|
Google 애널리틱스 | 애널리틱스 이벤트 로깅, 이벤트 보고, 전환 측정은 영향을 받지 않지만 IDFA에 액세스할 수 없는 경우 기여 분석은 영향을 받습니다. iOS 14에 대한 Google의 대응에 대해 자세히 알아보려면 블로그 게시물을 참조하세요. |
iOS 14에서 앱 추적 권한 요청
Apple 애플리케이션에서 IDFA에 액세스할 수 있도록 하려면 Apple의 앱 추적 투명성 프레임워크를 앱에 추가하고 사용자의 IDFA를 추적하거나 액세스할 권한을 요청하면 됩니다.
대부분의 애플리케이션에서는 권한을 요청하기 전에 사전 안내 또는 설명 화면을 표시합니다. 액세스 권한을 요청하기 전에 설명 화면을 통해 앱이 IDFA를 사용하는 방식에 대한 배경 정보를 사용자에게 제공할 수 있습니다.
AdMob 또는 Ad Manager 앱 게시자인 경우 Apple의 가이드라인에 따라 사용자 추적에 대한 동의와 개인 맞춤 광고 게재에 대한 동의를 얻는 과정을 자동으로 처리하는 Funding Choices를 사용하는 것이 좋습니다. 자세한 내용은 사용자 메시징을 이용한 AdMob 동의 페이지를 참조하세요.
다음 가이드에서는 앱 추적 투명성을 통해 추적 액세스를 요청하기 전에 Firebase 인앱 메시지를 사용하여 설명 화면을 만들고 표시하는 솔루션을 제공합니다.
앱에 인앱 메시지 추가
안내에 따라 Apple 애플리케이션에 인앱 메시지를 추가합니다.
인앱 메시지 닫기 처리
우선 iOS 13을 실행하는 기기와 같이 동의 대화상자를 표시할 수 없는 기기에는 설명 화면을 표시하지 마세요. 다음 코드는 FirebaseApp.configure()
바로 다음에 실행되어야 합니다.
Swift
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
사용자가 설명 화면을 닫을 때 이벤트를 처리하도록 InAppMessagingDisplayDelegate
프로토콜을 구현합니다. 사용자가 '확인'을 탭하면 앱 추적 투명성 프레임워크를 통해 시스템 메시지를 표시합니다.
Swift
// The InAppMessaging delegate must be assigned before events can be handled.
InAppMessaging.inAppMessaging().delegate = self
func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
with action: InAppMessagingAction) {
switch action.actionText {
case "OK":
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
case _:
// do nothing
}
}
인앱 메시지 캠페인 만들기
애플리케이션에 코드가 작성되었으면 Firebase Console에서 인앱 메시지를 만듭니다.
- Firebase Console에서 새 인앱 메시지 캠페인을 만듭니다.
- 인앱 메시지를 원하는 콘텐츠로 채우고
app_launch
이벤트에서 트리거할 메시지를 설정합니다. - 타겟팅 섹션에서 캠페인이 최신 버전의 앱만 타겟팅하는지 확인합니다.
인앱 메시지 문서의 안내에 따라 설명 화면의 모양을 맞춤설정할 수 있습니다.
선택사항: 다양한 설명 화면의 A/B 테스트
인앱 메시지는 Firebase A/B 테스팅과 기본적으로 통합되어 있어 다양한 설명 화면을 실험하는 데 사용할 수 있습니다.
Firebase A/B 테스팅은 자동으로 실험 그룹을 만들고 사용자가 애플리케이션의 다양한 변수와 상호작용하는 방식을 시각화할 수 있도록 지원합니다.
앱 추적 권한 기록
앱 추적 권한 응답을 처리할 때 Google 애널리틱스 이벤트를 로깅하지 않았다면 A/B 실험을 진행할 때 응답률의 변화를 측정하기 위해 로깅해야 합니다.
Swift
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
// Optionally, log an event when the user accepts.
Analytics.logEvent("tracking_authorized", parameters: nil)
case _:
// Optionally, log an event here with the rejected value.
}
}
새 전환 이벤트 만들기
Firebase Console의 애널리틱스 섹션에서 전환 메뉴로 이동한 후 위의 샘플 코드로 로깅된 동일한 이름의 새 전환 이벤트를 추가합니다.
새 실험 만들기
Console의 인앱 메시지 메뉴에서 새 실험을 클릭한 후 화면에 표시되는 안내를 따릅니다.
- 타겟팅 섹션에서 캠페인이 최신 버전의 앱만 타겟팅하는지 확인합니다.
- 목표 섹션에서 위의 샘플 코드로 만든 전환 이벤트와 추적할 기타 측정항목을 선택합니다.
실험을 게시한 후에는 확정적인 결과를 도출하기까지 일정 기간 동안 데이터를 수집해야 합니다.
실험 모니터링 및 성공적인 변수 적용 방법에 대한 자세한 내용은 Firebase A/B 테스팅 문서를 참조하세요.