WWDC

[WWDC22] Explore App Tracking Transparency

Phililip
728x90

안녕하세요.

 

WWDC22 'Explore App Tracking Transparency' 세션을 보고 내용 정리해 볼게요.

 


사용자를 추적(tracking)하려면 사용자한테 권한을 받아야 하고, 그러기 위해선 AppTrackingTransparency framework를 적용해야 합니다.

 

 

이번 세션을 통해서 언제 AppTrackingTransparency를 적용하면 좋을지, 어떻게 적용해야 하는지를 알아볼 예정이에요.

 

 

# When to adopt

추적이란 앱에서 수집된 사용자 또는 기기 데이터를 다른 회사의 앱, 웹 사이트에서 수집된 사용자 또는 기기 데이터와 연결해서 타겟팅 광고 또는 광고 측정을 수행하는 행위 또는 사용자 또는 기기 데이터를 데이터 브로커와 공유하는 행위를 의미합니다.

 

추적 관련한 몇 가지 상황을 살펴볼게요.

 

예를 들어서, 'Pal About Inc' 라는 회사가 만든 'Pal About' 이란 앱에서 사용자 'Julia'의 검색 결과(ex. Julia는 와플을 좋아한다)를 서버에 저장하고 있다가, 서버에 저장된 데이터를 바탕으로 'Julia' 한테 타겟팅 광고(ex. Breakfast 광고)를 보여주는 경우라면, 데이터를 다른 회사랑 공유하지 않기 때문에 추적이 아닙니다.

 

 

만약 'Pal About Inc' 회사의 또 다른 앱 'Pal About Plus'에서 얻은 정보를 토대로 'Pal About' 앱에서 타겟팅 광고를 보여줘도 추적이 아닙니다.

 

즉, 데이터를 다른 회사랑 공유를 했는지가 중요한 것입니다.

 

 

다른 예를 볼까요?

 

'Pal About Inc' 회사가 아닌 'Food Delivery Inc' 라는 회사가 만든 'Food Delivery App' 이란 앱이 있다고 해볼게요.

 

'Food Delivery App' 앱을 가입할 때 이메일 주소를 사용했고, 'Pal About' 서버는 계정과 이메일 정보를 알고 있으니 'Food Delivery App' 앱의 계정과 'Pal About' 앱의 계정을 연결(link)시킬 수 있습니다.

 

 그러고 나서 'Food Delivery App' 앱에서 얻은 데이터(ex. 밤에 자주 주문한다)를 'Pal About' 서버로 전달하고, 'Pal About'은 기존에 알고 있던 정보와 'Food Delivery App' 앱한테 얻은 정보를 조합하여 새로운 타겟팅 광고(ex. All-day Breakfast 광고)를 보여준다고 가정해 볼게요.

 

이 경우, 'Pal About' 앱 계정의 이메일 주소와 다른 회사의 사용자 데이터(이메일, 주문 습관 등)를 광고 목적으로 연결해서 사용했으니 'Pal About' 앱에서 사용자한테 추적 허가를 요청해야 합니다.

 

만약 연결에 사용되는 식별자(id, email 등)를 암호화(hash 등)해서 사용했어도 추적 허가를 받아야 합니다.

(암호화를 했든 말든 데이터를 다른 회사랑 공유했기 때문이죠.)

 

 

만약, 광고 측정 목적을 위해서 3rd party SDK를 사용하는 경우라면 어떨까요?

 

추적 허용을 받아야 하는지 여부는, 3rd party SDK가 특정 앱의 데이터를 다른 회사의 데이터와 결합하는지 여부에 따라 달라집니다.

 

예를 들어, 'Pal About' 앱에서 사용하고 있는 3rd party SDK가 'Pal About' 사용자의 데이터만을 활용하여 광고 분석을 해줄 경우엔 추적 허용이 필요하지 않습니다.

 

 

만약 SDK가 'Pal About' 사용자(user123) 데이터를 'Ad Network' 라는 곳에 공유하고, 'Ad Network'는 동일한 사용자에 대한 다른 앱 데이터를 가져와서 연결(link)시키는 경우라면, SDK가 추적하고 있기 때문에 'Pal About' 앱에서 추적 허용 요청을 해야 합니다.

 

이처럼 앱 자체에서는 추적을 하지 않더라도 외부 SDK에 의해서 추적 허용 요청이 필요할 수 있기 때문에 외부 SDK에서 추적을 하고 있는지 꼭 확인을 해야 해요.

 

 

이번엔 데이터 브로커와 공유하는 상황을 살펴볼게요.

 

우선, 일반적으로 데이터 브로커란 일반적으로 데이터를 정기적으로 수집해서 판매하거나 비즈니스와 직접적인 관계가 없는 특정 사용자(end-user) 정보를 제 3자에게 공개하는 회사를 의미합니다.

 

사용자 정보를 데이터 브로커에게 전달하면 추적에 해당됩니다. 이때, 데이터 브로커가 광고 목적으로 사용하든 다른 회사의 데이터와 연결(link) 시키든 상관없이 추적에 해당되기 때문에 주의해야 합니다.

 

 

앱이 데이터 브로커에게 직접 데이터를 전달하는 것이 아닌, 앱의 서버가 데이터 브로커에게 전달하는 행위 자체도 추적에 해당됩니다.

 

 

 

# How to adopt

이번엔 추적 허용 요청을 어떻게 하면 좋을지 알아볼게요.

 

AppTrackingTransparency framework의 requestTrackingAuthorization(completionHandler:) 함수를 호출해서 시스템 허용 팝업을 통해 사용자 동의를 받아야 합니다.

(참고로 AppTrackingTransparency 프레임워크는 iOS 14.0 이상부터 사용할 수 있어요!)

 

그다음, Info.plist에 NSUserTrackingUsageDescription 필드를 추가해서 사용자한테 추적을 하는 이유에 대해 설명해줘야 합니다.

(아래 팝업의 description 영역에 들어갈 말을 써주면 됩니다!)

 

[주의] NSUserTrackingUsageDescription 필드를 꼭 추가해야 합니다.

만약 Info.plist에 NSUserTrackingUsageDescription 필드를 추가하지 않고 requestTrackingAuthorization(completionHandler:) 함수를 호출할 경우 크래시가 발생하니 주의해 주세요!

 

마지막으로 trackingAuthorizationStatus를 사용해서 사용자의 앱 추적 허용 상태를 확인해야 합니다.

 

사용자는 언제든지 앱 추적 허용을 동의 또는 거부할 수 있으므로 앱이 실행될 때마다 추적 허용 상태를 확인하고 허용인 경우에만 추적해야 합니다.

(당연하겠지만, 같은 회사의 앱일지라도 앱 별로 따로따로 앱 추적 허용 동의를 받아야 합니다.)

 

 

그리고 앱 추적을 하는 경우, Privacy Nutrition Label을 추가해야 합니다.

[참고] Privacy Nutrition Label?

Privacy Nutrition Label에 대해선 여기를 참고해 주세요!

 

 

# What about fingerprinting?

앱에서 사용자가 추적을 허용하든 하지 않든 상관없이 지문 수집 또는 기기, 사용자를 식별하기 위해 기기의 신호를 사용하는 행위는 절대 허용되지 않습니다.

(애플이 말하는 fingerprinting은 단순히 지문뿐만 아니라 기기 또는 사용자를 식별할 수 있는 특정 신호 전부를 말하는 것 같아요.)

 

 

fingerprinting의 데이터 예로는 몇 가지 있습니다.

- user's web browser and its configuration
- user's device and its configuration
- user's location
- user's network connection

 

아래는 애플 공식 가이드에서 가져온 것인데 참고해 주세요!

 

 

 

# 요약

- 특정 앱에서 추출한 데이터를 앱의 소유권을 가진 회사에서만 처리한다면 추적이 아니다.
- 특정 앱에서 추출한 데이터를 광고 목적으로 다른 회사에게 공유를 해줬다면 추적이다.
- 특정 앱에서 추출한 데이터를 데이터 브로커에게 공유했다면, 무조권 추적이다.
- 사용자 또는 기기를 식별하기 위한 목적으로 데이터를 추출해선 안된다.

 

 

# 참고

- https://developer.apple.com/videos/play/wwdc2022/10166

 

Explore App Tracking Transparency - WWDC22 - Videos - Apple Developer

Learn more about App Tracking Transparency and how it helps people using your app have choice and control over tracking. App Store Policy...

developer.apple.com

 


이번 글은 여기서 마무리.

 

 

 

반응형