자주 묻는 질문(FAQ)

이 문서에서는 PC용 Google Play 게임즈의 SDK 및 게시와 관련해 자주 묻는 질문에 답변합니다.

VPN을 추가하는 방법

PC용 Google Play 게임즈가 지원되지 않는 지역에서 게임을 테스트해야 하는 개발자는 VPN을 사용하여 지원되는 지역의 IP 주소를 획득하는 것이 좋습니다.

VPN에서 TUN 모드를 사용 설정해야 합니다. TUN 모드 사용 설정 및 방화벽 구성에 관한 안내는 VPN 제공업체의 작동 설명서에서 확인할 수 있습니다.

TUN 모드를 사용 설정한 후 테스트 목적으로 PC용 Google Play 게임즈와 에뮬레이터설치합니다.

백엔드 서버 없이 구매 흐름을 사용할 수 있나요?

보안 관점에서 백엔드 서버 없이 처리하는 것은 일반적으로 권장되지 않습니다.

자세한 내용은 백엔드 서버 없이 처리를 참고하세요.

Unity 또는 UE Editor에서 PC용 Google Play 게임즈 개발을 시작하려면 어떻게 해야 하나요?

Google Play 게임즈 앱을 사용하여 게임을 시작하면 Google 계정 세부정보가 동기화되나요?

Google Play 게임즈 클라이언트를 통해 게임을 실행하면 계정이 자동으로 동기화되므로 Google 로그인 프로세스를 통해 다시 로그인할 필요가 없습니다.

서드 파티 런처를 사용하여 Windows App Bundle (WAB)을 제출할 때 검토를 위해 게임 패키지가 필요한가요?

설치 프로그램만 제출하면 됩니다. 전체 게임 패키지를 제출하지 않아도 검토자가 설치 프로그램을 사용하여 게임 패키지를 다운로드할 수 있습니다.

플레이어가 Google Play 클라이언트 대신 서드 파티 런처를 사용하는 경우 Play 게임즈 서비스 계정이 자동으로 동기화되나요?

SDK 함수가 작동하려면 게임이 Google Play 게임즈 클라이언트를 통해 직접 실행되어야 합니다. 설치 프로그램이나 런처 애플리케이션과 같은 다른 프로세스가 게임을 시작하는 경우 해당 프로세스는 Google Play 게임 클라이언트에서 직접 실행해야 합니다. 게임은 클라이언트에서 수신한 모든 매개변수를 클라이언트 프로세스에 전달해야 합니다.

SDK는 여러 인스턴스 또는 계정의 Google 계정 로그인을 어떻게 처리하나요?

Google Play 게임즈에서 게임을 실행할 때마다 '게임 세션'으로 처리되며 각 '게임 세션'에는 계정이 연결될 수 있습니다. 다를 수 있습니다. 따라서 계정 A로 게임을 실행한 다음 계정 B로 전환하고 다시 실행하면 두 게임이 동시에 실행될 수 있습니다.

WAB (Windows App Bundle) 파일 크기에 제한이 있나요?

WAB의 경우 최대 10GB 크기의 파일을 업로드할 수 있습니다.

PC용 Google Play 게임즈 SDK를 통합한 후 기존 API 기반 결제 시스템이 허용되나요?

모든 결제는 Google Play 결제를 사용하여 PC용 Google Play 게임즈 SDK에서 처리해야 합니다. 동일한 게임에서 기존 API 기반 결제 수단을 사용할 수 없습니다.

모바일과 유사한 공개 테스트 또는 비공개 테스트 환경이 있나요?

현재 전용 엔드 투 엔드 샌드박스는 제공되지 않지만 개발자를 위한 프로덕션과 유사한 테스트 환경의 필요성을 인지하고 있습니다. 더 강력한 솔루션이 곧 제공될 예정입니다.

개발자 모드에서 시작된 구매를 올바르게 사용할 수 없습니다.

개발자 모드에서 구매 사용은 3분 이내에 완료해야 합니다. 그렇지 않으면 구매가 환불될 수 있습니다.

API (기존)와 PC용 Google Play 게임즈 SDK 간에 차이점이 있나요?

  • 기존 결제에만 집중
  • SDK는 Google 데스크톱 서비스 (GDS) 및 전체 PC 기능을 지원합니다.
  • 개발자 친화적인 SDK 인터페이스
  • 브라우저 기반 Google 로그인이 필요하지 않음

PC용 Google Play 게임즈를 거치지 않고 게임 런처를 사용하여 게임을 직접 실행하여 SDK를 초기화하는 다른 방법이 있나요?

게임은 PC용 Google Play 게임즈 클라이언트를 통해 실행해야 합니다. 자세한 내용은 개발자 문서를 참고하세요.

정기 결제 또는 구독이 지원되지 않습니다. 이를 구현할 계획이 있나요?

인앱 구매 외에 이러한 구매 옵션을 추가할 계획은 없습니다. 구체적인 사용 사례에 대한 의견을 보내주시면 감사하겠습니다.

billingerror는 구매 흐름을 시작할 때 발생하나요 아니면 결제 결과에서 발생하나요?

결제 결과의 응답입니다. LaunchPurchaseFlow는 차단 없이 즉시 반환되지만 완료 시점을 알고 결과를 캡처하려면 콜백을 수신해야 합니다.

게임을 바로 열 수 있는 바로가기를 만드는 방법이 있나요?

다음 URI를 사용하여 게임을 직접 열 수 있습니다.

googleplaygames://launch/?pid=2&id=com.company.gamename

URI는 PC용 Google Play 게임즈 클라이언트가 열려 있는지 감지하는 기능을 지원합니다. 클라이언트가 열려 있지 않으면 게임/런처가 실행되기 전에 Google Play 게임즈 클라이언트가 열립니다. 여러 인스턴스가 실행되지 않도록 게임/런처를 관리해야 합니다.

QueryProductDetails API 요청 한도

QueryProductDetails API에 대한 단일 호출에서 쿼리할 수 있는 최대 제품 수는 50개입니다. 이 한도를 초과하는 경우 요청을 여러 호출로 분할해야 합니다.

첫 번째 Windows App Bundle (WAB)을 업로드한 후 게임이 설치되지 않거나 표시되지 않는 이유는 무엇인가요?

기존 PC 버전이 없는 게임을 온보딩하는 경우('최초 WAB') 시스템에서 관리형 게시 대기 상태로 자동 설정할 수 있습니다. 업데이트할 기존 기준이 없기 때문에 발생합니다. WAB를 완전히 출시하고 게임을 설치할 수 있도록 하려면 Google Play Console로 이동하여 필수 게시 작업 (예: '변경사항 게시' 클릭)을 수동으로 실행해야 합니다.

Google Play 게임즈에서 서드 파티 게임 런처를 실행하는 경우 초기화는 어떻게 처리하나요?

SDK를 런처에 직접 통합할 필요는 없습니다. 하지만 런처가 Google Play 게임즈 클라이언트로부터 수신한 모든 명령줄 인수를 생성된 하위 프로세스 (게임 실행 파일)에 직접 전달해야 합니다. 초기화가 실패하면 (예: kActionRequiredShutdownClientProcess 반환) Google Play 게임이 자동으로 게임을 복구하고 다시 실행할 수 있도록 런처를 포함한 모든 프로세스를 종료해야 합니다. 자세한 내용은 설정 가이드의 5단계를 참고하세요.

사용자가 구매 과정 중에 결제하지 않고 브라우저를 닫으면 타임아웃 오류가 발생해야 하나요?

예, 이는 현재 브라우저 기반 흐름에서 알려진 문제이며 의도된 동작입니다. Google에서는 게임 내에서 결제 흐름을 유지하고 이 타임아웃 불편을 해결하는 원활한 구매 기능 (WebView 기반)을 적극적으로 개발하고 있습니다.

네이티브 PC SDK는 인증 파일 (PEM)에서 멀티바이트 문자를 지원하나요?

예, SDK는 인증을 위해 멀티바이트 문자를 지원합니다.

BillingClient::QueryPurchases 또는 BillingClient::LaunchPurchaseFlow을 호출할 때 어떤 매개변수가 필요한가요?

이 함수는 std::function<void(QueryPurchasesResult)> 서명이 있는 함수 콜백인 QueryPurchasesContinuation를 허용합니다. 콜백은 모든 ProductPurchaseDetails와 함께 결과를 전달합니다. 이 정보는 includes/billing/models.h 파일의 SDK 헤더 파일에서 확인할 수 있습니다.

결과로 생성된 launch_purchase_flow_result에는 ok()code() 함수가 있습니다. ok() 함수는 흐름이 성공했는지 여부를 반환합니다. code() 함수는 사용자 취소 또는 네트워크 오류와 같은 10가지 가능한 오류 사례가 있는 BillingError enum (includes/billing/enums.h)을 반환합니다.

BillingClient::LaunchPurchaseFlow() 호출은 맞춤 주문 번호 전달을 지원하나요?

현재 SDK 설계에서는 자체 페이로드를 전달할 방법이 없습니다. 하지만 obfuscated_account_idobfuscated_profile_id을 원하는 대로 조합하여 제공할 수 있습니다. 둘 다 제공하지 않아도 되고, 하나만 제공해도 되고, 둘 다 제공해도 됩니다.

offer_token 필드는 필수이며 사용자가 결제 흐름에서 구매하려고 하는 구매 혜택을 지정합니다. 현재 Google Play의 각 SKU에는 혜택이 하나만 있습니다 (예: 상품 하나를 10달러에 구매). 향후 Play 결제팀에서 여러 혜택을 지원할 예정입니다.

구매 흐름에 방해가 있을 때 메타데이터의 연결을 보장하려면 구매 대화상자를 실행하고 메타데이터를 사용자의 계정 ID, 구매 중인 SKU 및 현재 타임스탬프와 연결하기 전에 개발자의 백엔드 서버에 저장하세요. 자세한 내용은 구매를 내부 데이터와 연결을 참고하세요.

Play 설치 리퍼러 통합이 작동하나요?

최신 버전의 SDK (25.5.409.0 이상)는 Play 설치 리퍼러 API를 지원합니다. 자세한 내용은 Play 설치 리퍼러 API를 참고하세요.

사용자가 구매하려면 게임마다 별도로 로그인해야 하나요?

Google Play 게임의 포그라운드 계정은 각 게임 세션에 사용되므로 다시 로그인할 필요가 없습니다. 게임 세션이 시작될 때 Google Play 게임즈에서 사용하는 계정은 API 호출이 실행되는 계정입니다. 브라우저에서 구매 흐름을 시작할 때는 게임 세션과 동일한 계정으로 로그인하고 있어야 합니다. 사용자가 다른 계정으로 로그인한 경우 웹 흐름에서 계정을 전환하라는 메시지가 표시됩니다.

OAuth를 사용하는 Google 결제에서 DLL을 사용하는 네이티브 Google 결제로 전환하기 위한 필수 요건은 무엇인가요?

게임은 Google을 사용한 OAuth 로그인으로 로그인한 계정을 계속 관리할 수 있지만 기존 REST 결제 API의 사용을 중지하는 것이 좋습니다. REST 결제 API (OAuth2 로그인 사용)에서 SDK 흐름으로 전환하는 것은 기능 플래그가 지정된 작업일 수 있으므로 게임이 전환되는 동안 두 API가 일정 기간 공존할 수 있습니다.

결제 요청 API (LaunchPurchaseFlow)는 웹브라우저를 통해 처리되나요?

예, 현재는 브라우저를 통해 처리됩니다. Google은 SDK를 통해 게임을 나가지 않고 전체 흐름을 완료할 수 있도록 계획하고 있습니다.

초기화 매개변수를 여러 번 재사용할 수 있나요?

Google Play 게임 클라이언트가 실행 중이고 로그인 정보가 유효한 경우에 가능합니다. 하지만 가이드에 설명된 시나리오와 같이 사용자가 게임을 닫거나 kActionRequiredShutdownClientProcess와 같은 SDK 초기화 실패로 인해 게임이 종료되면 게임에서 실행된 모든 프로세스가 종료되어야 합니다.

HKEY_LOCAL_MACHINE 대신 HKEY_CURRENT_USER 아래의 레지스트리 키를 사용할 수 있나요?

루트 하이브를 기반으로 레지스트리 키를 만들어야 합니다. 목적과 데이터의 특성에 따라 루트 하이브를 HKEY_LOCAL_MACHINE 또는 HKEY_CURRENT_USER로 설정할 수 있습니다. HKEY_LOCAL_MACHINE 하이브는 가이드라인에서 예로 사용됩니다.

게임에서 네이티브 SDK와 기존 결제 시스템을 동시에 지원할 수 있나요?

결제 시스템은 게임 바이너리 버전에 따라 이중 흐름 모델로 작동합니다. 기존 빌드의 사용자는 기존 흐름을 계속 사용하고 새 빌드의 사용자는 SDK 기반 결제로 전환됩니다. 전환 기간에는 두 결제 흐름의 사용자가 공존합니다.

내부 테스트를 위해 WAB를 어떻게 업로드하나요?

Google에서 내부 테스트를 위해 허용 목록 계정을 사용 설정할 수 있도록 Google과 공유합니다. Google에서 목록을 확보한 후 온보딩 프로세스에 포함되도록 합니다.

새 테스터는 어디에 추가하나요?

Google 담당자가 각 PC 프로젝트에 대해 이메일 그룹을 만듭니다. 테스터의 Google 계정을 이 그룹에 추가해야 합니다. 이 이메일 그룹의 회원만 Google Play 게임즈 내에서 테스트 패키지를 다운로드할 수 있습니다.

정식 출시 전에 공식 PC 패키지를 어디에 업로드해야 하나요?

첫 번째 질문에 언급된 위치에 WAB 패키지를 업로드하면 됩니다. 하지만 수동으로 게시할 수는 없습니다. Google 백엔드 직원에게 정확한 UTC 시간 (시간 단위)을 제공해야 합니다. 그러면 Google에서 출시 일정을 구성하고 정시에 게시되도록 합니다.

공식 출시 후 업그레이드 및 유지보수는 어떻게 처리하나요?

후속 업그레이드 및 유지보수는 런처를 통해 구현해야 합니다. Google Play 게임즈 클라이언트는 업데이트 기능을 지원하지 않으므로 런처는 게임과 런처 자체를 모두 업데이트할 수 있어야 합니다.

Google에서 PC 패키지를 검토하기 위한 요구사항은 무엇인가요?

PC 패키지는 멀웨어 검사를 거친 후 검토자가 게임 설치, 성공적인 시작, 제거 프로세스만 테스트합니다.

모든 API를 통합해야 하나요?

다른 API는 필수는 아니지만 추가 이점을 제공합니다. google::play::billing은 인앱 구매 및 디지털 콘텐츠 판매에 필요합니다. google::play::games::recall는 추천 데이터를 추적하여 앱을 다운로드하는 사용자를 가장 많이 유도하는 트래픽 소스를 파악하는 데 필요합니다. google::play::games::integrity는 잠재적으로 위험한 기기와 알 수 없는 에뮬레이터를 감지하여 악의적인 행위자로부터 앱을 보호하는 데 필요합니다.

Google Play 게임 클라이언트를 닫을 때 일부 게임 프로세스는 종료되는데 다른 게임 프로세스는 종료되지 않는 이유는 무엇인가요?

Google은 실행 중인 게임의 하위 프로세스 또는 프로세스를 제어하지 않습니다. 동작은 게임이 Android 에뮬레이션 게임인지 아니면 네이티브 PC 게임인지에 따라 다릅니다. 에뮬레이션된 게임은 자체 환경 내에 설치되므로 동작은 주로 에뮬레이터 초기화 및 종료에 따라 달라집니다.

Google Play 게임즈 제거 기능을 사용해야 하나요 아니면 맞춤 제거 프로그램을 사용해야 하나요?

Google에서는 Google Play 게임즈 제거 기능을 사용하는 것이 좋습니다.