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

プロフィールの作成
プレーヤーがプラットフォームを利用するには、Play ゲームサービス プロフィールが必要です。ゲームを開始したときに 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 ゲームサービス v2 SDK を使用する場合、追加の OAuth スコープをリクエストできます。追加の OAuth スコープが必要な場合は、requestServerSideAccess を呼び出すことをおすすめします。詳しくは、サーバー認証コードを取得するまたはサーバー認証コードを取得するをご覧ください。
理想的な認証フローのユーザー エクスペリエンスに関するガイドライン
次のガイドラインでは、PGS v2 統合で推奨される認証フローについて説明します。新規ユーザー、既存ユーザー、リピーター、ゲストモードのシナリオをカバーします。
新規プレーヤー
このフローは、ゲームのプレイ履歴がないデバイスでユーザーが初めてゲームを起動する場合に適用されます。
- 起動時に、PGS SDK が初期化され、ユーザーのプラットフォーム ID(PGS プレーヤー ID)が認証されます。
- このバックグラウンド ハンドシェイクの後、ゲームは IGA 作成オプション([新しいアカウントを作成]、[Google でログイン]、その他のソーシャル ログイン方法など)をプレーヤーに表示します。
- プレーヤーが IGA を作成または選択すると、ゲームはこのアカウントをバックエンドで選択したプライマリ ID にバインドします。
- また、ゲームはこの選択された IGA を PGS プレーヤー ID にバインドし、シームレスな復元のために最後にプレイした IGA としてマークします。
アクティブなセッションがあるプレーヤー
このシナリオでは、プレーヤーがアクティブなセッションがすでに存在するデバイスでゲームを起動する場合について説明します。目標は、シームレスなエントリー エクスペリエンスを提供することです。
- プレーヤーがアプリを起動すると、PGS はバックグラウンドでサイレント認証を行い、実績やその他の Play ゲーム機能に対する進捗状況を追跡するためのプレーヤー 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 にバインドします。競合の解決について詳しくは、ゲスト アカウントをご覧ください。