このドキュメントでは、PC 版 Google Play Games の SDK と公開に関するよくある質問に回答します。
収益化
新しい課金キーまたはライセンス キーを追加した後、購入フローがエラーコード 6 で失敗するのはなぜですか?
Google Play Console で新しく生成されたライセンス キーは、Google Play の内部キャッシュがすべての配信環境で同期されるまで、コマース バックエンドで数時間のキャッシュと伝播の遅延が発生します。 ゲーム クライアントが商品詳細を正常にクエリできる場合でも、同期が完了するまで購入リクエストはエラーコード 6 で失敗します。ライセンス キーをアップロードまたは更新してから、購入をテストするまでに数時間かかります。
バックエンド サーバーなしで購入フローを使用できますか?
セキュリティの観点から、バックエンド サーバーを使用することをおすすめします。
詳細については、バックエンド サーバーなしで処理するをご覧ください。
PC 版 Google Play Games SDK を統合した後も、既存の API ベースの決済システムを使用できますか?
すべての支払いは、Google Play 請求サービスを使用して PC 版 Google Play Games SDK で処理する必要があります。同じゲームで既存の API ベースのお支払い方法を使用することはできません。
デベロッパー モードで購入を処理するにはどうすればよいですか?
デベロッパー モードで購入を処理するには 3 分以内に行う必要があります。それ以外の場合、購入は払い戻されます。
定期的なお支払いや定期購入はサポートされていますか?
当面はサポートされていませんが、今後のロードマップに追加するために、具体的なユースケースをご提供いただければ幸いです。
購入呼び出しの課金エラーとは何ですか?
BillingError は、支払い結果のレスポンスです。LaunchPurchaseFlow はブロックせずにすぐに返されますが、完了したタイミングを把握して結果を取得するには、コールバックをリッスンする必要があります。
クライアントサイドの購入の確認を使用するにはどうすればよいですか?
サーバーサイドの購入とその検証プロセスを使用することをおすすめします。 クライアント アプリから購入を処理するには、ゲームを許可リストに登録する必要があります。ゲームでアクセスが必要な場合は、Google パートナーにお問い合わせください。 詳細については、バックエンド サーバーなしで処理するをご覧ください。
商品詳細をクエリする際の API の上限は何ですか?
QueryProductDetailsAPI の 1 回の呼び出しでクエリできるプロダクトの最大数は 50 です。この上限を超える場合は、リクエストを複数の呼び出しに分割する必要があります。Billing Client で Query Purchases または Launch Purchase Flow を呼び出す際に必要なパラメータは何ですか?
この関数は、
QueryPurchasesContinuationを受け入れます。これは、std::function<void(QueryPurchasesResult)>シグネチャを持つ関数 コールバックです。コールバックは、すべてのProductPurchaseDetailsを含む結果を返します。 この情報は、includes/billing/models.hファイルの SDK ヘッダー ファイルで確認できます。結果の
launch_purchase_flow_resultには、ok()関数とcode()関数があります。ok()関数は、フローが成功したかどうかを返します。code()関数は、BillingError列挙型(includes/billing/enums.h)を返します。これには、ユーザーがキャンセルした場合やネットワーク エラーなど、10 個のエラーケースがあります。Billing Client の Launch Purchase Flow でカスタムの並べ替えはサポートされていますか?
現在の SDK 設計では、独自のペイロードを渡す方法はありません。 ただし、
obfuscated_account_idとobfuscated_profile_idの任意の組み合わせを指定できます。指定しない、1 つだけ指定する、両方指定する、のいずれかを選択できます。offer_tokenフィールドは必須で、購入手続きのフローでユーザーが購入しようとしている購入オファーを指定します。現時点では、Google Play の各 SKU には 1 つのオファー(1 つのアイテムを 10 ドルで購入するなど)があります。今後、Play 請求チームは複数のオファーをサポートする予定です。購入フローが中断されてもメタデータが関連付けられるようにするために、先にバックエンド サーバーにメタデータを保存し、その後で購入ダイアログを起動して、ユーザーのアカウント ID、購入しようとしている SKU、現在のタイムスタンプにメタデータを関連付けます。詳細については、 購入を内部データに関連付けるをご覧ください。
OAuth を使用した Google 請求サービスから DLL ベースの Google 請求サービスに切り替えるための前提条件は何ですか?
ゲームは引き続き Google で OAuth ログインを使用してログイン済みアカウントを管理できますが、従来の REST 請求 API の使用を停止することをおすすめします。REST 請求 API(OAuth2 ログインを使用)から SDK フローへの切り替えは、機能フラグ付きのオペレーションにすることができます。これにより、ゲームの切り替え中に両方を共存させることができます。
Launch Purchase Flow API 呼び出しはウェブブラウザを介して処理されますか?
いいえ。購入フローは、ゲーム クライアントを離れることなく、シームレスな WebView オーバーレイを使用してゲーム内で完全に完了するようになりました。
購入するには、ゲームごとに個別にログインする必要がありますか?
Google Play Games のフォアグラウンド アカウントは各ゲーム セッションで使用されるため、再度ログインする必要はありません。ゲーム セッションの開始時に Google Play Games で使用するアカウントは、API 呼び出しが発行されるアカウントです。購入フローではこのアカウントが自動的に使用されます。
ゲームは PC SDK と従来の決済システムの両方を同時にサポートできますか?
決済システムは、ゲームのバイナリ バージョンに応じてデュアルフロー モデルで動作します。従来のビルドを使用しているユーザーは既存のフローを継続し、新しいビルドを使用しているユーザーは SDK ベースの支払いに移行します。移行期間中は、両方の支払いフローのユーザーが共存します。
Windows App Bundle
サードパーティ ランチャーを使用して WAB を送信する場合、審査にはゲーム パッケージが必要ですか?
インストーラを送信するだけで、ゲーム パッケージ全体を送信する必要はありません。審査担当者はインストーラを使用してゲーム パッケージをダウンロードできます。
WAB ファイルサイズに制限はありますか?
WAB のファイルサイズは最大 10 GB までアップロードできます。
WAB をアップロードした後、ゲームがインストールされない、または表示されないのはなぜですか?
既存の PC 版がないゲーム(「初回 WAB」)をオンボーディングする場合、システムによって管理対象公開の保留状態に自動的に配置されることがあります。これは、更新する既存のベースラインがないために発生します。 WAB を完全にリリースしてゲームをインストールできるようにするには、 Google Play Console に移動して、 必要な公開操作を手動で実行する必要があります([変更を公開] をクリックするなど)。
内部テスト用に WAB をアップロードするにはどうすればよいですか?
許可リストのアカウントを Google と共有して、Google が内部テスト用に有効にできるようにします。Google がリストを取得すると、オンボーディング プロセスに含まれるようになります。
WAB パッケージはどこにアップロードすればよいですか?
WAB パッケージは、最初の質問で説明した場所にアップロードできます。ただし、手動で公開することはできません。Google のバックエンド スタッフに正確な UTC 時間(時間単位)を提供する必要があります。Google は公開スケジュールを構成し、予定どおりに公開されるようにします。
PC SDK
従来の API と PC 版 Google Play Games SDK の違いは何ですか?
- 従来の API では、課金機能のみが提供されます。
- PC SDK は、Google Desktop Service(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 Games サービス アカウントは自動的に同期されますか?
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>コマンドライン引数を使用して、インストーラに渡します。これを有効にするには、acceptsCommandLineArguments="true"をplay_publishing_config.xmlで設定する必要があります。インストーラは、このトークンを抽出してゲームの起動に使用します。トークンの生成に失敗した場合、GPG はトークンなしでインストーラを起動します(フォールバック)。
初期化
Google Play Games アプリを使用してゲームを開始すると、Google アカウントの詳細が同期されますか?
Google Play Games クライアントからゲームを起動すると、アカウントが自動的に同期されるため、Google ログイン プロセスで再度ログインする必要はありません。
初期化パラメータを複数回再利用できますか?
Google Play Games クライアントが実行されていて、ログイン情報が有効であれば、可能です。ただし、ガイドで説明されているシナリオでは、ユーザーがゲームを終了したとき、または
kActionRequiredShutdownClientProcessなどの SDK の初期化エラーによりゲームが終了したときに、ゲームによって起動されたすべてのプロセスを終了する必要があります。ゲームを直接開くショートカットを作成する方法はありますか?
ゲームを直接開くには、次の URI を使用します。
googleplaygames://launch/?pid=2&id=com.company.gamenameこの URI は、PC 版 Google Play Games クライアントが開いているかどうかを検出します。クライアントが開いていない場合は、ゲームまたはランチャーが実行される前に Google Play Games クライアントが開きます。複数のインスタンスが実行されないように、ゲームまたはランチャーを管理する必要があります。
SDK を使用せずに PC 版 Google Play Games のインストールを確認する方法はありますか?
SDK を統合せずに PC 版 Google Play Games のインストール ステータスを確認するには、次の Windows レジストリ キーが存在するかどうかを確認します。
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Servicesこのキーが存在する場合は、PC でゲームを実行するために必要な Google Play Games サービスがマシンにインストールされていることを示します。キーが ない場合は、PC 版 Google Play Games のインストール ページにユーザーを誘導して、 クライアントをダウンロードしてインストールする必要があります。
テスト
モバイルと同様のオープンテスト環境またはクローズド テスト環境はありますか?
専用のエンドツーエンド サンドボックスは利用できませんが、デベロッパー向けのプロダクションのようなテスト環境の必要性は認識しています。より堅牢なソリューションが近日中に提供される予定です。
新しいテスターを追加するにはどうすればよいですか?
Google の担当者は、PC プロジェクトごとにメールグループを作成します。テスターの Google アカウントを追加する必要があります。このメールグループのメンバーのみが、Google Play Games 内でテスト パッケージをダウンロードできます。
その他
VPN を使用できますか?
PC 版 Google Play Games がサポートされていない地域でゲームをテストする必要があるデベロッパーは、VPN を使用して サポートされている地域から IP アドレスを取得することをおすすめします。
VPN で TUN モード を有効にしてください。TUN モードを有効にしてファイアウォールを構成する方法については、VPN プロバイダの操作マニュアルをご覧ください。
TUN モードを有効にしたら、PC 版 Google Play Games と エミュレータをテスト用にインストールします。
Unity または UE エディタで PC 版 Google Play Games の開発を開始するにはどうすればよいですか?
- デベロッパー モードを有効にして、テストに進みます。
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 Games のアンインストール機能を使用する必要がありますか、それともカスタム アンインストーラを使用する必要がありますか?
Google では、Google Play Games のアンインストール機能を使用することをおすすめします。
その他のサポート
このよくある質問で説明されていないサポートが必要な場合は、 google-play-games-pc@google.com までお問い合わせください。