Version: 2021.1
言語: 日本語
高度なインテグレーション (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)
マネタイゼーション