Apple App Store는 2024년 5월 1일부터 배포되는 앱(신규, 업데이트 모두)에 대해서 Privacy Manifest 를 포함을 요구하고 있습니다. 아마 저를 포함하는 많은 개발자들이 이 사항을 가지고 머리를 싸매고 있지 않을까 생각이 됩니다.
Privacy Manifest를 프로젝트에 포함시키는 것은 기술적으로 어렵지 않고 애플도 비교적 잘 설명된 문서들을 제공하고 있습니다. (참고1, 참고2) 그리고, 이미 많은 글에서 이것에 대해서 설명하고 있습니다.
저는 애플의 이러한 정책의 방향성은 훌륭하다고 생각합니다. 요즘 개인정보 관련한 정보 제공 요구가 나날이 강화되고 있는데, 앱 개발자 입장에서 내가 작성한 코드에 대해서는 그나마 알 수 있지만, 요즘과 같이 많은 서드파티 SDK 의존성을 바탕으로 앱을 개발하고 있는 상황에서 각 서드파티 SDK에서 수집되는 정보를 일일이 파악할 수도 없으며, 이들이 이 정보를 이용하는 목적은 더더욱 알기가 어렵기 때문입니다. 그리고, 단순 "수집"이냐 "추적"이냐 까지 파고 들려면, 용어도 어렵고, 정책적 부분이 판단도 애매한 상황에서 개발자가 자신이 개발한 앱에서 수집하는 개인정보에 대해서 모두 제공하는 것은 불가에 가깝습니다. 그래서 앱 스토어에서 "앱이 수집하는 개인정보" 섹션을 채우라고 했을 때는 개인정보를 수집할 것 같은 서드파티들의 기술지원 페이지를 참고해서 항목들을 정리해야하만 했습니다.
이번 애플 정책 요구에서 눈에 띄는것은 각 서드파티에서 제공하는 SDK에도 Privacy Manifest를 포함하도록 요청하고 있습니다. 이로 인해서 개발자는 내가 개발하는 코드에서 수집되는 정보에 대해서 좀 더 집중할 수 있습니다. 다만, 오래된 서드파티 SDK 버전을 사용하는 경우에는 부득이 업데이트를 하거나 대안을 찾거나 하는 피곤한 상황이 생기긴 했습니다.. ^^;
저도 이번 정책 변경으로 개발중인 앱을 요건에 맞게 수정 하는 작업을 진행했습니다. 이걸 하는 과정에서 아직도 제 머릿속에 명확하지 않는 점과 구글에 대한 불만을 어딘가에 풀어야 할 듯 하여 몇자 적어봅니다.
1. 나의 앱은 '추적'을 하는가?
제가 개발하는 앱은 Google AdMob을 통한 광고, firebase crashlytics, analytics, remote config를 통한 사용자의 문제 상황 파악과 사용 현황등을 분석하고 있습니다. 그리고, 사용자 가입을 하는 경우에 Google / Apple / Facebook 인증을 통한 인증을 지원하고 있습니다. 아마 요즘 대부분의 광고를 수익원으로 하는 앱들이 이와 유사한 구성이 아닐까 싶습니다.
앱에서 자체적으로 사용자 ID를 이용하여 사용자를 구분하기는 하지만, 참고1의 추적 섹션에 보면 추적을 다음과 같이 정의하고 있습니다.
‘추적’이란 특정 최종 사용자 또는 기기에 대해 앱에서 수집한 데이터(사용자 ID, 기기 ID 또는 프로파일)를 맞춤형 광고 또는 광고 측정 목적으로 타사 데이터와 연결하거나 특정 최종 사용자 또는 기기에 대해 앱에서 수집한 데이터를 데이터 브로커와 공유하는 것을 의미합니다.
내가 개발하는 앱에 직접적으로 타사 데이터와 연결하거나 데이터 브로커와 공유하지는 않으니, 추적은 안하는 것 같습니다. 다만 이제까지 admob의 개인화된 광고는 추적을 사용한다고 알고 있기 때문에 이런 측면에서 내 앱은 사용자를 추적하는 것 같습니다.
그리고, analytics 또는 remobe config 에서 A/B 테스트등을 이용하는 경우에는 사용자의 사용현황을 지속적으로 '추적'하기 때문에 내 앱은 사용자를 추적하는 것 같습니다.
2. 구글에 대한 불만
어찌보면 나의 앱은 당연히 추적을 사용하는데, "1. 나의 앱은 '추적'을 하는가?"라는 것에 대한 의문을 다시 갖게 된 이유는 구글 Admob SDK에 포함된 Privacy Manifest 내용 때문이었습니다. Admob은 추적하지 않는다고 선언되어 있습니다. 이 부분에 대해서 구글에서 명확히 설명을 하지 않아서 왜 이런 판단을 한 것인지는 모르겠습니다만, 저 스스로를 이해시키기 위해서 애써 다음과 같이 생각 하고 있습니다.
구글 입장에서 "자기들은 수집된 정보를 자사에서만 사용하고 타사와 공유하지 않기 때문에 '추적'하지 않는다고 하는게 아닐까?" 입니다. 그러면 나의 앱도 '추적'을 사용하지 않는게 아닐까.. 내가 직접 수집하지는 않으니까..
그리고, firebase analytics의 경우에는 privacy manifest를 2024년 5월 11일 현재 제공하고 있지 않습니다. (참고3) 그럼에도 참고3 링크의 내용에는 개발자가 추가 조치가 필요하지 않다고 나옵니다.
admob이 추적을 하지 않을 수도 있고, analytics가 privacy manifest를 제공하지 않더라도 문제가 아닐 수 있습니다. 그러면 뭐가 문제냐? 앱을 배포하는 입장에서 '추적' 한다고 선언을 하게 되면 privacy manifest에 NSPrivacyTrackingDomains 라는 섹션에 추적을 사용하는 도메인을 하나 이상 등록해야 합니다. 여기에 도메인을 등록하는 방법은 Xcode에서 앱을 profile 모드로 실행해서 Instruments에서 network 템플릿으로 프로파일링 하면 Points of interest 에 아래와 같은 오류 메시지가 포함되는 도메인들을 등록해주면 됩니다.
Start Subsystem Name Process Start Thread Start Message
00:52.871.558 com.apple.neappprivacy Fault myapp (12546) myapp 0x5b9b98 Fault: googleads.g.doubleclick.net is not listed in your app’s NSPrivacyTrackingDomain key in any privacy manifest. It may be following users across multiple apps and websites to create a profile about users of apps that contact this domain.
문제는 여기에 모든 도메인을 나타난다는 보장이 없습니다. 프로파일링 되는 동안 호출되는 것에 대해서만 볼 수 있기 때문입니다. 서드 파티가 특정 조건에 호출하는 도메인 등은 알 수 없는 문제가 있습니다. 그리고, 앱에서 호출하는 도메인이 모두 모니터링 되는 것도 아닌 걸로 봐서는 애플이 수집해 놓은 목록 내에서 보여주는 것 같습니다.
실제 github의 firebase-analytics 관련 이슈에서 app-analytics-services-att.com는 IDFA 수집과 관련되기 때문에 포함시켜야 한다는 이야기가 있습니다.
애플은 iOS17에서 사용자가 AppTrackingTransparency 권한을 거부하면 등록된 도메인에 대한 접근을 차단한다고 되어 있기 때문에 불필요한 도메인이 등록되면 예상하지 못한 문제가 발생할 수 있습니다. (17.4.1 버전에서 테스트 했을 때 아직 차단이 되지는 않는 것 같습니다.)
그래서 구글은 관련된 도메인 리스트라도 제공해야 하는게 아닐까 하는 생각되는데 아직 그런 문서는 찾지를 못했습니다. 구글은 추적을 사용하지 않는다고 선언하더라도 도메인은 포함시켜야 하는게 아닌가 하는 생각이 강하게 듭니다. (facebook을 서비스하는 meta의 경우 광고 SDK에는 추적여부와 도메인 모두가 등록되어 있습니다.)
댓글
댓글 쓰기