あなたのゲームに Player Statsを追加する



  • この記事は、Google Playゲームサービスに関する記事を和訳したものです。
  • 原文: Adding Player Stats to Your Game
  • 元記事のライセンスは CC-BYで、この和訳記事のライセンスは CC-BYです。
  • 自己責任でご利用ください。
  • 和訳した時期は 2019年7月ころです。

Player Stats APIは、プレイヤーの特定のセグメント、およびプレイヤーのライフサイクルの異なった段階にゲームエクスペリエンスを調整させます。 プレイヤーの進行状況、支出、およびエンゲージに基づいて、それぞれのプレイヤーのセグメントに調整されたエクスペリエンスを構築することができます。 例えば、プレイヤーがサインインしたとき、新しいゲーム内のアイテムを表示しプロモーションするなどによって、少ないアクティブユーザを、あなたのゲームに再エンゲージすることを奨励します。

このガイドでは、ネイティブの C++あるいは Objective-Cアプリケーションにて Player Stats APIを使用する方法を示しています。

Player Statsの基本

プレイヤーのゲーム内アクティビティについてのデータを取得するために、Player Stats APIを使用することができます。 取得することができるプレイヤーのデータのタイプは次のとおりです:

  • Average session length: 分単位のプレイヤーの平均のセッションの長さ。 セッションの長さは、プレイヤーが Google Playゲームサービスにサインインしている時間によって決定されます。
  • Churn probability: プレイヤーが次の日に解約するかどうかの予測で、0(解約の確率が低い)あるいは 1(解約の確率が高い)として与えられます。 解約は、7日間の非アクティブとして定義されます。
  • Days since last played: プレイヤーが最後にプレイしてからのおおよその日数。
  • Number of purchases: プレイヤーのための、おおよそのアプリ内購入数。
  • Number of sessions: プレイヤーの、おおよそのセッション数。 セッションは、プレイヤーが Google Playゲームサービスにサインインする回数によって決定されます。
  • Session percentile: 0から 1の間の小数値(1を含む)として与えられる、プレイヤーのためのおおよそのセッションのパーセンタイル。 この値は、現在のプレイヤーがこのゲームのプレイヤーのベースの残りの部分と比較して、どれくらいのセッションをプレイしているかを示しています。 数字が大きいほど、このプレイヤーがより多くのセッションをプレイしていることを示しています。
  • Spend percentile: 0から 1の間の小数値(1を含む)として与えられる、プレイヤーのおおよその支出のパーセンタイル。 この値は、現在のプレイヤーがこのゲームのプレイヤーのベースの残りの部分と比較して、どのくらい支出しているかを示しています。 数字が大きいほど、このプレイヤーがより多く支出していることを示しています。

C++を用いて現在サインインしているプレイヤーの Player Statsを取得する

// Create the callback for our asynchronous fetch call.  This callback will
// log either an error or the average session length for the currently
// signed-in player.
gpg::StatsManager::FetchForPlayerCallback callback = [](gpg::StatsManager::FetchForPlayerResponse const &response) {
  if (IsError(response.status)) {
    LogE("An error occurred fetching player stats.");
  } else {
  gpg::PlayerStats const & player_stats = response.data;
    if (player_stats.HasAverageSessionLength()) {
      LogI("Average session length: %f", player_stats.AverageSessionLength());
    } else {
      LogW("Currently signed-in player had no associated average session length stats.");
    }
  }
};
// Asynchronously fetch the Player Stats.  When the fetch is finished it
// will call our callback. game_services_ is the std::unique_ptr<GameServices>
// returned by gpg::GameServices::Builder.Create()
game_services_->Stats().FetchForPlayer(callback);

Objective-Cを用いて現在サインインしているプレイヤーの Player Statsを取得する

// Asynchronously fetches the Player Stats and then logs either a
// description of them or an error
[GPGPlayerStats playerStatsWithCompletionHandler:^(GPGPlayerStats *playerStats, NSError *error) {
  if (error) {
    NSLog(@"Error fetching player stats: %@", error);
  } else {
    NSLog(@"Description of stats for the currently signed-in player: %@", playerStats);
  }
}];

Player Statsデータを使用するヒント

Player Stats APIは、あなたに、彼らのエンゲージメントと支出の振る舞いに基づいて様々なタイプを識別させ、彼らのゲームエクスペリエンスを向上させるための適切な戦略を適用させることを簡単にします。

次の表は、幾つかのプレイヤーのセグメントの例と推奨されるエンゲージメント戦略をリストしています:

プレイヤーのセグメント エンゲージメント戦略
高い数のセッションと良い支出のパーセンタイルを伴った頻繁なプレイヤーが、先週あるいはそれ以上プレイしていない。
  • 彼らがプレイに復帰した時に利用可能な、割引あるいは特別なボーナスについての通知を送信します。
  • 印象的な実績を認めるウェルカムバックメッセージを表示し、復帰プレイを奨励するためにデザインされたバッジを与えます。
高くエンゲージされたプレイヤーが低い支出のパーセンタイルにある。
  • 彼らに、あなたのゲームをインストールし参加することを彼らの友人に招くことをインセンティブさせるために、ボーナスを調整します。 このアプローチは、新しいプレイヤーを募集するために、プレイヤーのゲームのデモンストレーションされた楽しみに基づいています。
高く支出しているプレイヤーがピークに達した兆しを見せていて、プレイする頻度が少なくなり始めている。
  • 高い価値、短時間ツール、武器あるいは割引を提供するといった、彼らの興味をフレッシュにさせるためのボーナスを調整します。
  • 次回、プレイヤーがサインインした時に、clan attackのような、彼らをコミュニティ機能に向けるビデオを表示します、それは、より頻繁でより長いエンゲージメントをドライブします。