역사적 맥락
2010년부터 2015년까지 완전 호환성 접근 방식이 지배적이었으며, 기업들은 iOS 및 Android용 native 애플리케이션을 지원하여 운영 체제 버전의 95%를 포괄했습니다. 그러나 기능 복잡성이 증가하고 현대적인 API(예: Biometric API, Camera2, Jetpack Compose)로 전환됨에 따라 legacy 코드의 유지 보수 비용이 보유된 사용자의 마진성을 초과하게 되었습니다. 2020년대에는 진정한 중단 효과를 평가하기 위한 방법론 개발이 요구되는 "n-2" 정책이 표준이 되었습니다.
문제 제기
강제 중단은 자기 선택의 내생성을 창출합니다. 구형 장치를 사용하는 사용자들은 필수적인 iOS나 Android 버전으로 업데이트할 수 없는 반면, 최신 스마트폰을 보유한 활성 사용자는 즉시 업데이트를 발생시킵니다. 관찰된 MAU 감소는 진정한 이탈(churn)일 수도 있고 PWA(진보적 웹 애플리케이션) 또는 모바일 웹으로의 이전일 수도 있습니다. 전통적인 A/B 테스트는 기술적인 성격으로 인해 불가능하며, 특정 운영 체제 버전의 모든 사용자에게 동시에 적용되며, 토착 애플리케이션과 웹 버전 간의 정체성 추적이 Safari 및 Chrome의 cookies 작업 제한으로 인해 복잡해집니다.
상세한 해결책
최적의 방법론은 **단절 회귀(RDD)**와 **합성 통제(Synthetic Control Method)**의 조합에 기반합니다. 첫째, 운영 체제 버전에 대한 임계값을 설정하여 RDD를 사용합니다(예: Android 8.0과 Android 9.0의 분기점), 임계값보다 조금 낮은 버전을 가진 사용자들은 임계값보다 높은 사용자들의 대조군 역할을 하며, 부드러운 특성을 정정합니다(장치 모델, 역사적 사용 빈도).
둘째, 웹 채널로의 이동을 평가하기 위해 отключ 전 행동 패턴이 유사한 사용자 집단의 역사적 DAU 데이터를 바탕으로 합성 통제를 구축합니다. 특정 지역에서 비슷한 장치 구조를 가진 사용자의 집단을 활용하여 조작되지 않은 집단의 가중합을 구성하며, 이는 대조적 경로의 메트릭을 모델링합니다.
셋째, 기술적 특성을 정제하여 업데이트할 수 있었지만 업데이트하지 않은 사용자들과 업데이트된 사용자들을 비교하기 위해 **차이의 차이(difference-in-differences)**와 **성향 점수 매칭(Propensity Score Matching)**을 적용합니다. 모바일 애플리케이션의 device_id를 web 버전의 cookie_id와 결합하기 위한 user_id를 사용하여 cross-device 이동을 추적하는 것이 중요합니다. 더불어, 운영 체제 버전 및 웹 대안의 가용성에 따라 이탈까지 소요되는 시간을 평가하기 위한 survival analysis(코크스 모델)가 사용됩니다.
맥락: 대형 마켓플레이스는 안전한 결제를 위한 Biometric API 도입을 위해 Android 7.0 및 그 이하 버전의 지원을 중단하기로 결정했습니다(전체 사용자의 약 8%). 프로젝트 예산에서는 3% 이상의 활성 사용자를 잃어서는 안 되며, 신규 버전에서의 전환 증가로 보상될 수 있도록 설계되었습니다.
옵션 1: 비활성화 전후의 MAU를 날짜별로 비교하여 손실 비율을 계산합니다. 장점: 계산의 간단함, 신속한 결과 도출, 복잡한 인프라 필요 없음. 단점: 계절성, 웹으로의 이동, 장치에 따른 자기 선택을 완전히 무시합니다; 사용자가 단순히 m.site로 전환되었을 때 이탈에 대한 긍정적인 결론을 내릴 위험이 큽니다.
옵션 2: Android 8.0을 가진 장치(남아있을 수 있지만 업데이트된)와 Android 7.0(업데이트할 수 없는)와 매칭된 코호트 분석을 실시합니다. 장점: 기술적 제약 사항 고려, 업데이트 불가능에 대한 효과를 격리하여 식별 가능. 단점: Samsung, Xiaomi의 OEM 제조업체에 따른 데이터 수집의 복잡성, 다양한 브랜드 및 지리적 이질성을 통한 사용자 행동의 차이.
옵션 3: 높은 비율의 구형 장치가 있는 지역 수준에서 Synthetic Control을 활용한 포괄적 접근 방식(예: Android 7의 비율이 30%인 지역 A와 5%인 지역 B를 비교하여 중단 전후의 효과를 평가)으로 전반적인 시장 추세를 고려한 조정.
장점: 거시 경제적 요소 및 계절성 반영, 비즈니스에 대한 전체 효과 평가 가능. 단점: 대규모 샘플 필요 및 지역 내 동시 개입 부재 가정.
선택된 해결책: 옵션 3을 수행하고 인증된 사용자의 코호트 분석을 결합하여 웹으로의 이동을 통한 SSO 로그인 추적을 실시했습니다. 이는 진정한 이탈을 웹 트래픽의 유출로부터 분리할 필요가 있었기 때문입니다. 이는 unit-economics 평가에 중요합니다(웹 사용자는 AOV가 15% 낮음).
결과: 분석 결과 "잃어버린" MAU의 40%만이 실제로 이탈했으며, 35%는 PWA로 이전했으며, 25%는 분기 내에 장치 업데이트를 실시했습니다. 진정한 부정적인 효과는 예측의 2.5배 적은 수치로 나타났으며, 이로 인해 남아 있는 92%의 청중을 위한 API의 업데이트 전략을 계속할 수 있게 되었고, 새로운 결제 기능을 통한 GMV 증가가 8% 이루어졌습니다.
사용자들이 오래된 애플리케이션 버전을 유지하고 있을 때 업데이트하지 못하는 기술적 불가능성과 행동적 거부를 어떻게 구별할 수 있을까요?
답은 CDP에서의 device_change events 분석에 기반해야 합니다. 행동적으로 업데이트를 거부하는 사용자(소극적 업데이트)는 종종 역사적으로 가벼운 업데이트 패턴을 가지며(예: 여러 마이너 버전을 건너뛰고 보안 패치를 설치), 기술적으로 제한된 사용자는 장치의 수명 동안 OS version이 변경되지 않습니다. 또한 웹 버전에서 WebGL 또는 Canvas를 통해 hardware fingerprint를 분석하여, 사용자가 отключ 전에 동일한 장치(사용자 에이전트 및 화면 해상도 기준)에서 PWA에 등장하는 경우 이는 이동이지 이탈이 아님을 확인합니다. 사용자의 app_version 기록에 따라서도 세분화가 중요합니다: 사용자가 정기적으로 Android 7 내에서 업데이트되었으나 8.0으로 넘어가지 않았다면 이는 기술적 한계를 나타내며 불만족이 아닙니다.
왜 표준 성향 점수 매칭이 사용자 수익과 장치 모델 간의 높은 상관관계 속에서 강제 업데이트 효과를 평가하는 데 왜곡된 평가를 줄 수 있습니까?
표준 PSM은 조건부 독립성에 기초하며, 관측 가능한 공변량이 자기 선택을 완전히 설명한다고 가정합니다. 그러나 sunset 정책의 경우 숨겨진 변수가 존재하며, 이는 disposable income로, 스마트폰 모델(플래그십 대 경제형) 및 사용자 LTV와 동시에 상관관계를 가집니다. 경제형 장치는 OS 업데이트를 받지 못하는 경우가 많고, 그 소유자들은 더 낮은 구매력을 가집니다. 표준 PSM은 부정적인 효과를 과소 평가하여 "부유한 사용자(신제품을 가진)와 비슷한 구조의 가난한 사용자(구형)를 무게로 측정하느라 그들의 행동 패턴이 근본적으로 다르다는 점을 놓치게 됩니다. 해결책은 기계적 계층화를 통해 가격 세그먼트(저가형, 중급형, 플래그십)로 **Coarsened Exact Matching (CEM)**을 사용하여 PSM을 적용하거나, OEM 제조업체의 업데이트 정책을 외생적 충격으로 사용하는 도구 변수를 적용하는 것입니다.
기능 "상품 공유하기"가 새로운 버전과 오래된 버전에서 다르게 작동할 때, 이탈을 평가할 때 다른 애플리케이션 버전 사용자 간의 네트워크 효과를 어떻게 올바르게 고려할 수 있을까요?
네트워크 효과는 treatment 및 control 그룹 간의 spillover를 생성합니다: 최신 버전을 보유한 활성 사용자가(처리 그룹) 구형 버전 사용자(새로운 포맷의 deep link를 지원하지 않는)와 콘텐츠를 공유할 수 없으면, 둘 다의 경험이 나빠지고 제어 그룹의 이탈을 가속화할 수 있습니다. 이는 sunset 정책 때문이 아니라 사용자 경험의 저하로 인한 것입니다. 이를 보정하기 위해서는 network-based DID(네트워크 가중치가 있는 차이의 차이)를 사용해야 합니다. 사회적 관계의 그래프를 구축합니다(이를 통해 referral codes, 공동 구매 또는 애플리케이션 내의 메시징 분석). 메트릭의 "감염"(contagion)을 평가하며, 만약 제어 그룹의 사용자가 treatment 그룹과 많은 연결이 있다면, 그의 행동은 왜곡됩니다. 모델에는 Treatment x Network_Exposure의 상호작용 항목을 추가하며, 여기서 Network_Exposure는 새로운 버전을 사용하는 네트워크 내의 연결 비율입니다. 높은 네트워크 효과가 존재할 경우, 진정한 sunset 정책의 효과는 과소 평가되며, 이는 "제어" 사용자들의 일부가 사실상 간접적인 영향을 받았음을 나타내므로, 이러한 오염을 고려하여 **intention-to-treat (ITT)**를 조정해야 합니다.