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

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