ゲームに関するデータ分析のパターン

先述のとおり、ゲーム アーキテクチャはインターネットに接続しクライアントからサーバーに接続することを前提とした作りになってなっているものが多くあります。このため、ゲームの状況を分析し、継続的に改善を行うことは、ゲームを運営する上で重要な要素となってきています。ゲーム クライアントのログやサーバー処理のログを収集し、集約、分析することでその結果を用いて、ゲームの改善などにフィードバックさせることができるようになります。

何を分析するかについては、例えば以下のようなユースケースが考えられます

  • 離脱ユーザーの予測

  • ゲーム内アイテムなどのレコメンド

  • ユーザー セグメンテーションによる広告配信の最適化

  • ゲームプレイ履歴による悪質な行動を取っているユーザーの検知

これらの分析をすることでユーザーの体験を向上させる施策につなげたり、売上につなげるような施策を検討して実施することができるようになります

モバイルゲーム分析プラットフォームの作成

解決する課題・使い所

モバイルゲームでは、膨大な量のプレイヤー テレメトリー データとゲームイベント ログが生成されます。このデータを使用して前述したユースケースに活用することが可能になります。

モバイルゲームのデータを解析するための 2 つのアーキテクチャ パターンが考えられます。

  • ストリーミング処理: ストリーミング処理パターンを使用して個々のイベントを処理します

  • 一括処理: バッチ処理パターンを使用して集約されたイベントを処理します


アーキテクチャ

ストリーミング処理

モバイルゲームのプレイヤー テレメトリーを収集するために Firebase 向け Google アナリティクスや Google アナリティクスが役に立ちます。以下のアーキテクチャを用いることでニア リアルタイム処理としてのデータフロー アーキテクチャが作成できます

  • アプリケーションおよびウェブデータを データ ウェアハウス に収集するパターン( Firebase 向け Google アナリティクス )

一括処理

もう一つのパターンとして、リアルタイムに処理する必要のない大規模なデータを定期的に処理するパターンがあります。

ゲームサーバーからのログを一度 Google Cloud Storage に貯め、そこから定期実行で Cloud Dataflow で BigQuery にデータを転送します。Google Cloud Storage (以下 GCS)にファイルの形式でデータを配置することで、バックアップも兼ねることができます。

では、 GCS にはどうやってファイルを配置するのでしょうか。いくつかの方法があります

  • ログファイルを gsutil で転送する

    • オンプレミス環境、他クラウドでログをサーバー上に貯めている場合に有効。

  • Storage Transfer Service を利用する

    • 他クラウド プロバイダでゲームサーバーを運用している場合、そのプロバイダのストレージ サービスにログを出力しているケースが多いと思います。例えば AWS の S3 にログを貯めている場合は Storage Transfer Service を利用して GCS にファイルを転送することができます

  • 最初から GCS にデータがある場合

    • Google Play Store からのデータ などは Google Play Developer アカウントに基づいて、Cloud Storage バケットで入手できます。このような場合、別のバケットにデータを移動する理由がなければ、エクスポート先の元のバケットにデータを保持できます


利点

  • マネージド サービスを活用することで、コーディング、サーバーの管理を最小限にすることで分析に集中できる。

  • アプリケーションがオンプレや他のクラウドで動いている場合でもデータ パイプラインを作成しておくことで柔軟にデータを収集することができる。


注意事項

  • どのような分析を行いたいかによってあらかじめメトリクスとなるログを考慮しておく必要があります。


このパターンで作成された事例


関係するデザインパターン

  • アプリケーションおよびウェブデータを データ ウェアハウス に収集するパターン( Firebase 向け Google アナリティクス )


参照文献