이 문서에서는 PC용 Google Play 게임즈의 SDK 및 게시와 관련해 자주 묻는 질문에 답변합니다.
수익 창출
새 결제 또는 라이선스 키를 추가한 후 오류 코드 6으로 구매 흐름이 실패하는 이유는 무엇인가요?
Google Play Console에서 새로 생성된 라이선스 키는 Google Play의 내부 캐시가 모든 서비스 환경에서 동기화되기 전에 상거래 백엔드에서 몇 시간의 캐싱 및 전파 지연이 발생합니다. 게임 클라이언트에서 제품 세부정보를 성공적으로 쿼리할 수 있더라도 동기화가 완료될 때까지 구매 요청이 오류 코드 6과 함께 실패합니다. 라이선스 키를 업로드하거나 업데이트한 후 몇 시간이 지나야 구매를 테스트할 수 있습니다.
백엔드 서버 없이 구매 흐름을 사용할 수 있나요?
보안 관점에서 Google에서는 백엔드 서버를 사용하는 것을 권장합니다.
자세한 내용은 백엔드 서버 없이 처리를 참고하세요.
PC용 Google Play 게임즈 SDK를 통합한 후 기존 API 기반 결제 시스템이 허용되나요?
모든 결제는 Google Play 결제를 사용하여 PC용 Google Play Games SDK에서 처리해야 합니다. 동일한 게임에서 기존 API 기반 결제 수단을 사용할 수 없습니다.
개발자 모드에서 구매를 사용하는 방법
3분 이내에 개발자 모드에서 구매를 소비해야 합니다. 그렇지 않으면 구매가 환불됩니다.
반복 결제 또는 정기 결제가 지원되나요?
당장은 아니지만 향후 로드맵에 추가할 수 있도록 구체적인 사용 사례를 제공해 주시면 됩니다.
구매 호출에 결제 오류가 있습니다.
BillingError는 결제 결과의 응답입니다. LaunchPurchaseFlow는 차단 없이 즉시 반환되지만 완료 시점을 알고 결과를 캡처하려면 콜백을 수신해야 합니다.
클라이언트 측 구매 인증을 사용하려면 어떻게 해야 하나요?
서버 측 구매 및 인증 프로세스를 사용하는 것이 좋습니다. 클라이언트 앱의 구매를 처리하려면 게임이 허용 목록에 있어야 합니다. 게임에 액세스해야 하는 경우 Google 파트너에게 문의하세요. 자세한 내용은 백엔드 서버 없이 처리를 참고하세요.
제품 세부정보를 쿼리하는 API 한도는 무엇인가요?
QueryProductDetailsAPI에 대한 단일 호출에서 쿼리할 수 있는 최대 제품 수는 50개입니다. 이 한도를 초과하는 경우 요청을 여러 호출로 분할해야 합니다.결제 클라이언트에서 구매 쿼리 또는 구매 흐름 실행을 호출할 때 필요한 매개변수는 무엇인가요?
이 함수는
std::function<void(QueryPurchasesResult)>서명이 있는 함수 콜백인QueryPurchasesContinuation를 허용합니다. 콜백은 모든ProductPurchaseDetails와 함께 결과를 전달합니다. 이 정보는includes/billing/models.h파일의 SDK 헤더 파일에서 확인할 수 있습니다.결과로 생성된
launch_purchase_flow_result에는ok()및code()함수가 있습니다.ok()함수는 흐름이 성공했는지 여부를 반환합니다.code()함수는BillingErrorenum(includes/billing/enums.h)을 반환하며, 여기에는 사용자 취소 또는 네트워크 오류와 같은 10가지 가능한 오류 사례가 있습니다.결제 클라이언트에서 구매 흐름 실행에 맞춤 순서가 지원되나요?
현재 SDK 설계에서는 자체 페이로드를 전달할 방법이 없습니다. 하지만
obfuscated_account_id및obfuscated_profile_id을 원하는 대로 조합하여 제공할 수 있습니다. 둘 다 제공하지 않거나, 하나만 제공하거나, 둘 다 제공할 수 있습니다.offer_token필드는 필수이며 사용자가 결제 절차에서 구매하려고 하는 구매 혜택을 지정합니다. 현재 Google Play의 각 SKU에는 정확히 하나의 혜택 (예: 상품 하나를 $10에 구매)이 있습니다. 향후 Play 결제팀에서 여러 혜택을 지원할 예정입니다.구매 흐름에 방해가 있을 때 메타데이터의 연결을 보장하려면 구매 대화상자를 실행하고 메타데이터를 사용자의 계정 ID, 구매 중인 SKU 및 현재 타임스탬프와 연결하기 전에 개발자의 백엔드 서버에 저장하세요. 자세한 내용은 구매를 내부 데이터와 연결을 참고하세요.
OAuth를 사용하는 Google 결제에서 DLL 기반 Google 결제로 전환하기 위한 필수 요건은 무엇인가요?
게임은 Google을 사용한 OAuth 로그인으로 로그인한 계정을 계속 관리할 수 있지만, 기존 REST 결제 API는 사용하지 않는 것이 좋습니다. REST 결제 API (OAuth2 로그인 포함)에서 SDK 흐름으로 전환하는 것은 기능 플래그가 지정된 작업일 수 있으므로 게임이 전환되는 동안 두 API가 한동안 공존할 수 있습니다.
Launch Purchase Flow API 호출이 웹브라우저를 통해 처리되나요?
아니요. 이제 게임 클라이언트를 나가지 않고도 원활한 WebView 오버레이를 사용하여 게임 내에서 구매 흐름을 완전히 완료할 수 있습니다.
사용자가 구매하려면 게임마다 별도로 로그인해야 하나요?
Google Play Games의 포그라운드 계정은 각 게임 세션에 사용되므로 다시 로그인할 필요가 없습니다. 게임 세션이 시작될 때 Google Play 게임즈에서 사용하는 계정은 API 호출이 실행되는 계정입니다. 구매 흐름에서 이 계정이 자동으로 사용됩니다.
게임에서 PC SDK와 기존 결제 시스템을 동시에 지원할 수 있나요?
결제 시스템은 게임 바이너리 버전에 따라 이중 흐름 모델로 작동합니다. 기존 빌드의 사용자는 기존 흐름을 계속 사용하고 새 빌드의 사용자는 SDK 기반 결제로 전환됩니다. 전환 기간 동안 두 결제 흐름의 사용자가 공존합니다.
Windows App Bundle
서드 파티 런처를 사용하여 WAB를 제출할 때 검토를 위해 게임 패키지가 필요한가요?
설치 프로그램만 제출하면 되며 전체 게임 패키지를 제출하지 않아도 됩니다. 검토자가 설치 프로그램을 사용하여 게임 패키지를 다운로드할 수 있습니다.
WAB 파일 크기에 제한이 있나요?
설치 프로그램 게시의 경우 WAB의 파일 크기를 최대 10GB까지 업로드할 수 있습니다. Play 관리 게시의 경우 최대 WAB 파일 크기 제한은 200GB입니다.
WAB를 업로드한 후 게임이 설치되지 않거나 표시되지 않는 이유는 무엇인가요?
기존 PC 버전이 없는 게임이 온보딩되는 경우('첫 번째 WAB') 시스템에서 관리형 게시 대기 상태로 자동 배치할 수 있습니다. 업데이트할 기존 기준이 없기 때문에 발생합니다. WAB를 완전히 출시하고 게임을 설치할 수 있도록 하려면 Google Play Console로 이동하여 필수 게시 작업 (예: '변경사항 게시' 클릭)을 수동으로 실행해야 합니다.
내부 테스트를 위해 WAB를 업로드하려면 어떻게 해야 하나요?
Google에서 내부 테스트를 사용 설정할 수 있도록 허용 목록 계정을 Google과 공유합니다. Google은 목록을 받은 후 온보딩 프로세스에 포함되도록 합니다.
WAB 패키지는 어디에 업로드해야 하나요?
첫 번째 질문에 언급된 위치에 WAB 패키지를 업로드할 수 있습니다. 하지만 수동으로 게시할 수는 없습니다. Google 백엔드 직원에게 정확한 UTC 시간 (시간까지)을 제공해야 합니다. 그러면 Google에서 출시 일정을 구성하고 제때 게시되도록 합니다.
PC SDK
기존 API와 PC용 Google Play 게임즈 SDK의 차이점은 무엇인가요?
- 레거시 API는 결제 기능만 제공합니다.
- PC SDK는 Google 데스크톱 서비스 (GDS) 및 전체 PC 기능을 지원합니다.
- PC SDK에는 브라우저 기반 Google 로그인이 필요하지 않습니다.
PC용 Google Play Games를 거치지 않고 게임 런처를 사용하여 직접 게임을 실행하여 SDK를 초기화하는 다른 방법이 있나요?
게임은 PC용 Google Play Games 클라이언트를 통해 실행해야 합니다. 자세한 내용은 이 개발자 문서를 참고하세요.
PC SDK는 PEM 인증 파일에서 멀티바이트 문자를 지원하나요?
예, SDK는 인증을 위해 멀티바이트 문자를 지원합니다.
SDK는 여러 인스턴스 또는 계정의 Google 계정 로그인을 어떻게 처리하나요?
Google Play Games에서 게임을 실행할 때마다 '게임 세션'으로 처리되며 각 '게임 세션'에는 계정이 연결될 수 있습니다. 다를 수 있습니다. 따라서 계정 A로 게임을 실행한 다음 계정 B로 전환하고 다시 실행하면 두 게임이 동시에 실행될 수 있습니다.
Play Install Referrer 통합이 PC SDK와 호환되나요?
PC SDK (25.5.409.0 이상)는 Play Install Referrer API를 지원합니다. 자세한 내용은 Play Install Referrer API를 참고하세요.
런처
플레이어가 Google Play 클라이언트 대신 서드 파티 런처를 사용하는 경우 Play 게임즈 서비스 계정이 자동으로 동기화되나요?
SDK 함수가 작동하려면 게임이 Google Play Games 클라이언트를 통해 직접 실행되어야 합니다. 설치 프로그램이나 런처 애플리케이션과 같은 다른 프로세스에서 게임을 시작하는 경우 해당 프로세스는 Google Play Games 클라이언트에서 직접 실행해야 합니다. 게임은 클라이언트에서 수신한 모든 매개변수를 클라이언트 프로세스에 전달해야 합니다.
Google Play Games에서 서드 파티 게임 런처를 실행하는 경우 초기화는 어떻게 처리해야 하나요?
SDK를 런처에 직접 통합하지 않아도 됩니다. 하지만 런처가 Google Play Games 클라이언트로부터 수신한 모든 명령줄 인수를 생성된 하위 프로세스 (게임 실행 파일)에 직접 전달해야 합니다. 초기화가 실패하면 (예:
kActionRequiredShutdownClientProcess반환) Google Play Games가 자동으로 복구하고 게임을 다시 실행할 수 있도록 런처를 포함한 모든 프로세스를 종료해야 합니다. 자세한 내용은 설정 가이드의 5단계를 참고하세요.게임 및 런처가 프로덕션에 출시된 후 업데이트 및 유지보수를 처리하려면 어떻게 해야 하나요?
후속 업데이트와 유지보수는 런처를 통해 구현해야 합니다. Google Play Games 클라이언트는 업데이트 기능을 지원하지 않으므로 런처는 게임과 런처 자체를 모두 업데이트할 수 있어야 합니다.
설치 프로그램은 자동 재생을 위한 GPG 세션 토큰을 어떻게 수신하나요?
GPG는
--g_session_token=<token>명령줄 인수를 사용하여 세션 토큰을 설치 프로그램에 전달합니다. 이 기능을 사용 설정하려면play_publishing_config.xml에서acceptsCommandLineArguments="true"를 설정해야 합니다.설치 프로그램은 이 토큰을 추출하고 이를 사용하여 게임을 실행해야 합니다. 토큰 생성이 실패하면 GPG는 토큰 없이 설치 프로그램을 실행합니다 (대체).
초기화
Google Play 게임즈 앱을 사용하여 게임을 시작하면 Google 계정 세부정보가 동기화되나요?
Google Play Games 클라이언트를 통해 게임을 실행하면 계정이 자동으로 동기화되므로 Google 로그인 프로세스를 통해 다시 로그인할 필요가 없습니다.
초기화 매개변수를 여러 번 재사용할 수 있나요?
Google Play Games 클라이언트가 실행 중이고 로그인 정보가 유효한 경우에 가능합니다. 하지만 가이드에 설명된 시나리오와 같이 사용자가 게임을 닫거나
kActionRequiredShutdownClientProcess와 같은 SDK 초기화 실패로 인해 게임이 종료되는 경우 게임에서 실행된 모든 프로세스가 종료되어야 합니다.게임을 바로 여는 바로가기를 만들 수 있나요?
다음 URI를 사용하여 게임을 직접 열 수 있습니다.
googleplaygames://launch/?pid=2&id=com.company.gamenameURI는 PC용 Google Play 게임즈 클라이언트가 열려 있는지 감지하는 기능을 지원합니다. 클라이언트가 열려 있지 않으면 게임이나 런처가 실행되기 전에 Google Play Games 클라이언트가 열립니다. 여러 인스턴스가 실행되지 않도록 게임이나 런처를 관리해야 합니다.
SDK를 사용하지 않고 PC용 Google Play 게임즈 설치를 확인할 수 있는 방법이 있나요?
다음 Windows 레지스트리 키의 존재 여부를 확인하여 SDK를 통합하지 않고도 PC용 Google Play 게임즈의 설치 상태를 확인할 수 있습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Services이 키가 있으면 PC에서 게임을 실행하는 데 필요한 Google Play 게임즈 서비스가 머신에 설치되어 있음을 나타냅니다. 키가 누락된 경우 사용자를 PC용 Google Play Games 설치 페이지로 안내하여 클라이언트를 다운로드하고 설치하도록 해야 합니다.
테스트
모바일과 유사한 공개 테스트 또는 비공개 테스트 환경이 있나요?
전용 엔드 투 엔드 샌드박스는 제공되지 않지만 개발자를 위한 프로덕션과 유사한 테스트 환경이 필요하다는 점을 잘 알고 있습니다. 더 강력한 솔루션이 곧 제공될 예정입니다.
새 테스터를 추가하려면 어떻게 해야 하나요?
Google 담당자가 각 PC 프로젝트에 대해 이메일 그룹을 만듭니다. 여기에 테스터의 Google 계정을 추가해야 합니다. 이 이메일 그룹의 멤버만 Google Play Games 내에서 테스트 패키지를 다운로드할 수 있습니다.
기타
VPN을 사용할 수 있나요?
PC용 Google Play 게임즈가 지원되지 않는 지역에서 게임을 테스트해야 하는 개발자의 경우 VPN을 사용하여 지원되는 지역의 IP 주소를 획득하는 것이 좋습니다.
VPN에서 TUN 모드를 사용 설정해야 합니다. TUN 모드 사용 설정 및 방화벽 구성에 관한 안내는 VPN 제공업체의 작동 설명서에서 확인할 수 있습니다.
TUN 모드를 사용 설정한 후 테스트 목적으로 PC용 Google Play 게임즈와 에뮬레이터를 설치합니다.
Unity 또는 UE 편집기에서 PC용 Google Play 게임즈 개발을 시작하려면 어떻게 해야 하나요?
- 개발자 모드를 사용 설정하고 테스트를 진행합니다.
manifest.xml및.dll파일을 추가합니다. 자세한 내용은 개발자 문서를 참고하세요.- 테스트 목적으로 사전 체험판 파트너 GUID를 등록합니다.
레지스트리 키를 올바르게 사용하려면 어떻게 해야 하나요?
루트 하이브를 기반으로 레지스트리 키를 만들어야 합니다. 목적과 데이터의 특성에 따라 루트 하이브를
HKEY_LOCAL_MACHINE또는HKEY_CURRENT_USER로 설정할 수 있습니다.HKEY_LOCAL_MACHINE하이브는 가이드라인에서 예로 사용됩니다.Google에서 PC 패키지를 검토하기 위한 요구사항은 무엇인가요?
PC 패키지는 악성코드 검사를 거친 후 검토자가 게임 설치, 성공적인 시작, 제거 프로세스만 테스트합니다.
모든 API를 통합해야 하나요?
다른 API는 필수는 아니지만 추가 이점을 제공합니다.
google::play::billing은 인앱 구매 및 디지털 콘텐츠 판매에 필요합니다.google::play::install_referrer는 추천 데이터를 추적하여 앱을 다운로드하는 사용자를 가장 많이 유도하는 트래픽 소스를 파악하는 데 필요합니다.google::play::games::integrity는 잠재적으로 위험한 기기와 알 수 없는 에뮬레이터를 감지하여 악의적인 행위자로부터 앱을 보호하는 데 필요합니다.Google Play Games 클라이언트를 닫을 때 일부 게임 프로세스는 종료되는데 다른 게임 프로세스는 종료되지 않는 이유는 무엇인가요?
Google은 실행 중인 게임의 하위 프로세스 또는 프로세스를 제어하지 않습니다. 동작은 게임이 에뮬레이션된 Android 게임인지 PC 게임인지에 따라 다릅니다. 에뮬레이션된 게임은 자체 환경 내에 설치되므로 동작은 주로 에뮬레이터 초기화 및 종료에 따라 달라집니다.
Google Play 게임즈 제거 기능을 사용해야 하나요 아니면 맞춤 제거 프로그램을 사용해야 하나요?
Google에서는 Google Play 게임즈 제거 기능을 사용하는 것이 좋습니다.
추가 지원
이 FAQ에서 다루지 않는 추가 지원이 필요한 경우 google-play-games-pc@google.com으로 문의하세요.