한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
신뢰와 안전을 위한 Google Play 정책 업데이트
2020년 4월 28일 화요일
작성자: Krish Vitaldevara (Google Play 제품 관리 디렉터)
이 글의 원본은
여기서
확인 가능하며 서본양(Google)님이 번역 리뷰에 참여해주셨습니다.
Google Play는 사용자의 신뢰와 안전을 높이고자 내부 정책을 정기적으로 검토하여, 개발자와 사용자 모두 플랫폼에서 긍정적인 경험을 할 수 있도록 지속적으로 노력하고 있습니다.
이번 블로그 게시물에서는 사용자가 자신의 데이터를 보다 더 제어할 수 있게 하며, 강화된 정기 결제 정책과, 사기성 앱, 미디어가 Play Store에 게시 되지 않도록 돕는
정책 업데이트
에 대해 알려드리겠습니다.
저희는 많은 개발자가 최근 전례 없이 어려운 상황에 대응하기 위해 비즈니스를 조정하거나 적극적으로 대응하고 있음을 잘 알고 있습니다. Google Play는 이러한 상황에 맞추어 개발자를 지원하고자 하며, 최근의 변화로 인한 단기적인 잠재 영향을 최소화 하기 위해 노력하고 있습니다. 현 상황에 대응할 수 있는 Google Play 리소스와 정보는 이
블로그 게시물
에서 보다 더 자세히 확인할 수 있습니다. 오늘은 발표된 정책 중에서 아래 두 가지를 간략히 강조하여 알려드립니다.
더욱 투명한 정기 결제 조건 설명
Google Play에서 정기 결제 상품은 인기를 얻고 있지만, 일부 상품은 어떤 구독 서비스에 가입하는 것인지 내용이 불분명하다는 사용자 의견이 있습니다. 이번
정책 업데이트
는 사용자가 정기 결제와 무료 평가판 및 신규 할인가격의 조건, 정기 결제 관리 및 취소 방법을 분명하게 이해하도록 돕기 위해 진행 되었습니다.
이
블로그 게시물
에서 자세한 정책 변경내역을 모범 및 위반 사례와 함께 확인할 수 있습니다. 개발자는 오는 6월 16일까지 정기 결제 설명 페이지를 위 정책 사항을 반영해 알맞게 변경해야 합니다.
불필요한 위치 정보 액세스 제한
사용자들은 자신의 위치 정보를 보다 더 제어할 수 있길 원하고 사용자 위치 정보의 오용을 방지하기 위해 필요한 모든 예방 조치를 취할 것을 계속해서 저희에게 요청하고 있습니다. Android 사용자는 자신의 위치 정보에 액세스하려는 앱에 대해 항상 명시적으로 권한을 부여해 주어야 했습니다. Android 11에서는 임시적인 '일회용' 권한 부여 기능을 추가적인 사용자 제어 권한으로 제공합니다.
저희는 지난
2월
에 개발자가 앱에서 위치 정보에 백그라운드로 액세스하려는 경우, 승인을 받도록 할 것이라고 발표한 바 있습니다. 이를 통해 실제로 핵심 기능을 위해 액세스해야 하는 앱만 사용자에게 액세스 권한을 요청할 수 있게 됩니다. 이
정책은 현재 시행
되고 있으므로, 위치 정보에 액세스하는 개발자께서는 꼭 살펴보시기 바랍니다.
일부 개발자의 경우 해당 정책의 준수를 위해 변경 작업이 필요할 것이므로, 저희는 이를 감안하여 추가적인 기간을 드리고자 합니다. 새로운 앱은 2020년 8월까지, 이미 출시된 앱은 2020년 11월까지 새로운 정책에 맞추어 앱이 배포되도록,
위치 정보데이터 관련 모범 사례를 검토
하고 관련 정보를 적절히 공개하고 있는지, 백그라운드 위치 액세스가 실제로 필요한지 지금 평가해 보시기 바랍니다. 더 자세한 정보는
도움말 센터
문서에서 확인할 수 있으며, 절차나 일정에 변동 사항이 있을 경우 다시 알려드리겠습니다. Google Play가 신뢰할 수 있는 유용한 플랫폼이 되도록 함께 노력해 주셔서 감사합니다.
더욱 투명한 정기 결제 설명을 통한 사용자 신뢰 구축
2020년 4월 28일 화요일
작성자: Angela Ying (Google Play 제품 관리자)
이 글의 원본은
여기서
확인 가능하며 서본양(Google)님이 번역 리뷰에 참여해주셨습니다.
많은 개발자에게 정기 결제 상품은 비즈니스의 중요한 부분을 차지합니다. Google Play는
Play Console의 새로운 통계
와
같은 개발자 도구를 비롯해, 사용자가 쉽게 정기 결제를 관리할 수 있는
정기 결제 센터
등 사용자 환경 개선을 통해 정기 결제 상품을 제안할 수 있도록 기능을 개선해왔습니다. 구독자 사용 환경은 신뢰할 수 있는 플랫폼을 통해 사용자가 필요한 정보를 충분히 안내받고 인앱 정기 결제를 할 수 있을 때 지속적으로 개선될 수 있습니다.
이에 Google Play는 사용자 신뢰도와 안전을 높일
종합적인 정책 업데이트
의 일환으로
새로운 정기 결제 정책
을 발표했습니다. 새 구독 정책에 따라, 개발자는 사용자가 정확한 정보를 충분히 안내받고 결정할 수 있도록 정기 결제 제안 과정을 명확하게 설명해야 합니다.
개발자가 정기 결제 설명을 명확하게 하지 않으면 앱은 사용자의 신뢰를 잃게 되고, 사용자는 앱 구독을 취소하고 부정적인 사용후기를 남겨 결과적으로 개발자는 비즈니스에 타격을 입게 됩니다. 반면, 사용자가 정기 결제를 결정하는 데 필요한 모든 정보를 분명하고 설득력 있게 제공한 경우, 정기 결제 서비스에 대한 사용자의 신뢰도를 높여 장기간 서비스를 이용하게 하는 원동력이 될 수 있습니다.
Google 정기 결제 정책 준수
이번 정책 업데이트는 사용자가 정기 결제와 무료 평가판 및 신규 할인가격의 조건, 정기 결제 관리와 취소 방법을 분명하게 이해하도록 돕기 위해 진행 되었습니다.
정책 센터
에서 정책의 전체 내용을 모범 및 위반 사례와 함께 확인할 수도 있지만, 가장 중요한 점은 여러분의 앱에서 정기 결제에 대한 조건을 사용자가 분명히 이해할 수 있도록 명시적으로 설명하는 것입니다. 다음 모범 사례를 살펴 보시기 바랍니다.
다음과 같이
정기 결제 조건
에 대해 분명히 설명하십시오.
앱의 전부 또는 일부를 사용하려면 정기 결제가 필수적인지 분명히 명시해야 합니다. 정기 결제가 필요하지 않다면, 사용자가 정기 결제를 손쉽게 취소할 수 있어야 합니다.
정기 결제 비용
요금 청구 주기
무료 평가판과 신규 할인 혜택
을 제공할 경우, 사용자에게 다음 사항을 분명하고 정확하게 알려야 합니다.
제공 기간
가격
무료 평가판이나 신규 할인 혜택에 포함되는 사항
무료 평가판이 유료 정기 결제로 전환되는 시점
사용자가 유료 정기 결제로 전환하고 싶지 않을 경우 취소할 수 있는 방법
여러분의 앱에서 구독자가
정기 결제를 관리하고 취소
할 수 있는 방법이 명시 되어 있는지 확인하시기 바랍니다. 기존 앱은 2020년 6월 16일까지 이 정책을 준수하도록 변경되어야 합니다.
별도의 개발이 필요하지 않은 사용자 환경 개선
이러한 정책 업데이트와 함께, 저희는 사용자 신뢰도를 높이고 사용자가 더욱 안심하고 정기 결제를 이용할 수 있도록 플랫폼 수준의 제품 변경을 실시했습니다.
투명성을 높이고 사용자 환경을 개선하기 위해 결제 장바구니를 개선했습니다.
이제는 무료 평가판이나 신규 할인 기간이 종료되기 전에 사용자에게 이메일을 통해 미리 안내해 드립니다.
이제는 3개월, 6개월 또는 연간 요금제로 정기 결제하는 사용자에게 갱신 기간이 다가올 때 이메일을 통해 미리 안내해 드립니다.
앱을 제거하는 정기 결제 사용자에게 앱을 제거하더라도 자동으로 서비스 정기 결제가 취소되지 않는다는 점을 알려 드립니다.
위의 변경 내용으로 인해 단기간 동안 정기 결제 전환율이 낮아지거나 정기 결제 취소 건수가 늘 수도 있지만, 이와 같은 조치를 통해 환불 및 지불 거절 비율이 낮아져 더욱 양질의 안정적인 정기 결제 사용자 기반을 다지는 효과가 있으리라 생각합니다. 궁극적으로는 보다 안정적으로 반복적인 수익을 창출할 수 있을 것입니다.
도움이 되는 리소스
저희는 개발자가 정기 결제 사용자를 위해 올바르게 대응할 수 있도록 돕고 싶습니다. 이를 위해 필요한 앱 업데이트를 수행할 때 참고하실 수 있도록
체크리스트
,
참고 영상
을 비롯해 Google Play의 무료 온라인 교육 플랫폼인 Play Academy에
교육 자료
를 준비하였습니다.
Google Play가 개발자와 사용자가 모두 신뢰할 수 있는 플랫폼이 되도록 저희와 계속 함께 노력해 주셔서 감사드립니다.
여러분과의 협력을 통해 Google Play는 사용자를 위한 최적의 환경을 만들어나가고, 정기 결제 서비스를 성장시킬 수 있습니다.
Google Play에서 게임과 플레이어 보호하기
2020년 4월 24일 금요일
게임의 무결성, 공정성 강화를 위한 개발자 도구 및 서비스
게시자:
Dom Elliott (Google Play 제품 매니저)
원문은
이 곳
에서 확인 가능하며 블로그 번역 리뷰는 김민구(Google)님이 참여해주셨습니다.
여러분이 게임을 개발한 후 플레이어에게 선보일 때, 본래 의도한 방식대로 플레이어가 게임을 경험하길 바라실 겁니다. 하지만 게임이 인기를 얻을수록 게임을 공격하거나 악용하는 사람이 늘어날 수 있습니다. 사람들이 게임을 변형하고 배포 및 수익 창출을 위한 수단을 악용하는 이유는 다양합니다. 이 중에는 비교적 피해가 적은 경우도 있으나, 비즈니스와 플레이어 커뮤니티에 악영향을 미치는 사례도 있습니다. 이에 따라 악용 방지를 위한 전략을 검토하고 각자의 목표에 맞춰 적절한 조치를 취하는 것이 필요합니다. 게임을 보호할 완벽한 해결책은 아니지만, 게임 보호를 위한 전략의 일부로 활용할 수 있는 몇 가지 Google Play 도구 및 서비스를 알려 드립니다.
무결성(Integrity)
게임 및 플레이어에 대한 공격은 수정된 APK, 에뮬레이터, 보안이 침해되거나 루팅된 기기와 같이 신뢰할 수 없는 환경에서 시작됩니다. 이러한 안전하지 않은 환경은 그 자체로는 유해하지 않을 수 있지만, 이러한 환경을 감지할 수 있다면 게임에서 각 상황에 대해 어떻게 대응할 지 결정할 수 있습니다. 예를 들어 공격자가 유료 게임을 플레이하지 못하도록 차단할 수도 있고, 무료 온라인 게임인 경우 에뮬레이터를 사용한다고 의심되는 플레이어를 전부 하나의 서버에 모을 수도 있습니다.
https://youtu.be/kAD0hkZ-KiA
이 동영상에서 Google Play 툴을 사용해 게임의 무결성을 보호하는 방안을 알려드립니다.
Google Play는 온라인 게임용 API를 제공하여 개발자가 이러한 상황을 더 손쉽게 탐지하고 올바른 대처 방안을 결정할 수 있도록 지원합니다. 또한 Google Play에서는 오프라인에서 작동하는 게임과 리패키징을 줄이려는 온라인 게임을 대상으로 자동으로 무결성을 보호해주는 기능의 새로운 개발자 프리뷰를 마련했습니다.
서버 주도 방식의 수동 무결성 진단(Manual, server-driven integrity check)
첫째,
Google Play 라이선스
는 플레이어가 Google Play에서 설치한 개발자의 바이너리를 그대로 사용하고 있는지 확인합니다. 둘째,
SafetyNet 증명
은 개발자에게 바이너리가 실행되고 있는 기기의 상태를 알려줍니다.
이러한 진단 기능은 서버 기반의 온라인 게임에서 게임 시작, 로그인, 랜덤 대결, 구매 등과 같은 하나 이상의 중요한 단계에 연결된 경우 효과적으로 작동합니다. 중요한 단계에 연결시키지 않은 상태로 클라이언트 측에서 진단 기능을 실행하면 공격자에 의해 삭제될 위험이 있습니다. 일반적으로 이러한 진단 기능은 다음 방법으로 통합합니다.
nonce 생성
: 진단 기능을 시작하기 위해 서버에 nonce를 생성합니다. nonce는 고유한 임의의 값으로서 nonce를 각 진단에 결부시키면 재전송 공격(replay attack)에서 긍정적인 응답을 복제하기 어려워집니다. 사용자 ID의 해시값과 같이 특정 요청에 해당하는 정보의 고유한 일부를 가능한 한 많이 사용해서 재사용하기 어려운 nonce를 생성하세요.
응답 요청
: 게임의 진단 기능에 nonce를 결부시키고 라이선싱 및 SafetyNet API를 호출합니다. SafetyNet 통합은 API 키를 필요로하며, API 호출은 하루 10,000건의 한도가 있습니다. 이보다 많은 API사용이 필요한 경우 할당량(quota) 증가를 요청하세요.
응답 수신
: 이러한 API는 Google 서버와 통신합니다. Google 서버에서는 개발자에게 사용자가 Play에서 제공하는 앱 라이선스를 보유하고 있으며 기기가 호환성 테스트를 통과한 실제 Android 기기로 판단되는지 알리기 위해 응답을 반환합니다. 또한 악성 호출을 피하려면 때때로 SafetyNet 응답 시간이 초과되는 경우에도 대비해야 합니다.
응답 전송
: 게임에서 nonce와 함께 Google의 응답을 게임 서버로 반환해야 합니다. 게임에서 진단 기능을 삭제하는 것을 어렵게 만들려면 서버 측에서 결과값확인(validation)을 처리해야 합니다.
응답 평가
: 서버에서는 nonce, 앱의 패키지명, 해시, 타임스탬프 등 모든 항목이 올바른지 확인하고 라이선스 및 기기에 관한 Google의 응답에 기반해 결정을 내려야 합니다. 예를 들어 사용자가 올바른 라이선스를 보유하고 있고, 신뢰할 수 있는 기기를 사용 중이면 플레이어가 게임을 진행하도록 허용할 수 있습니다.
이러한 API는 실제 게임에서 어떠한 성과를 거두었을까요?
이 영상
에서
Rovio
가
앵그리버드 2
의 리더보드를 개선한 방법과
Supercell
에서
브롤스타즈
를 출시하기 전 베타에서 승인되지 않은 플레이어가 게임을 플레이하는 비율을 크게 줄일 수 있었던 방법을 확인하세요.
클라이언트 측 자동 무결성 진단(Automatic, client-side integrity check)
이러한 API는 모든 종류의 게임이나 모든 상황에 도움이 되는 것은 아닙니다. 다른 많은 유료 게임 및 단일 플레이어 게임과 마찬가지로 게임이 오프라인에서 작동하도록 설계되었을 수 있습니다. 간단한 서버 연동만을 사용하중이거나, 서버가 아예 없는 게임을 운영 중인 경우
Google Play의 자동 무결성 보호
개발자 프리뷰에 참여하는 것을 고려해 보세요.
자동 무결성 보호에 등록한 게임을 Google Play Console에 업로드하면 Google Play에서 개발자를 대신해 라이선스 진단 및 조작 방지 기능을 게임 코드에 추가하므로, 개발자가 테스트 전에 관련 개발 작업을 하지 않아도 됩니다. 개발자는 게임 개발 시
Android App Bundle
을 사용하시기만 하면 됩니다. 자동 무결성 보호 기능의 장점은 개발자가 별도로 노력하지 않아도 기능이 지속적으로 개선된다는 것입니다. 조작 방지 기능은 온라인 게임의 리패키징 시도를 줄이는 데도 도움이 될 수 있습니다. 본 기능을 사용하여 출시할 게임을 보호하는 데 관심있으시면
Google에 알려주세요
.
공정성(Fairness)
인앱 구매를 제공하는 게임의 경우, 공정한 게임 경제의 균형을 맞추어야 전반적으로 최적의 플레이어 환경을 제공하면서 비즈니스를 지속적으로 성장시킬 수 있습니다. 하지만 악의를 가진 사용자가 다른 플레이어들을 이기거나 직접적인 금전적 이득을 취하기 위해 구매 및 아이템을 조작할 방법을 모색할 수도 있습니다. 이러한 행동은 다른 플레이어뿐만 아니라 개발자의 비즈니스에도 악영향을 끼칩니다.
Google Play 결제
에서는 게임에 통합시킬 수 있는 도구를 제공하여 Google에서 사기성 구매 및 악성 환불을 탐지하고 줄일 수 있도록 도움을 줍니다.
구매 확인(Validate purchases)
게임 디자인에서 허용되는 만큼, 인앱 구매 확인을 포함한 민감한 데이터 및 로직을 서버로 이동시키는 방안을 고려해 보세요. 게임 클라이언트 측에서 이러한 작업을 하면 게임이 리버스 엔지니어링에 취약해집니다. 구매를 확인할 때 구매 ID를 게임 서버로 전송하고, ID가 이전에 사용된 적이 없는지 점검한 다음 Play Developer API를 통해 Google Play에서 일어난 정상적인 구매인지를 확인한 후 사용자에게 게임 내 항목을 사용할 수 있는 권한을 부여하세요.
이와 더불어 구매를 처리할 때 Play에 난독화된 계정 및 프로필 ID를 전송하면 동일한 게임 내 계정 또는 캐릭터 프로필에
구매가 속하는지
확인할 수 있습니다. 구매를 확인할 때 이러한 ID를 백엔드로 전송하여 사용 권한을 받은 사용자가 구매한 사용자와 동일한지 확인하세요.
사기성 구매(Fraudulent purchases)
구매 요청이 있을 때마다 구매자의 개인 식별 정보가 아닌 부가적인 정보를 포함시키면, Google Play에서 사기성 구매를 탐지 및 차단하는 기능이 더 정확히 동작하도록 만들 수 있습니다. 구체적으로는
이 페이지의 방법
을 활용하여 사용자의 모든 구매 요청에 난독화된 사용자 게임 계정 ID를 첨부하면 됩니다. 또한 여러 개의 게임을 보유하고 있다면 모든 게임에서 사용자를 대표하는 보조 프로필 ID를 첨부해야 합니다. Google의 위험 관리 엔진에서는 이러한 ID를 사용하여 사기성 구매인지 평가하고 재판매 악용을 예방합니다. 상위 개발자들은 이 Google Play 결제 기능을 도입하고 긍정적인 결과를 얻었습니다. 사기 시도가 최대 30% 감소했으며 지불 거절로 인한 손해도 최대 50% 줄어들었습니다.
환불된 항목 상태(Refunded item status)
Google Play에서는 환불 여부를 결정하는 과정을 개선하기 위해 게임에서 인게임 구매와 관련된 추가 정보를 Play에 제공하는 기능을 테스트하고 있습니다. 이를 통해 환불 과정을 간소화하고 악용을 줄일 수 있습니다. 예를 들어 이미 소비한 아이템에 대해 반복적으로 환불을 받는 사용자를 더욱더 손쉽게 판별해 낼 수 있습니다. 사용자가 환불을 요청하면 Google Play에서 사용자의 환불 요청 및 사유에 관한 정보를 게임 측에 전달합니다. 게임 개발사는 사용자의 아이템 상태(사용자가 이미 아이템을 사용했는지 등)와 환불제공이 필요한 지 여부에 대한 정보를 공유합니다. Google Play에서는 이 정보를 사용하여 올바른 환불 결정을 내릴 수 있도록 돕습니다. 이 기능은 플레이의 일부 파트너들과 함께 테스트되고 있으며, 추후 더 많은 파트너들에게 제공될 예정입니다.
무효화된 구매(Voided purchases)
개발자는
Voided Purchases API
를 통해 사용자가 Google Play에서 환불받은 인앱 구매의 목록을 언제든지 요청할 수 있습니다. 이후 플레이어의 인벤토리를 업데이트하고 환불된 아이템을 삭제하거나 플레이어의 환경에 다른 변화를 줄 수 있습니다. 이러한 조치를 취하면 인게임 아이템의 가치가 유지되고 악의적인 행동의 동기가 줄어들게 됩니다. 상위 개발자의 80%가 현재 Voided Purchases API를 통합하고 있으며 그중 일부는 환불액이 최대 80%까지 감소했습니다. 다음은 Voided Purchases API를 효과적으로 사용하기 위한 몇 가지 도움말입니다.
Voided purchase
API를 자주, 그리고 정기적으로 호출하여 사용자가 구매한 아이템의 목록을 업데이트합니다.
사용자 계정에서 환불된 아이템을 삭제합니다.
아이템 삭제 시 사용자에게 이를 알립니다.
회수가 실패한 경우
조치를 취합니다. 여러 차례 회수가 실패한 경우 구매 제한 등 더욱 강력한 조치를 취하는 것이 좋습니다.
사용자가 이미 인게임 통화를 소비한 경우 계정 잔액을 마이너스로 표시합니다.
계정 잔액이 마이너스이면 인게임 기능을 제한하는 방안을 고려합니다.
보안(Security)
안전한 Android 앱 개발은 크고 중요한 주제이므로 여기에서는 간략하게
다루도록 하겠습니다. 공격자가 게임의 취약점을 발견하고 악용하는 경우 상황이 매우 심각해질 수 있습니다. 그 결과 플레이어가 곤경에 처하고, 게임 홍보에도 부정적으로 영향을 미치며, 규제기관으로부터 벌금이 부과되는 상황까지도 발생할 수 있습니다. 이에 따라 게임을 개발할 때
보안 개발 권장사항
을 준수하고
보안 체크리스트
를 확인하시길 권장드립니다. 특히 데이터, 권한, 네트워크 트래픽을 다룰 때는 각별히 주의하시기 바랍니다.
3rd-party 라이브러리 및 SDK
타사 라이브러리 및 SDK가 게임 코드의 큰 부분을 차지하는 경우가 많다는 점을 감안했을 때 이러한 라이브러리와 SDK가 가장 중대한 보안 위험 요인이 될 수 있습니다. 라이브러리 자체가 악성인 경우도 있지만, 대부분의 경우 라이브러리 또는 SDK의 약점에서 위험이 발생합니다. 개발자는 타사 라이브러리 및 SDK 등 게임에 포함된 모든 콘텐츠에 책임이 있기 때문에, 이러한 경로를 통한 보안 위반도 개발자의 책임에 해당합니다. Google Play는 게임 개발자가 인식하지 못했더라도 SDK 문제가 발생하면 게임을 정지시킵니다. 그러므로 다음의 권장사항을 명심해 주시기 바랍니다.
SDK에서 액세스하는 데이터 및 기기 정보를 분석하고 모든 데이터에 액세스하기 전에 적절한 사용자 동의를 얻습니다.
SDK에서 최소한의 targetSdkVersion을 지원하는지 확인합니다.
SDK에서 재설정이 불가능한 하드웨어 식별자를 수집하지 않는지 확인합니다.
게임이 제거될 때 외부 저장소에서 모든 SDK 고유 파일을 삭제합니다.
서버와의 커뮤니케이션에 HTTPS만 사용합니다.
Play 아카데미에서
SDK 사용 권장사항
을 자세히 알아보세요.
Google Play 보안 리워드 프로그램
마지막으로
, 플레이어가 많은 인기 게임을 운영 중이라면
Google Play 보안 리워드 프로그램
에 참여하시기 바랍니다. 이 프로그램은 여러분의 게임에서 취약점을 발견하여 공개한
보안 연구자에게 Google이 보상을 지급하는 버그 사냥 프로그램입니다. 여러분은 이렇게 발견된 취약점을 해결하여 장기적으로 사용자를 보호할 수 있습니다.
마치면서
어떤 경제에도 이를 악용하는 사람들이 있듯이 모바일 게임 환경도 예외는 아닙니다. 단순히 남들보다 앞서나가고 싶은 플레이어와 같이 위험 수준이 비교적 낮은 경우도 있지만, 게임이나 플레이어 정보를 조작하여 금전적인 이익을 얻으려는 사람도 있습니다. 이 때문에 Google Play에서는 개발자가 위험에 적절히 대응하고 플레이어 및 비즈니스에 미칠 위험을 최소화할 수 있도록 다양한 도구와 서비스를 제공하고 있습니다. 도구가 어떻게 개선될 수 있을지, 누락된 기능이 있는지에 관해 의견이 있으시면 언제든지 알려주시기 바랍니다.
원문
에 댓글을 남겨 주시거나
#AskPlayDev
를 통해
@GooglePlayDev
로 트윗을 보내주세요.
개발자를 위한 Google Play 리소스 및 정보
2020년 4월 17일 금요일
게시자: Sam Tolomei (Google Play 사업 개발팀)
원문은
이 곳
에서 확인 가능하며 블로그 번역 리뷰는 서본양(Google)님이 참여해주셨습니다.
전례를 찾아볼 수 없을 정도로 어려운 상황 속에서 개발자 여러분의 비즈니스가 원활하게 지속되도록 돕고 유저에게 필요한 콘텐츠를 제공하는 Google Play의 사명이 그 어느 때보다 중요해졌습니다. 정보, 커뮤니케이션 도구, 엔터테인먼트 등에 대한 수요가 급증하는 지금, Google Play는 차질 없이 서비스를 제공하기 위해 최선을 다하고 있으며 이를 위해서는 개발자 여러분의 도움이 필요합니다.
끊임없는 변화에 민첩하게 대응하고 여러분의 비즈니스를 이어나가는데 도움이 될 중요한 정보를 아래와 같이 전해드립니다.
앱 검토 기간 지연
많은 개발자분들과 마찬가지로 Google Play 역시 비즈니스 상황의 변화로 인한 업무의 어려움을 관리하기 위해 노력하고 있습니다. 그 결과 앱 검토 기간이 일시적으로 길어져 현재 검토에 7일 이상 소요되기도 합니다. 상황 변화에 따른 중요한 업데이트들이 유저에게 신속하게 전달될 수 있도록 계속해서 노력할 것이기에, 검토 기간이 달라질 수 있습니다. 일부 주요 앱들은 우선 검토 대상으로 선정되어 검토 기간이 지연되지 않을 수도 있으니, Google Play Console에서 최신 정보 및 가이드를 확인해 주시기 바랍니다.
이와 동시에 저희는 코로나19에 관한 정보를 정확하고 시의적절하게 제공하기 위해 공식 정부 기관 및 공중 보건 단체에서 게시하였거나 위탁/승인된 앱을 우선적으로 검토하고 있습니다.
앱의 게시 시점을 지정하고 싶으시다면
예약 게시
를 사용하시기 바랍니다. 앱을 제출하여 검토를 받으신 후, 앱이 승인되면 Play Console에서 '게시'를 클릭하여 즉시 앱을 게시하세요. 프로덕션 트랙에 이미 제출하신 버전이 검토 중인 경우 '예약 게시' 옵션이 표시되지 않는다는 점을 참고해주시기 바랍니다.
스토어 등록정보 및 인앱 가이드라인
Google Play는 정확하고 관련성 높은 정보를 사용자에게 제공하는 것을 매우 중요한 책임으로 생각합니다. 이러한 이유로 현재 Google Play는 스토어 등록정보 메타데이터에 코로나19 관련 용어가 언급되어 있는 앱의 경우, 공식 정부 기관 및 공중 보건 단체에서 게시하였거나, 위탁/승인한 앱, 그리고 광고, 인앱 상품 및 인앱 기부 등의 수익 창출 메커니즘이 포함되어 있지 않은 앱만 승인하고 있습니다. 여기에는 앱 제목, 설명, 출시 노트, 스크린샷 등에서 코로나19 또는 관련된 용어가 언급된 앱도 해당됩니다.
다른 모든 앱은 인앱 환경에 코로나19 관련 키워드와 용어를 사용할 수 있습니다.
의료와 관련 없는 앱의 경우, 코로나19에 대한 언급은 건강과 무관한 내용(예: 운영 시간 변경, 집에서 할 수 있는 활동에 관한 팁 공유, 코로나19의 사회/경제적 영향에 대한 설명 등)으로 제한됩니다. 이러한 앱에는 건강 관련 내용(예: 예방 방법, 치료, 백신)을 포함할 수 없습니다.
부적절한 리뷰 삭제
최근에 트래픽이 증가하면서, 일부 앱에서 사용자의 부적절한 별 1개짜리 리뷰가 급증하고 있습니다. 실제 앱 사용 경험과는 무관한 리뷰를 받고 계시다면,
Play Console에서 해당 리뷰를 신고
해 주시기 바랍니다. Google Play에서는 개발자의 요청을 가능한 한 신속하게 처리할 수 있도록 부정적인 리뷰를 평가 및 삭제하는 역량을 확대했습니다.
구독 지원
정기 결제는 여러 앱 비즈니스 모델에서 큰 부분을 차지하고 있는 가운데, 1) 코로나19로 인해 핵심 비즈니스에 타격을 입은 개발자(예: 실시간 이벤트 티켓 구매) 및 2) 콘텐츠 또는 서비스를 통해 공공 서비스를 제공하는 개발자가 현재 가장 큰 영향을 받으셨을 것 같습니다.
비즈니스 영역 자체에 영향을 받은 개발자의 경우
결제 연기
및
정기 결제 일시중지
와 같은 기능을 사용해 이번 위기가 끝날 때까지 사용자를 유지할 수 있습니다. 의료, 온라인 학습, 웰빙 앱과 같은 콘텐츠 또는 서비스를 할인된 가격 또는 무료로 제공하고자 하는 개발자의 경우 Google Play 결제를 통한
가격 변경
및
환불
같은 기능이 도움이 될 수 있습니다.
Medium 게시물에서 권장사항 자세히 알아보기
Google의 커뮤니티 지원 방법
Google에서는 커뮤니티를 돕는 데도 최선을 다하고 있습니다. 소규모 기업이 고객에게 다시 다가갈 수 있도록, Google에서는 Google Ads 플랫폼 전반에서 사용할 수 있는
3억 4천만 달러 상당의 광고 크레딧
을 제공하고 있습니다.
여기
에서 자세한 내용을 확인하세요.
커뮤니티를 돕기 위한 Google의 다양한 노력을 소개해드립니다.
신뢰할 수 있는 출처의 정보를 찾는 사용자를 위해 유용한 리소스를 모은
코로나바이러스 특별 섹션
을 Google Play에 마련했습니다.
더 많은 사람이 개발자 여러분의 앱과 게임을 즐길 수 있도록 Google Play Pass 무료 체험 기간을 30일로 연장했습니다.
어린이에게 양질의 학습 기회를 제공하는 조직을 지원하기 위해 천만 달러 규모의
원격 학습 기금
을 조성했습니다. 교육 관련 비영리 기업의 개발자라면 이 프로그램으로 혜택을 받을 수 있습니다. Google.org에서 추가 세부사항을 확인하세요.
마지막으로, 개발자 여러분의 도움 덕분에 Google에서는 현장에서 재난 대비, 질병 확산 예방, 대응, 복구에 힘쓰는 조직을 지원하기 위한
Center for Disaster Philanthropy
의
코로나19 대응 기금
에 전달할 금액을 29만 달러 이상 모금했습니다.
시시각각으로 변화하는 상황에 따라, Google에서는 여러분께 도움을 드릴 수 있는 유용한 정보들을 계속해서 모아 전달드리겠습니다. 또한 여러분이 어려움을 겪고 계신 것을 잘 알고 있으므로, 변경 및 장애 요인을 최소화하기 위한 조치를 취하고 있습니다. 앞으로 더 많은 정보를 전달 드릴 예정이니 자주 확인해 주시기 바랍니다. Google 커뮤니티의 일원이 되어 주셔서 감사드리며, 현 시기에 Google에서 개발자를 지원할 수 있는 방법에 대해 다른 제안이 있으신 경우 #AskGooglePlay를 통해
@GooglePlayDev
로 트윗을 보내주세요.
코로나19 상황에서의 구독과 인앱 제품의 모범 사례
2020년 4월 16일 목요일
비즈니스 변화에 따라 구독 서비스와 인앱 제품을 조정하는데 도움이 될 몇 가지 기능을 Google Play 팀이 알려드립니다.
게시자: Diana Garcia Rios (구글
Developer Advocate)
원문은
이 곳
에서 확인 가능하며 블로그 번역 리뷰는 노현석(A
ndroid GDE)님이 참여해주셨습니다.
많은 분들께서 현재의 어려운 상황에서 사용자와 비즈니스를 지원할 방법에 대해 문의해주셨습니다. 모든 분들이 어떻게든 영향을 받으셨겠으나, 특히 아래 두 영역의 개발자분들이 더욱 어려운 상황에 직면하셨을 것이라 생각합니다.
공공 서비스에 콘텐츠나 서비스를 제공하는 개발자
비즈니스에 부정적 영향을 받은 개발자
여러 개발자분들께서 의료, 건강 기록, 온라인 학습, 명상 및 웰빙 앱 등 현 시점에서 중요한 콘텐츠 및 서비스를 할인가로 제공하여 도움의 손길을 전하고 있으며, 또한 사회적 거리두기에 도움이 되고자 엔터테인먼트 및 교육 자료를 보다 저렴한 가격에 제공하기 위해 저희에게 연락한 개발사들도 계셨습니다.
아울러 스포츠 리그, 이벤트나 티켓을 기반으로 하는 비즈니스, 모임 앱과 같이 코로나19 사태로 비즈니스 영역 자체가 직접적인 영향을 받은 개발사도 있습니다.
위와 같은 앱을 서비스하시는 개발사 여러분을 위해, 인앱 제품과 구독 기능을 조정할 때 참고하실 수 있도록 몇 가지 권장 사항을 마련해보았습니다. 아래의 정보가 여러분의 필요에 따라 제품과 기능을 변경하는데 도움이 되기를 바랍니다.
가격 모델을 조정하는 방법은 제공하는 앱의 유형에 따라 다릅니다.
권장 모범 사례
콘텐츠 및 서비스를 제공하는 앱의 모범 사례
서비스 가격을 인하하려는 경우, 다음과 같이 제품 유형과 타겟 사용자에 따라 고려할 수 있는 여러 옵션이 있습니다.
기존 구독자
의 경우, 서비스 내역이 축소된 기간 동안
일부 또는 전액 환불을 진행
하거나, 서비스 전 내역을 다시 제공할 수 있을 때까지
결제를 연기
할 수 있습니다.
앱에서
일회성 구매 서비스
를 판매하는 경우,
프로모션
을 진행하거나 일시적으로
가격을 변경
할 수 있습니다.
신규 구독자
의 경우,
프로모션, 무료 체험판 또는 신규 할인 가격
을 제공할 수 있습니다. 이를 통해 여러분이 현 시점에서 제공하려는 가격대로 사용자는 새로 구독할 수 있고, 향후 여러분과 사용자에게 모두 적합한 시점에 갱신 가격을 재조정할 수 있습니다.
유료 앱
의 경우, 최장 8일간
할인을 구성
할 수 있습니다.
비즈니스에 영향을 받은 앱의 모범 사례
기존에 앱을 통해 판매했던 디지털 상품 중 일부를 현 상황으로 인해 제공하지 못하는 개발사도 있을 것입니다. 현재 상황을 인지하고, 또 고객의 마음을 얻을 수 있도록 가격 조정을 고려해보는 것도 좋습니다.
구독
의 경우, 전체 서비스가 복원될 때까지
결제 연기
를 선택할 수 있습니다.
장기 구독
의 경우, 서비스가 영향을 받는 기간에 해당하는 금액만큼
일부를 환불 처리
할 수 있습니다.
사용자에게 제공할 수 있는 또 다른 옵션은
구독을 일시 중지
하는 것입니다. 이 옵션을 선택하기로 결정하면 이후에
쿠폰 업그레이드
,
결제 연기
또는
일부 환불
로 다시 고객 확보를 시도할 수 있습니다.
일회성 구매
나
유료 앱 중에서 (현 사태로 인해) 앱 가치에 영향을 받은
경우,
일부 또는 전액 환불
처리를 고려할 수 있습니다.
일부 개발자는 일반적인 구독 모델에서 벗어나
새로운 유형의 콘텐츠를
일회성 구매 서비스
로 제공하고 있습니다. 예를 들면, 기존에 실시간 이벤트에 대한 서비스를 제공하던 개발자가 현재는 인터뷰 및 녹화 콘텐츠 서비스를 제공하는 경우입니다.
위의 옵션이 여러분의 사례에 적용되지 않거나 충분하지 않을 경우,
어떤 도움이 필요하신지 알려주세요.
기능과 구현
위에서 언급한 고급 결제 기능에 대해 좀 더 자세히 알려드리겠습니다.
결제 연기
Google Play Developer API
를 사용하면
Purchases.subscriptions:defer
를 사용해 정기 결제 사용자의 다음 결제일을 조정할 수 있습니다. 사용자는 계속 콘텐츠를 구독하고 전체 액세스 권한을 갖지만, 지연 기간에는 비용이 청구되지 않습니다. 구독 갱신 날짜는 새로운 날짜를 반영하여 업데이트 됩니다.
결제 연기
를 통해 사용자에게 번들 또는 특별 이벤트의 일환으로 무료 액세스 권한을 제공할 수도 있습니다. 실물 잡지를 구독하는 사용자에게 웹 콘텐츠에 무료로 액세스 할 수 있는 권한을 주는 것이 예가 될 수 있습니다. 또한 고객 호감도를 높이기 위한 방안으로 사용자에게 무료 액세스 권한을 제공할 수도 있습니다. API 호출에 따라 결제를 짧게는 하루, 길게는 1년을 연기시킬 수 있습니다. 새로운 결제일이 다가오기 전에 이 API를 호출하면 결제를 좀 더 연기할 수 있습니다. 위와 같이 진행할 때에는 사용자에게 이메일로 알리거나 앱 내부의 메시지를 통해 결제일이 변경 되었음을 사용자에게 분명히 알릴 것을 권고합니다. 이 과정은 무료 체험판에도 현재 구독제품과 마찬가지로 적용됩니다.
가격 인하
Google Play Console
에서 앱 구독 및 일회성 구매 가격을 조정할 수 있습니다. 또한
Google Play Developer API
를 통해 인앱 제품을 수정할 수도 있습니다. 현재 가격 및 배포설정은
고객센터에 문서화
되어 있습니다.
기본 가격을 변경하는 것은 일반적으로 신규 구독자와 기존 구독자 모두에게 적용되기 때문에 프로모션 용도로 사용할 경우 그 취지에 맞지 않습니다. 프로모션 목적을 위해서는
신규 할인 가격, 무료 체험판
또는
기타 프로모션
방안이 있습니다. 그러나 현 상황에서는 일시적인 방편으로써 모든 구독자에게 특별가를 제공하도록 가격을 변경하는 안이 적절할 수도 있습니다. 혹은 사용자의 참여도를 높이기 위해 프로모션 기능을 활용할 수도 있습니다. 다음은 각 옵션의 기능과 용도를 정리한 내용입니다.
무료 체험판
을 통해서 잠재고객이 정가 및 신규 할인가로 구독 가격을 지불하기 전에 일정 기간 동안 유료 구독 앱에 무료로 액세스할 수 있도록 하여, 전환율을 더욱 끌어올릴 수 있습니다. 불확실성이 커진 시기에 많은 개발자들이 사용자에게 무료 체험판 혜택을 연장하여 제공하고 있습니다. 무료 체험판을 제공하면 앱을 제거했던 사용자도 다시 앱을 설치해 사용하도록 유도하는 데 도움이 될 수 있습니다.
신규 할인 가격
을 통해 사용자에게 구독 가격을 정가 그대로 청구하기 전에 정해둔 일수 또는 결제 기간 동안 잠재 고객에게 할인된 구독 가격을 제시함으로써 전환율을 더욱 끌어올릴 수 있습니다. 이를 앱 잔존율을 유지하고 활성화 하는데 활용할 수도 있습니다.
기본적으로 무료 체험판 및 신규 할인가격은 모두 가입자당 한 번, 앱당 한 번 사용할 수 있지만
플레이 콘솔
에서 이러한 제한을 구독 제품 당 한 번으로 완화할 수 있습니다.
인앱 구매와 유료 앱의 경우, 매 분기 각 앱별로 최대 500개의
프로모션 코드
를 적용할 수 있습니다. 각 앱별로 최대 10,000개의 구독 코드를 사용할 수 있으며, 프로모션 코드를 사용하려면
인앱 통합이 필요합니다
.
전액 및 일부 환불
Play Console 웹사이트 또는 앱을 사용하여 앱의 주문을 확인하고,
환불을 진행
하고, 사용자가 구매한 아이템에 대한 구독 취소를 관리할 수 있습니다. 일부 환불은 Play Console 웹사이트에서 사용자 별로 실행할 수 있습니다. 전액 환불은 Play Console 앱이나 Play Console 웹사이트에서 실행하거나
Purchases.subscriptions:refund
를 호출하는
Google Play Developer API
를 통해 프로그램으로 실행할 수 있습니다.
구독 일시 중지
이 옵션으로 Google Play 구독 센터에서
구독을 일시 중지
하거나 구독 취소 과정에서 일시 중지하도록 선택할 수 있습니다. 이 기능은 현재 결제 기간이 종료된 후에 적용됩니다. 일시 중지 기간이 종료되거나 사용자가 수동으로 구독을 재개하는 경우에 결제가 다시 시작됩니다.
구독 일시 중지 기능을 사용하려면 다음과 같이 해야 합니다.
계정 보류 실행
Play Console에서 일시 중지 활성화
일시 중지 상태 인식
사용자가 결제 거부에 대한 인앱 메시지나 이메일 메시지를 받는 경우, 구독 일시 중지를 알리도록 사용자 알림 업데이트
실시간 개발자 알림(RTDN)을 설정하지 않고 구독 일시 중지를 활성화할 수 있지만, (교차 플랫폼 권한 유형 변경 등으로) 사용자가 구독을 일시 중지하거나 복원할 때 백엔드를 동기화된 상태로 유지하기 어려워집니다. 일시 중지된 사용자를 위해 앱에서 딥 링크를 설정하여 Play Store 앱을 통해 구독 센터에 쉽게 액세스할 수 있도록 합니다.
실시간 개발자 알림(RTDN)
RTDN
은 구독자 권한 상태(예: 구독 구매, 구독 취소, 구독 보류)가 바뀔 때 서버에 즉시 알림을 보내는 기능입니다. 또한 이런 알림 기능을 사용해 구독자에게 적절한 메시지를 보낼 수도 있습니다. 예를 들어, 구독자가 구독을 취소할 경우 "현재 저희가 정상적으로 서비스를 제공하는데 어려움이 있습니다. 고객님을 다시 모시고자 정상 구독가의 50% 할인 혜택을 드립니다."와 같은 메시지를 보내는 방식으로 대처할 수 있습니다.
RTDN을 사용하여 구매 및 구독 갱신을 포함해 모든 구독 이벤트의 기록을 정확하게 유지해야 합니다. 실시간 추적 기능은 무료 체험판 등록처럼 Google Play Console에서 사용할 수 없는 구독자별 세부 정보를 추적하도록 하여, 수익 보고를 개선하는데 도움이 될 수 있습니다.
딥 링크 설정으로 계정 복원
일부 사용자는 현 상황 때문에 Google Play에서 구독을 취소할 수도 있습니다. 개발자가 고객 서비스 요청에 대응하여 Google Play Developer API를 사용해 Purchases.subscriptions:cancel을 호출해 구독을 취소할 수도 있습니다. (참고: 이 API는 보통 사용자가 My Orders 페이지에서 환불을 요청할 때 사용됩니다.) 자세한 내용은
구독 비용 환불
을 참조하세요.
사용자가 구독을 취소하더라도 현재 구독 중인 서비스의 결제 주기가 끝날 때까지는 해당 콘텐츠에 계속 액세스할 수 있습니다. 결제 주기가 종료되면 액세스가 취소됩니다.
개발자는 사용자가 복원 등 구독 상태를 스스로 관리할 수 있도록,
딥 링크
를 통해 앱에서 Play Store 앱의 구독 관리 페이지에 쉽게 액세스할 수 있도록 조정 해야 합니다. (샘플 코드는
여기
에서 확인 가능합니다.)
위의 기능이 현 시기에 사용자를 지원하고 비즈니스를 유지하는 데 필요한 도움이 될 수 있길 바랍니다. 저희는 개발자가 사용자와 좋은 관계를 맺고, 예기치 않은 상황에서도 개발자가 원하는 방식대로 대응할 수 있는 플랫폼을 만들기 위해 여러 방안을 강구하고 있습니다.
코로나19와 관련해 여기서 언급되지 않은 내역으로 앱 운영에 어려움이 있다면, 가능한 범위 내에서 최선을 다해 도와드리고 싶습니다. 아래에 댓글을 남기시거나
저희에게 알려주세요
.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed