문제 해결

Firebase first_open이 App Store 다운로드보다 많은 이유

업데이트 2026-09-144 분 분량

짧은 답

first_open은 앱 설치본이 처음 실행될 때 기록되며, 재설치·추가 기기·테스트 빌드도 포함됩니다. App Store Connect의 최초 다운로드는 Apple 계정이 앱을 처음 받을 때 집계됩니다. 서로 다른 순간을 세기 때문에 보통 first_open이 더 크고, 주마다 비슷한 차이가 유지된다면 정상입니다.

보통 출시 첫 주에 드러납니다. Firebase는 신규 사용자 1,240명, App Store Connect는 최초 다운로드 860건이라고 하고, 누군가 어느 쪽이 틀렸냐고 묻습니다. 둘 다 틀리지 않았습니다. 서로 다른 사건을 세고 있을 뿐이고, 무엇을 세는지 알고 나면 이 차이는 걱정거리가 아니라 데이터를 점검하는 유용한 기준이 됩니다.

이상해 보이는 데이터

예시: 출시 첫 주, iOS만
App Store Connect — 최초 다운로드            860
App Store Connect — 재다운로드               190
Firebase — first_open (iOS 스트림)         1,240

first_open이 최초 다운로드보다 44% 많고,
전체 다운로드를 합쳐도 18% 많습니다.

서로 다른 순간을 세는 두 개의 계수기

Apple은 스토어에서 셉니다. Apple 계정이 앱을 처음 받으면 최초 다운로드로 집계되고, 같은 계정이 앱을 삭제한 뒤 다시 받거나 다른 기기에 받으면 재다운로드로 기록됩니다. Firebase는 기기에서 셉니다. first_open은 앱을 설치하거나 재설치한 뒤 처음 실행할 때 기록되며, 다운로드 시점에는 아무것도 기록되지 않습니다.

App Store ConnectFirebase first_open
집계 시점다운로드 버튼을 누를 때설치된 앱을 처음 실행할 때
같은 휴대폰에 재설치재다운로드first_open 한 번 더
한 사람이 iPhone과 iPad 사용최초 다운로드 1건 + 재다운로드 1건first_open 2건
TestFlight·Xcode 빌드집계 안 됨Analytics를 보내면 집계됨
받기만 하고 실행 안 함집계됨집계 안 됨

first_open이 더 많아지는 이유

  • 재설치: 삭제 후 다시 설치할 때마다 first_open이 새로 생기지만, Apple은 재다운로드로 분류합니다
  • 여러 기기: iPhone과 iPad를 함께 쓰는 사람은 설치본 두 개를 각각 실행합니다
  • 테스트 빌드: TestFlight, Xcode 실행, 내부 빌드는 따로 분리하지 않으면 같은 Firebase 앱으로 first_open을 보내며, App Store Connect는 이 설치를 보지 못합니다
  • 자동화 테스트: 테스트 기기와 디바이스 팜도 사람처럼 앱을 실행합니다
  • 같은 속성의 다른 플랫폼: Android 스트림의 first_open이 App Store와 비교하는 숫자에 섞여 들어갑니다
  • 날짜 경계: GA4는 속성의 보고 시간대 기준으로 날짜를 나누는데, Apple 보고서의 날짜 기준과 다를 수 있어 자정 무렵의 실행이 서로 다른 날로 들어갈 수 있습니다

반대 방향의 차이도 생깁니다. 받기만 하고 실행하지 않은 다운로드, 실패한 설치, 동의 화면에 답하기 전까지 Analytics 수집을 꺼두는 경우처럼 수집이 꺼진 상태의 실행은 모두 first_open을 스토어 숫자보다 낮춥니다.

어떤 원인인지 확인하는 방법

  1. 같은 날짜, 같은 플랫폼으로 맞추기

    완료된 날짜만 비교하고 GA4 숫자는 iOS 스트림으로 필터링하세요. Android나 웹 데이터가 함께 들어 있는 속성은 App Store 숫자와 절대 맞지 않습니다.

  2. 재다운로드까지 더해서 비교하기

    first_open이 최초 다운로드와 재다운로드의 합에 가깝다면 차이의 대부분은 재설치와 추가 기기로 설명됩니다.

  3. first_open을 앱 버전별로 나눠 보기

    App Store에 출시한 적 없는 버전에서 발생한 실행은 테스트 빌드입니다. TestFlight에만 올린 버전에서 갑자기 몰렸다면 가장 확실한 신호입니다.

  4. 기기 모델과 지역 보기

    테스트 트래픽은 몰려 있습니다. 소수의 기기 모델, 개발팀이 있는 도시, 출시 전후 업무 시간대의 활동이 그렇습니다.

  5. 비율을 주 단위로 추적하기

    비율이 꾸준히 유지된다면 정의의 차이입니다. 비율이 튄다면 베타 그룹, 디바이스 팜, 다른 플랫폼 같은 새로운 first_open 출처가 생긴 것이고, 튄 주가 그 시작 시점을 알려줍니다.

팁: 평범한 주의 비율을 기록해 두세요. 비율이 움직이면 성장을 축하하거나 감소를 걱정하기 전에 새로운 first_open 출처부터 찾아볼 수 있습니다.

잘못 해석하면 생기는 문제

  • first_open을 다운로드로 읽으면 유입이 과대평가되고, 그 위에 계산한 설치당 비용이나 체험 전환율도 실제보다 좋아 보입니다
  • 스토어 다운로드를 리텐션의 기준으로 쓰면 정의가 섞입니다. Analytics는 다운로드가 아니라 앱을 실행한 설치본만 따라갈 수 있습니다
  • 차이를 "추적 누락"으로 판단하고 설치 이벤트를 따로 추가하면 문제는 그대로 두고 중복만 늘어납니다
  • 매주 스프레드시트에서 테스트 빌드를 빼는 방식으로는 속성 안의 과거 데이터가 계속 틀린 상태로 남습니다

올바른 비교 방법

각 숫자는 자기가 답하는 질문에 쓰세요. App Store Connect는 스토어가 몇 명을 다운로드로 이끌었는지 알려줍니다. first_open은 실제로 시작된 설치본이 몇 개인지 알려주며, Analytics에서 리텐션과 퍼널을 볼 때의 올바른 출발점입니다. 두 숫자는 플랫폼별·주별 비율로 비교하고, 한쪽에서 다른 쪽을 빼서 그 차이를 잃어버린 사용자라고 부르지 마세요.

참고: 테스트 빌드가 first_open을 부풀리고 있다면 발생 지점에서 고치세요. 개발 빌드를 별도의 Firebase 앱으로 분리하거나 디버그 빌드에서 Analytics 수집을 끄는 방법이 있습니다. 두 방법 모두 테스트 사용자와 실제 사용자를 구분하는 글에서 설명합니다.

Appnaly에서는 어떻게 보이나요

App Store Connect와 Firebase가 모두 연결되어 있으면 Appnaly는 두 출처를 합치지 않고 나란히 두며, 원시 숫자가 아니라 변화 방향을 비교합니다. 점검 규칙 중 하나는 신규 다운로드는 유지되는데 첫 사용 기록이 줄어드는 경우를 찾습니다. 이런 형태는 보통 수요보다 측정 쪽 문제를 가리키며, 이 규칙은 두 출처 모두 완료된 주에 충분한 데이터가 있을 때만 동작합니다.

무료 도구

App Store·Google Play 가이드

함께 읽을 글