ゲームでのGoogleアナリティクスの使用

ゲームSUPERVERSEの開発中に、プレイヤーがゲームと対話する方法を追跡し、ハードウェア、画面解像度、オペレーティングシステムなどに関する情報を取得するツールが必要でした。 このデータは、デバッグ段階で役立つだけでなく、ゲームでのユーザーの行動の特徴を調べるのにも役立ちます。







そのため、次の3つの可能なオプションのいずれかを選択する必要がありました。



•ゲーム、クライアント、およびサーバー側でデータを追跡するための独自のソリューションを開発します。

•サードパーティソリューション( GameAnalyticsなど )を選択します。

•実績のあるGoogle Analyticsサービスを使用します。



最初の2つのオプションの実装にはより多くの時間とお金がかかると考えたため、ゲームイベントの追跡とレポートの作成のためのツールとしてGoogleアナリティクスに立ち寄りました。







最近、ウェブサイトやモバイルアプリのデベロッパーがGoogleアナリティクスを積極的に使用しています。 しかし、このサービスは、iOSやAndroidのアプリケーションのようにプロジェクトに完全に統合できるSDKの形の便利なソリューションではないため、コンピューターソフトウェアの作成者は特に熱心ではありません。



基本設定



ゲームイベントの追跡を開始するには、いくつかの簡単な手順を実行します。



•Google Analyticsアカウントをまだ作成していない場合は作成します。

•新しい追跡リソースを設定します(この場合、UA-12345678-2のような識別子を受け取ります)。

Measurement Protocolの使用を開始して、HTTPプロトコル経由でGoogle Analyticsにヒットを送信します。



実際、それがすべてです。

次に、コンピューターゲームでのGoogleアナリティクスサービスの使用方法に関する段階的なガイドがあります。



データ転送



データは、GETおよびPOSTリクエストを介してGoogleアナリティクスで交換されます。 このサービスはHTTPSを介した安全なデータ転送をサポートしていますが、これには通常のHTTPを使用できます。 この記事では、簡単にするために、安全でないHTTPプロトコルを介してPOSTリクエストをモデルとして送信します。 ゲーム内のイベントを監視するために、データ転送に完全に対応するだけでなく、他の問題の解決にも適したlibCURLライブラリを使用しました 。 同じ成功で、ポート80でTCPソケットを開くことにより、HTTPプロトコルを使用してPOST要求を送信できます。



void Send2GoogleAnalytics(char * postdata、char * useragent)

{

CURL * curl_handle = curl_easy_init();

if(curl_handle){

curl_easy_setopt(curl_handle、CURLOPT_URL、 " www.google-analytics.com/collect ";);

curl_easy_setopt(curl_handle、CURLOPT_USERAGENT、useragent);

curl_easy_setopt(curl_handle、CURLOPT_POSTFIELDS、postdata);



curl_easy_perform(curl_handle);



curl_easy_cleanup(curl_handle);

}

}



ポストデータ



postdata変数は、Googleアナリティクスに送信するすべての情報を含む文字列を指す必要があります。



統計データを送信するためのプロトコルの各リクエストには、次の値を含める必要があります。







*さらにAPIが変更される場合があります。 統計転送プロトコルのリファレンスドキュメントの変更にご注目ください。



合計で、postdataパラメーターの説明は次のようになります。



postdata="v=1&tid=UA-123456-1&cid=UUID&t=pageview&dp=%2FStart%20screen";









ユーザー認証(UUID)



Googleアナリティクスがデータが特定のユーザーからのものであることを判断するには、各HTTPリクエストでクライアント識別子を指定する必要があります。 このパラメーターは、特定のユーザーに割り当てられるユニバーサル一意識別子(uuid)です。 任意のuuidを作成したら、次回のゲーム起動時に使用するために保存する必要があります。 したがって、しばらくの間ゲームに参加しなかった場合でも、Googleアナリティクスは一意のユーザーを識別できます。



ゲームのバージョンとオペレーティングシステム(useragent)



Googleアナリティクスは、ブラウザのタイプ/バージョンとオペレーティングシステムの情報を追跡します。 この関数を使用して、ゲームのバージョンとそれが実行されているOSに関する情報を取得することもできます。 この場合、それらはユーザーエージェント行に登録されます、例えば:



Superverse/0.3 (Windows NT 6.2)









Windowsのバージョン番号は、GetVersionEx()関数を呼び出すことで確認できます。 たとえば、「Windows NT 6.2」はWindows 8.0を意味します。



追跡データ



主なパラメータを設定したら、関心のある統計の追跡を開始できます。 呼び出しの最も基本的な2つのタイプは、ページビュー(ページビュー)とイベント(イベント)ですが、他のオプションも可能です:トランザクション(トランザクション)、タイミング(時間)、ソーシャル(社会的相互作用)、例外(例外)、アイテム(製品)。 リファレンスガイドで、すべての種類の通話の詳細な説明を見つけることができます。



セッション



プレーヤーがいつゲームに参加し、どのくらいの時間を費やしたかを知るには、セッションデータを追跡する必要があります。 これを行うには、次のコマンドをpostdata行に追加します。



sc=start



sc=end









セッショントラッキングは、プレーヤーが特定の試合またはゲームレベルで費やした時間をカウントするためにも使用できます。



データ送信の頻度



Googleは、収集されたデータがサーバーに返送される頻度を決定します。 原則として、ゲームの統計は2秒に1回しか更新されません。 また、1つのセッションに含まれるヒット数は500を超えませんが、通常はゲーム内のイベントを監視するにはこれで十分です。



おわりに



イベントトラッキングは、ゲームの他のコンポーネントに影響を与えない単純な非同期タスクです。

データを追跡する必要がある場合は常に、ゲームのメインストリームからのリクエストで満たされる別のバッファを作成することをお勧めします。 さらに、バッファからのリクエストを処理してGoogleアナリティクスに送信するバックグラウンドスレッドが必要です。 このサービスの設定により、送信頻度がGoogleの制限と割り当てに違反しないことが保証されます。



All Articles