Version: 5.4
高度なインテグレーション (SDK)
マネタイゼーション

カスタムイベント

ゲーム ユーザーがゲーム内で行う特定のアクションなら、どんなものでもカスタムイベントにすることができます。カスタムイベントにすると、Unity Analytics が自動では追跡しないプレイヤーの行動、例えば、レベルの達成、シーンの変更、ストア入店、ゲームオブジェクトとのインタラクションなど、を追跡することができます。各カスタムイベントにはそれぞれのパラメーターがあります。イベントに独自のパラメーターを設定することにより、イベントが発生したときに収集されたデータをフィルターすることができます。カスタムイベントの Visualization ツールは Analytics Dashboard にあり、Data Explorer、Funnel Analyzer、Segment Builder などが含まれています。

// Unity Analytics SDK 名前空間を参照
using UnityEngine.Cloud.Analytics;

// プレイヤーがカスタムイベントをトリガするときはいつでも、これを呼び出します 
UnityAnalytics.CustomEvent(string customEventName,
IDictionary<string, object> eventData);
UnityAnalytics.CustomEvent Input Parameters
Name Type Description
customEventName string Name of custom event. Name cannot include the prefix “unity.” — This is a reserved keyword.
eventData dictionary Additional parameters sent to Unity Analytics at the time the custom event was triggered. eventData key cannot include the prefix “unity.” — This is a reserved keyword.

カスタムイベントに関する注意事項。

  • 一貫性を保つよう、気を付けてください。イベントデータの各パラメーターでは、一貫したデータタイプを維持してください。 例えば、レベルパラメーターに数字を入力したのに、次に文字列に変えるということをしないでください。そのようなことを行うと、エラーのような動作を招き、データの分析が難しくなります。
    • Boolean (true/false)
    • String (文字列)
    • Number (int、float など)
  • カスタムイベントごとに持てるパラメーターの数はデフォルトで 10 個までに制限されています。
    • パラメーターの数が上限を超えた場合は、戻り値として AnalyticsResult.TooManyItems が呼び出されます。
  • dictionary のコンテンツでは、デフォルトで 500 文字 までに制限されています。
    • 500 文字を超えた場合、戻り値として AnalyticsResult.SizeLimitReached が呼び出されます。
  • 1 時間毎、ユーザーごとに、使用できるカスタムイベントは、デフォルトで 100 に制限されています。
    • 1 時間当たりの呼び出しが制限値の 100 イベントを超えた場合、戻り値として AnalyticsResult.TooManyRequests が呼び出されます。
  • Analytics のシステムで、パラメーターがどのように解析されるか示します。
    • すべての number、int、float は、string 型(文字列)として送られた場合であっても、数字として解析されます。
    • 「分類できる」のは、string と boolean のみになります。
    • よって、必要に応じて合計や平均を求めたい場合は、数値(例:51、または、’51’)として集計しておきます。レベルやオプションなどとして分類する場合は、必ず文字列 (例: ‘Level51’) として解析できるようにしてください。

以下の例では、ゲームが終了したときにユーザーがインベントリ内に何を持っていたのかを調べようとしています。

// Collections Generic 名前空間を参照
  using System.Collections.Generic;

  int totalPotions = 5;
  int totalCoins = 100;
  string weaponID = "Weapon_102";
  UnityAnalytics.CustomEvent("gameOver", new Dictionary<string, object>
  {
    { "potions", totalPotions },
    { "coins", totalCoins },
    { "activeWeapon", weaponID }
  });

ゲームを実行

テストとして、サーバーにカスタムイベントのデータを送信し、実行中にカスタムイベントの処理が実際に行われるかを確認します。もし成功したのであれば、テストデータは下記のテーブルのように表示されます。

インテグレーションが成功すると、以下の表にテストデータが表示されます。

検証

高度なインテグレーション (SDK)
マネタイゼーション