Google Play 설정
실시간 알림으로 Refund Sensor를 Google Play Console에 연결하세요. 지불 거절 심사를 자동화하고 24시간 안에 응답해 매출을 보호합니다.
시작하기 전에
Refund Sensor는 여러분이 직접 자신의 Google Cloud 프로젝트에서 만드는 서비스 계정으로 Google Play에 연결합니다. 만료되지 않고 재인가도 필요 없습니다. 다음이 필요합니다.
- Play Console을 소유한 계정의 Google Cloud 프로젝트(무료도 괜찮습니다).
- 다운로드할 수 있는 JSON 키가 있는 서비스 계정.
- 그 계정에 부여된 Play Console 접근 권한과 Pub/Sub Admin.
- 방어하려는 패키지 이름 또는 Play Store URL.
서비스 계정과 키 생성
- Play Console을 소유한 계정으로 Google Cloud Console을 열고 프로젝트를 선택하거나 만듭니다. 왼쪽 메뉴에서 IAM & Admin을 열고 Service accounts를 클릭합니다.
- + Create service account를 클릭하고 RefundSensor Google Play API 같은 이름을 지정한 뒤 Create and continue와 Done을 클릭합니다. 여기서 선택적 역할은 건너뛰어도 됩니다.
- 서비스 계정 이메일(끝이
.iam.gserviceaccount.com)을 복사합니다. 다음 단계에서 필요합니다. - 서비스 계정을 열고 Keys 탭으로 전환한 뒤 Add key → Create new key를 클릭하고 JSON을 선택한 다음 Create를 클릭합니다. Google이
.json파일을 다운로드합니다. 안전하게 보관하세요. Google은 다시 다운로드하게 해주지 않습니다.
필요한 API 활성화
프로젝트에는 두 개의 Google API를 활성화해야 합니다(프로젝트당 한 번). Google Cloud Console에서 프로젝트를 선택한 채로 각각을 검색해 활성화하세요.
- Google Play Android Developer API. 서비스 계정이 환불 및 주문 데이터를 읽게 해줍니다.
- Cloud Pub/Sub API. 실시간 환불 알림을 구동합니다. Pub/Sub Lite가 아니라 Cloud Pub/Sub인지 확인하세요. 다른 제품입니다.
자격 증명 추가
Refund Sensor에서 Add app을 열고 Google Play를 선택한 뒤 .json 키 파일을 업로드합니다. 저희는 Google로 검증하고 AES-256-GCM으로 저장 시 암호화해 보관합니다.
Play Console 권한 부여
서비스 계정을 Play Console에 초대하고 두 곳에서 재무 접근 권한을 부여합니다. 환불(무효화된 구매) 데이터는 계정 수준에서 읽히기 때문입니다.
- Google Play Console에서 Users and permissions → Invite new users를 열고 서비스 계정 이메일을 붙여넣습니다. 서비스 계정은 저장하는 즉시 활성화되며, 초대를 스스로 수락하지 않습니다.
- App permissions에서 방어할 각 앱을 추가하고 View financial data와 Manage orders and subscriptions를 켭니다.
- Account permissions 탭(놓치기 쉬움)으로 전환해 Financial data 아래에서 View financial data, orders and cancellation survey responses와 Manage orders and subscriptions를 켠 뒤 저장합니다.
Pub/Sub Admin 부여
실시간 알림은 저희가 여러분을 위해 만들고 연결하는 Pub/Sub 주제를 통해 Refund Sensor에 도달하므로 Play Console에 붙여넣을 것은 없습니다. Pub/Sub을 관리할 권한만 있으면 됩니다. IAM & Admin → IAM에서 Grant access를 클릭하고 서비스 계정 이메일을 주 구성원으로 붙여넣은 뒤 역할 Pub/Sub Admin(roles/pubsub.admin)을 선택하고 저장합니다. Pub/Sub Lite Admin이 아니라 Pub/Sub Admin을 고르세요. Lite 역할은 동작하지 않으며 자동 설정이 실패하는 가장 흔한 원인입니다.
앱 추가
Add apps 단계에서 Play Store URL 또는 패키지 이름을 한 줄에 하나씩 붙여넣습니다(패키지 이름은 Play Store 링크에서 ?id= 뒤의 값, 예: com.yourcompany.app). Refund Sensor는 가져오기 전에 연결된 계정의 Play Console 접근 권한에 대해 각각을 검증하고, 볼 수 없는 것에는 표시를 남깁니다.
실시간 알림
API를 활성화하고 Pub/Sub Admin을 부여한 상태에서 앱을 가져오면 주제와 푸시 구독이 자동으로 생성되고 앱의 RTDN 엔드포인트로 등록됩니다. 그러면 앱은 Google이 첫 실제 이벤트를 전달할 때까지 Awaiting first refund event를 표시합니다(Google 쪽에는 테스트 버튼이 없습니다). 자동 설정이 실패하면 앱 카드에 Real-time notifications not set up과 이 가이드로 돌아가는 링크가 표시됩니다.
Refund Sensor가 Google Play에서 응답하는 것
모든 Google Play 환불을 다툴 수 있는 것은 아닙니다. 일반 사용자 환불은 Google이 스스로 결정하므로, 그런 것은 가시성을 위해 기록되지만 다투지 않습니다.
실제로 응답할 수 있는 유일한 환불은 검토 중인 지불 거절(Google의 pendingRefundReviewNotification)입니다. 약 24시간을 주고 첫 응답을 존중합니다. Refund Sensor는 이에 거절 권고로 자동 응답하며, 창 안에서 충분히 여유 있게 처리합니다.
보완책으로 Refund Sensor는 Google의 Voided Purchases API와도 대조하므로, 다툴 것이 없었던 경우에도 모든 환불과 무효화된 구매가 대시보드에 기록됩니다.

