이 문서에서는 PC용 Google Play 게임즈의 SDK 및 게시와 관련해 자주 묻는 질문에 답변합니다.
수익 창출
백엔드 서버 없이 구매 흐름을 사용할 수 있나요?
보안 관점에서 Google에서는 백엔드 서버를 사용하는 것을 권장합니다.
자세한 내용은 백엔드 서버 없이 처리를 참고하세요.
PC용 Google Play 게임즈 SDK를 통합한 후 기존 API 기반 결제 시스템이 허용되나요?
모든 결제는 Google Play 결제를 사용하여 PC용 Google Play Games SDK에서 처리해야 합니다. 동일한 게임에서 기존 API 기반 결제 수단을 사용할 수 없습니다.
개발자 모드에서 구매를 사용하는 방법
3분 이내에 개발자 모드에서 구매를 소비해야 합니다. 그렇지 않으면 구매가 환불됩니다.
반복 결제 또는 정기 결제가 지원되나요?
당장은 아니지만 향후 로드맵에 추가할 수 있도록 구체적인 사용 사례를 제공해 주시면 됩니다.
구매 호출에 청구 오류가 표시되는 이유는 무엇인가요?
BillingError는 결제 결과의 응답입니다. LaunchPurchaseFlow는 차단 없이 즉시 반환되지만 완료 시점을 알고 결과를 캡처하려면 콜백을 수신해야 합니다.
클라이언트 측 구매 인증을 사용하려면 어떻게 해야 하나요?
서버 측 구매 및 확인 프로세스를 사용하는 것이 좋습니다. 클라이언트 앱에서 구매를 처리하려면 게임이 허용 목록에 있어야 합니다. 게임에 액세스가 필요한 경우 Google 파트너에게 문의하세요. 자세한 내용은 백엔드 서버 없이 처리를 참고하세요.
제품 세부정보를 쿼리하는 API 한도는 무엇인가요?
QueryProductDetailsAPI에 대한 단일 호출에서 쿼리할 수 있는 최대 제품 수는 50개입니다. 이 한도를 초과하는 경우 요청을 여러 호출로 분할해야 합니다.결제 클라이언트에서 Query Purchases 또는 Launch Purchase Flow를 호출할 때 필요한 매개변수는 무엇인가요?
이 함수는
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가지 가능한 오류 사례가 있습니다.Billing Client에서 구매 흐름 실행에 맞춤 순서가 지원되나요?
현재 SDK 설계에서는 자체 페이로드를 전달할 방법이 없습니다. 하지만
obfuscated_account_id및obfuscated_profile_id을 원하는 대로 조합하여 제공할 수 있습니다. 둘 다 제공하지 않아도 되고, 하나만 제공해도 되고, 둘 다 제공해도 됩니다.offer_token필드는 필수이며 사용자가 결제 흐름에서 구매하려고 하는 구매 혜택을 지정합니다. 현재 Google Play의 각 SKU에는 혜택이 하나만 있습니다 (예: 상품 1개를 10달러에 구매). 향후 Play 결제팀에서 여러 혜택을 지원할 예정입니다.구매 흐름에 방해가 있을 때 메타데이터의 연결을 보장하려면 구매 대화상자를 실행하고 메타데이터를 사용자의 계정 ID, 구매 중인 SKU 및 현재 타임스탬프와 연결하기 전에 개발자의 백엔드 서버에 저장하세요. 자세한 내용은 구매를 내부 데이터와 연결을 참고하세요.
사용자가 구매 흐름 중에 결제하지 않고 브라우저를 닫으면 타임아웃 오류가 발생해야 하나요?
예, 이는 알려진 문제이며 브라우저 기반 흐름에서 의도된 동작입니다. 게임 내에서 결제 흐름을 유지하고 이 제한 시간 불편을 해결하는 원활한 구매 기능 (WebView 기반)을 적극적으로 개발하고 있습니다.
OAuth를 사용하는 Google 결제에서 DLL을 사용하는 네이티브 Google 결제로 전환하기 위한 필수 요건은 무엇인가요?
게임은 Google을 사용한 OAuth 로그인으로 로그인한 계정을 계속 관리할 수 있지만, 기존 REST 결제 API의 사용을 중지하는 것이 좋습니다. REST 결제 API (OAuth2 로그인 포함)에서 SDK 흐름으로 전환하는 것은 기능 플래그가 지정된 작업일 수 있으므로 게임이 전환되는 동안 두 API가 한동안 공존할 수 있습니다.
Launch Purchase Flow API 호출이 웹브라우저를 통해 처리되나요?
예, 현재는 브라우저를 통해 처리됩니다. Google은 SDK를 통해 게임을 나가지 않고 전체 흐름을 완료할 수 있도록 계획하고 있습니다.
사용자가 구매하려면 게임마다 별도로 로그인해야 하나요?
Google Play 게임즈의 포그라운드 계정은 각 게임 세션에 사용되므로 다시 로그인할 필요가 없습니다. 게임 세션이 시작될 때 Google Play 게임즈에서 사용하는 계정은 API 호출이 발급되는 계정입니다. 브라우저에서 구매 흐름을 시작할 때는 게임 세션과 동일한 계정으로 로그인하고 있어야 합니다. 사용자가 다른 계정으로 로그인한 경우 웹 흐름에서 계정을 전환하라는 메시지가 표시됩니다.
게임에서 네이티브 SDK와 기존 결제 시스템을 동시에 지원할 수 있나요?
결제 시스템은 게임 바이너리 버전에 따라 이중 흐름 모델로 작동합니다. 기존 빌드의 사용자는 기존 흐름을 계속 사용하고 새 빌드의 사용자는 SDK 기반 결제로 전환됩니다. 전환 기간 동안 두 결제 흐름의 사용자가 공존합니다.
Windows App Bundle
서드 파티 런처를 사용하여 WAB를 제출할 때 검토를 위해 게임 패키지가 필요한가요?
설치 프로그램만 제출하면 됩니다. 전체 게임 패키지를 제출하지 않아도 검토자가 설치 프로그램을 사용하여 게임 패키지를 다운로드할 수 있습니다.
WAB 파일 크기에 제한이 있나요?
WAB의 경우 최대 10GB 크기의 파일을 업로드할 수 있습니다.
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 설치 리퍼러 통합이 PC SDK와 호환되나요?
PC SDK (25.5.409.0 이상)는 Play Install Referrer API를 지원합니다. 자세한 내용은 Play Install Referrer API를 참고하세요.
런처
플레이어가 Google Play 클라이언트 대신 서드 파티 런처를 사용하는 경우 Play 게임즈 서비스 계정이 자동으로 동기화되나요?
SDK 함수가 작동하려면 게임이 Google Play 게임즈 클라이언트를 통해 직접 실행되어야 합니다. 설치 프로그램이나 런처 애플리케이션과 같은 다른 프로세스가 게임을 시작하는 경우 해당 프로세스 자체가 Google Play 게임즈 클라이언트에서 시작되어야 합니다. 게임은 클라이언트에서 수신한 모든 매개변수를 클라이언트 프로세스에 전달해야 합니다.
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 게임즈 클라이언트가 실행 중이고 로그인 정보가 유효한 경우 가능합니다. 하지만 가이드에 설명된 시나리오와 같이 사용자가 게임을 닫거나 SDK 초기화 실패(예:
kActionRequiredShutdownClientProcess)로 인해 게임이 종료되면 게임에서 실행한 모든 프로세스가 종료되어야 합니다.게임을 직접 여는 바로가기를 만들 수 있나요?
다음 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으로 문의하세요.