App Store
API 키로 App Store Connect를 연결해 iOS와 Mac의 일별 Sales and Trends 리포트를 읽습니다.
RevGlance는 App Store Connect API를 통해 Apple의 일별 Sales and Trends 리포트를 읽습니다. SALES 요약 리포트에서 유료 앱과 인앱 구매를, SUBSCRIBER 리포트에서 각 구독 결제, 무료 체험판, 환불을 가져옵니다.
연결
- App Store Connect에서 Users and Access › Integrations › App Store Connect API를 열고 Finance 또는 Sales 역할로 팀 키를 생성합니다.
- 키 목록 위의 Issuer ID와 키의 Key ID를 적어 두고
.p8파일을 다운로드합니다. Apple은 이 파일을 한 번만 다운로드할 수 있게 합니다. - Payments and Financial Reports(왼쪽 위)에서 vendor number를 찾습니다.
- 네 개의 필드를 채웁니다.
-----BEGIN PRIVATE KEY-----줄을 포함해.p8파일 전체를 붙여넣은 다음 App Store 연결을 선택합니다.
양식에서 묻는 항목
| 필드 | 형식 예시 |
|---|---|
| 발급자 ID | 57246542-96fe-1a63-e053-0824d011072a |
| 키 ID | 2X9R4HXF34 |
| 공급업체 번호 | 85012345 |
| 개인 키(.p8 내용)암호화하여 저장 | -----BEGIN PRIVATE KEY----- |
Webhook 추가하기
리포트는 약 하루 늦게 도착합니다. App Store Server Notifications는 변경이 생기는 즉시 RevGlance에 알려 주므로, 다음 리포트가 생기자마자 가져옵니다.
- RevGlance에서 설정 › 소스를 열고 App Store 소스의 메뉴를 연 다음 Webhook을 선택합니다.
- 길고 임의적인 시크릿을 만들어 서명 시크릿에 붙여넣고 저장합니다.
- Webhook URL을 복사하고 끝에
?token=과 시크릿을 붙입니다. - App Store Connect에서 앱의 App Information을 열고 App Store Server Notifications에서 그 주소를 프로덕션 URL(버전 2)로 설정합니다.
RevGlance는 URL의 시크릿과 함께 Apple 자체 서명, 즉 Apple Root CA G3까지 이어지는 인증서 체인을 확인합니다.
예상할 점
- 익명 고객. Apple은 구매자 이름을 알려 주지 않습니다. 각 구독자는 익명의 Subscriber ID를 가진 고객 한 명이 되며, 오퍼 코드, 구독 그룹 간 업그레이드, ID 재설정은 새 구독처럼 보일 수 있습니다.
- 1년 치 기록. 일별 리포트는 1년 전까지만 거슬러 올라가며, 각 날짜의 리포트는 약 하루 늦게 도착합니다.
- 해지가 늦게 표시됩니다. Apple은 해지를 보고하지 않습니다. 구독은 갱신이 3일 넘게 지연되면 종료된 것으로 처리됩니다.
App Store의 집계 방식
- 고객 가격이 매출로 집계되고 수수료는 고객 가격에서 수익금을 뺀 금액이므로, 세금 포함 가격의 세금은 수수료로 표시됩니다.
- MRR은 최신 고객 가격이므로 가격에 세금이 포함된 경우 세금도 포함됩니다. Apple 리포트는 세금을 따로 나누지 않습니다. 도입 혜택은 혜택 가격으로 집계되고, 이후 정상 가격은 확장으로 표시됩니다.
- 환불은 Apple 리포트에서 음수 가격으로 들어옵니다. Apple이 환불을 취소하면 RevGlance는 해당 구독자와 구독의 최근 환불을 삭제합니다. Apple은 어떤 환불이 취소되었는지 알려주지 않으므로, 한 구독에 환불이 여러 건이면 잘못된 환불이 삭제될 수 있습니다.
- Apple이 구독자 ID를 재설정한 후(180일) 요청된 환불은 보관되지만 고객 정보는 없습니다.
- 앱 번들 크레딧(CMB-C)은 환불이 아니므로 제외됩니다.
- Apple은 해지를 표시하지 않습니다. 갱신이 3일 연체되면 구독이 종료됩니다.
- 실패한 결제는 보고되지 않으므로 해당 수치는 0으로 유지됩니다.

RevGlance