OpseerOpseer
Docs
Dashboard

RevenueCat

OAuth로 RevenueCat을 연동해 모바일 IAP/구독 매출, MRR, 구독자 수, Trial 등을 한 곳에서 추적합니다.

Last updated: 2026-05-18

RevenueCat 연동은 OAuth 2.0 + PKCE 흐름으로 read-only 토큰만 받습니다. 토큰은 AES-256-GCM 암호화되어 저장되며, refresh token은 single-use rotating입니다.

사전 준비

  • RevenueCat 계정 + 1개 이상의 프로젝트
  • OAuth 권한 승인 가능 (project owner / collaborator)
  • Starter / Plus / Max 플랜 (수익 알림은 유료 기능)

OAuth 연결

1

계정 설정 열기

/dashboard/account 또는 /dashboard/integrations의 RevenueCat 카드에서 Connect 클릭.

2

RevenueCat 인증

데스크탑은 팝업, 모바일은 페이지 이동으로 RevenueCat 로그인 화면이 열립니다. 로그인 후 read-only 권한에 동의하세요.

3

다중 프로젝트 자동 발견

계정 내 모든 프로젝트를 metadata.projects[]에 저장합니다. 통계 호출 시 모든 프로젝트를 fan-out + 합산해 표시합니다.

4

완료

팝업이 닫히거나 확인 페이지가 표시됩니다. 계정/연동 페이지에 연결된 프로젝트명이 표시됩니다.

RevenueCat은 계정 단위 연동입니다. 한 번 연결하면 Opseer 모든 프로젝트에서 동일하게 사용되며, RevenueCat 계정 내 모든 project를 자동 발견 + 합산해 표시합니다.

요청 권한 (Scopes)

모두 read-only — Opseer는 RevenueCat 데이터를 변경하지 않습니다.

Project Configuration (8개)

  • project_configuration:projects:read, project_configuration:apps:read, project_configuration:entitlements:read, project_configuration:offerings:read, project_configuration:packages:read, project_configuration:products:read, project_configuration:experiments:read, project_configuration:virtual_currencies:read

Customer Information (3개)

  • customer_information:subscriptions:read, customer_information:purchases:read, customer_information:invoices:read

Charts & Metrics (4개)

  • charts_metrics:overview:read, charts_metrics:charts:read, charts_metrics:experiment_results:read, charts_metrics:benchmarks:read

표시되는 데이터

/dashboard/revenue/revenuecat에서 Overview Metrics(snapshot) + Charts API(시계열) 두 종류를 호출해 카드와 차트로 표시합니다.

Snapshot 메트릭 (Today/Yesterday — Overview API)

  • MRR (Monthly Recurring Revenue)
  • Active Subscriptions
  • Active Trials
  • New Customers

시계열 메트릭 (Period — Charts API)

per-project × 6 chart slug fan-out (mrr / revenue / actives_new / churn / conversion_to_paying / actives). multi-project은 Promise.allSettled로 합산 후 표시합니다.

  • MRR Trend, Revenue, New Subscriptions, Churn, Trial Conversion, Active Users
  • Subscription Movement Chart (newSubs / churnedSubs)

snapshot 메트릭은 today/yesterday realtime 호출, 시계열 메트릭은 revenue_daily_cache 90일 sliding window 적용. 단 charts API의 D-1 lag 메트릭은 오늘 datapoint 비어있으면 set 안 함. Charts & Metrics rate limit: 15/min — 3+ projects일 때 429 시 graceful skip.

Sandbox vs production

Opseer는 운영 매출에 집중합니다. RevenueCat은 sandbox / production을 API resource 레벨에서 구분 — RevenueCat 대시보드에서 보이는 데이터가 운영 데이터인지 먼저 확인하세요.

토큰 rotation 정책

  • access_token: 1시간 만료
  • refresh_token: 30일 절대 만료, rotation마다 reset
  • refresh_token은 single-use — Opseer가 동시 refresh race를 re-read winner 패턴으로 처리
  • 30일 이상 미사용 또는 명시적 revoke 시에만 재인증 필요

연동 해제

RevenueCat 카드(계정/연동 페이지)의 "Disconnect" 클릭. 암호화된 토큰이 제거되고 연동이 inactive로 표시됩니다. RevenueCat 측에서도 완전히 폐기하려면 RevenueCat OAuth 승인 목록에서 Opseer를 제거하세요.

보안

  • OAuth 2.0 + PKCE (S256) — code_verifier는 Opseer 서버 외부로 나가지 않음
  • Confidential client — client_secret은 server-side 전용
  • AES-256-GCM 토큰 암호화 저장 (opseer_user_integration.config)
  • write scope 요청 X — Opseer는 RevenueCat 데이터를 변경할 수 없음

문제 해결

"No project found"

RevenueCat 계정에 프로젝트가 없습니다. RevenueCat 대시보드에서 프로젝트를 먼저 생성하고 다시 연결하세요.

"OAuth failed" 또는 invalid_grant

Refresh token race 또는 30일 미사용. 연동 해제 후 재연결하면 새 토큰 발급됩니다.