ゲームを Google Play Games サービス(PGS)と統合する最初の手順は、プラットフォーム認証の実装です。実績、リーダーボード、イベントなどの他のすべての機能にアクセスするには、この手順が必要です。
Play Games サービス SDK はゲームの起動時にプラットフォーム認証を自動的に実行するため、PGS v2 SDK をゲームに統合し、推奨される認証フローを実装する必要があります。これにより、Google Play Games Level Up のユーザー エクスペリエンスに関するガイドラインを実装して満たすことができます。
認証のコンセプト
Play Games サービス v2 では、「ログイン」のコンセプトが、プラットフォーム認証 とゲーム内認証 の 2 つの異なるレイヤに分離されています。
プラットフォーム認証
Play Games サービスは、プラットフォーム エンゲージメント レイヤを提供します。ゲーマー プロフィールを使用して、プレーヤーと Google Play Games エコシステムの関係を管理し、実績、リーダーボード、クエストなどの機能にアクセスします。プラットフォーム認証には、次のような主な特徴があります。
- サイレントで自動: 認証は、ゲームの起動時にバックグラウンドで自動的に行われます。Play Games サービスには、手動の [ログイン] ボタンは必要ありません。
- プレーヤー ID: プラットフォーム認証が成功すると、Play Games サービスは安定したプレーヤー ID を提供します。この ID は、同じゲームではデバイス間で一貫しています。この ID は、主に実績の進捗状況などのプラットフォーム機能をトラッキングするために使用します。
- 分離: Play Games サービスをゲームのプライマリ ID システムとして使用して、プレーヤーのゲーム内アカウント(IGA)、ゲームの進行状況、インベントリを管理することはできません。Play Games サービスは、永続的なプラットフォーム ID として機能します。
プレーヤー ID
プレーヤー ID は、Play Games サービスのプレーヤー アカウントの識別子です。ゲームは、Play Games サービスの認証を使用してゲームにログインしたプレーヤーのプレーヤー ID を取得できます。ゲーム クライアントの統合、ゲームサーバーの統合、クラウド保存サービスは、この ID を使用して Play Games サービスからプレーヤー データに安全にアクセスできます。
ユーザーが複数のデバイスでゲームをプレイする場合、プレーヤー ID は変わりません。ただし、ゲーム間で常に一貫しているわけではありません。 詳しくは、次世代のプレーヤー ID をご覧ください。
ゲーム内認証
ゲーム内アカウント(IGA)は、ゲーム内のプレーヤーの進行状況、インベントリ、通貨をバインドする ID システムです。
- プライマリ ID: 独自のバックエンド、Google でログイン(SiWG)、その他のプロバイダをプライマリ ログイン方法として使用できます。
- 独立性: プレーヤーは、特定の IGA(ゲスト アカウントや特定の SiWG アカウントなど)にログインしたまま、Play ゲームサービス(プラットフォーム ID)にログインして実績を獲得できます。
- 複数の IGA の管理: Play Games サービスはプラットフォーム認証のみを処理します。ゲームは、プレーヤーの IGA へのプライマリ認証を管理します。つまり、プレーヤーが IGA を切り替えるためのゲームの既存のフローに変更はありません。プレーヤーがアカウントを切り替えても、PGS を介して Play Games プラットフォームへの認証は維持され、実績やその他の PGS 機能に関連するデータは、永続的なプレーヤー ID に対して引き続き送信されます。
SiWG によるクロスプラットフォームの継続性
プレーヤーが Android、iOS、ウェブで進行状況を引き継げるようにするには、Google でログイン をプライマリ ゲーム内認証方法として使用します。次の点を考慮してください。
- Google でログインボタン: PGS v1 では、[Google Play] ボタンでプラットフォームとゲームの両方のログインを処理することがよくありました。v2 では、これらは別々のプロセスです。 プレーヤーが認証して IGA にアクセスできるように、標準の [Google でログイン] ボタンを実装します。
- Google ログイン SDK:
- Android と iOS の両方で、標準の Google ログイン SDK を使用して、プレーヤーを IGA に認証します。
- Google Open ID をプレーヤーのゲーム内アカウントのプライマリ ID として使用します。
- Play ゲームサービスプレーヤー ID を使用して、実績などの Play Games 機能でのプレーヤーの進捗状況を報告します。
推奨される統合
ゲームを Play Games サービスと統合するには、次の推奨手順に沿って操作します。
初期化と認証
ゲームを初期化して認証するには、次の手順が必要です。
起動時に Play Games サービス v2 SDK を初期化して、プラットフォーム認証を実装します。詳しくは、 Android ゲームのプラットフォーム認証をご覧ください。 実績やリーダーボードなどの Play Games サービス機能にアクセスするには、この手順が必要です。
認証は、ゲームの起動時にサイレント バックグラウンド プロセスとして実行されます。既存の Play Games サービス ユーザーには、認証が成功するとウェルカム メッセージが表示されます。Play Games サービス プロフィールがないユーザーには、SDK の初期化時に プロフィールを作成するよう求められます。

プロフィールの作成
プレーヤーがプラットフォームを利用するには、Play Games サービス プロフィールが必要です。ゲームを開始したときに、Play ゲームサービス プロフィールがないプレーヤーもいます。これらのプレーヤーには、プロフィールを作成するよう求められます。 次のいずれかのオプションを選択して、ユーザーに適したエクスペリエンスを決定できます。
自動トリガーされるプロフィール作成プロンプト
Play Games サービス プロフィールがない状態でゲームを起動すると、デフォルトで自動トリガーされるプロフィール作成プロンプトが自動的に表示されます。
自動トリガーされるプロフィール作成プロンプトを停止する
マニフェスト ファイルを構成して自動トリガーされるプロンプトを防止することで、起動時のプロフィール プロンプトを無効にできます。これにより、Play ゲームサービス プロフィールがないユーザーは、Play ゲームサービス プロフィールを作成するよう求められることなく、ゲームの読み込みを続行できます。
ユーザーは任意の ID プロバイダでログインできますが、Play Games プラットフォーム認証で認証するよう促すために、プロフィール作成プロンプトを表示する必要があります。このプロンプトは必要に応じて表示しますが、実績やリーダーボードなどの機能でユーザーが大幅に進捗する前に表示するようにしてください。
次の推奨タイミングでプロフィール プロンプトをトリガーすることを検討してください。
- チュートリアルを完了した後。
- 報酬のタイミング(試合に勝つ、レアアイテムを集める、マイルストーンに到達するなど)。
- 2 回目のセッションを開始するとき。
詳しくは、自動トリガーされるプロフィール作成を防止する(Java) と自動トリガーされるプロフィール作成を防止する(Unity)をご覧ください。
ゲーム内認証
プラットフォーム認証が正常に実行されたら、デベロッパーは、現在のゲームの状態に応じて、プレーヤーが IGA にアクセスできるように次の手順を実装する必要があります。
- デバイスにアクティブなゲーム セッションが存在する場合は、プレーヤーが現在のセッションを再開できるようにします。
- アクティブなゲーム セッションがない場合:
- 最後にプレイした IGA が PGS プレーヤー ID に関連付けられているシームレスな復元 シナリオの場合は、関連付けられた IGA を自動的に復元します。
- それ以外の場合は、アプリケーションの指定されたログイン画面またはアカウント作成画面をプレーヤーに表示します。プレーヤーは、希望する認証方法を選択して、既存の IGA を確立またはログインできます。
OAuth スコープ
Play ゲームサービスは
OAuth システム
を使用して、プレーヤーがゲームからアカウントにアクセスできるようにします。Play ゲームサービスにはゲームに固有のスコープ(games-lite)があり、ゲームが保存済みゲーム機能を使用している場合は、別のスコープ(drive.appdata)に依存します。保存済みゲーム機能では、ユーザーの Google ドライブ アカウントにアクセスできます。このアカウントには、ゲームのデータが保存されています。
Play Games サービス v2 SDK を使用する場合、追加の
OAuth スコープをリクエストできます。追加の OAuth スコープが必要な場合は、requestServerSideAccess を呼び出すことをおすすめします。
詳しくは、
サーバー認証コードを取得するまたはサーバー認証コードを取得するをご覧ください。
理想的な認証フローのユーザー エクスペリエンスに関するガイドライン
次のガイドラインでは、PGS v2 統合による推奨される認証フローについて説明します。新規ユーザー、既存ユーザー、復帰ユーザー、ゲストモードのシナリオについて説明します。
新規プレーヤー
このフローは、ゲームのプレイ履歴がないデバイスでゲームを初めて起動するユーザーに適用されます。
- 起動時に、PGS SDK が初期化され、ユーザーのプラットフォーム ID(PGS プレーヤー ID)が認証されます。
- このバックグラウンド ハンドシェイクの後、ゲームはプレーヤーに IGA 作成オプション([新しいアカウントを作成]、[Google でログイン]、その他のソーシャル ログイン方法など)を表示します。
- プレーヤーが IGA を作成または選択すると、ゲームはこのアカウントをバックエンドで選択したプライマリ ID にバインドします。
- また、ゲームはこの選択した IGA を PGS プレーヤー ID にバインドし、 シームレスな復元のために最後にプレイした IGA としてマークします。
アクティブなセッションがあるプレーヤー
このシナリオでは、すでにアクティブなセッションがあるデバイスでゲームを起動するプレーヤーについて説明します。目標は、シームレスなエントリー エクスペリエンスを提供することです。
- プレーヤーがアプリを起動すると、PGS はバックグラウンドでサイレントに認証を行い、実績やその他の Play Games 機能に対する進捗状況をトラッキングするためのプレーヤー ID を提供します。
- 同時に、該当する場合は、ゲームはログイン画面をスキップし、プレーヤーをアクティブな IGA セッションまたはプレーヤー ID に関連付けられた最後にプレイした IGA にすぐにログインさせ、すぐにゲームプレイを再開できるようにします。
アカウントを切り替えるプレーヤー
このフローは、アクティブなセッションがあるプレーヤーがゲームの設定に移動してアカウントを切り替えるときに発生します。 たとえば、メイン アカウントからログアウトして別のアカウントを使用する場合などです。
- プレーヤーは現在の IGA からログアウトしますが、PGS プラットフォーム接続はアクティブなままです。
- プレーヤーが別の IGA でログインすると、ゲームはこの新しいアカウントを現在の PGS プレーヤー ID に、シームレスな復元のためだけに最後にプレイした IGA としてバインドします。
復帰プレーヤーのシームレスな復元
このシナリオは、プレーヤーが非アクティブ期間の後、再インストール後、または完全に新しいデバイスでゲームを起動する場合に適用されます。ゲームでは、 シームレスな復元を実装することをおすすめします。
- 起動時に、PGS はユーザーを認証し、PGS プレーヤー ID をゲームに提供します。
- ゲームはバックエンド(または Recall API を使用している場合は取得したリコール トークン)をチェックして、最後にプレイした IGA がこの PGS ID にすでに リンクされているかどうかを確認します。
- リンクが見つかった場合、ゲームはプレーヤーの進行状況を自動的に復元してログインさせ、手動ログイン画面を完全にスキップします。
- それ以外の場合、ゲームはプレーヤーにログイン画面を表示します。
- プレーヤーはログイン方法を選択して IGA にログインします。
- 次に、ゲームはこの IGA を PGS プレーヤー ID に、シームレスな復元のために最後にプレイした IGA としてバインドします。
ゲストモード
プレーヤーは、ローカルのゲスト アカウントを使用してゲームを起動してプレイできます。 Play Games サービスは、バックグラウンドでプレーヤーを認証します。プレーヤーが [進行状況を保存] を選択すると、ゲームはゲスト セッションを 永続的な IGA に変換し、プレーヤー ID にバインドします。競合の解決について詳しくは、ゲスト アカウントをご覧ください。