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

カスタムイベント

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

// Reference the Unity Analytics SDK namespace
using UnityEngine.Cloud.Analytics;

//  Use this call for wherever a player triggers a custom event
UnityAnalytics.CustomEvent(string customEventName,
IDictionary<string, object> eventData);
UnityAnalytics.CustomEvent 入力パラメーター
名前 詳細
customEventName string カスタムイベントの名前。名前にプレフィックス「unity」を含むことは不可。 — 「unity」は予約されたキーワード。
eventData dictionary 追加パラメーターは、カスタムイベントがトリガーしときに Unity Analytics に送信される。eventData キーはプレフィックス「unity」を含むことは不可。 — 「unity」は予約されたキーワード。

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

  • 一貫性を保つよう、気を付けてください。イベントデータの各パラメーターでは、一貫したデータタイプを維持してください。 例えば、レベルパラメーターに数字を入力したのに、次に文字列に変えるということをしないでください。そのようなことを行うと、エラーのような動作を招き、データの分析が難しくなります。
    • 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’) として解析できるようにしてください。

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

// Reference the Collections Generic namespace
  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)
マネタイゼーション