Version: 2020.1
Analytics Event Tracker
Analytics イベントの制限

Analytics イベントパラメーター

標準イベントとカスタムイベントはいずれも、付加的な情報を Analytics に送信できます。標準イベントとカスタムイベントの違いは、大抵の標準イベントには、カスタムパラメーターに先立って、必須、または、オプションのパラメーターがあるということです。

Pass your custom parameters to the appropriate AnalyticsEvent function in the form of a Dictionary<string, object> instance. The keys of this dictionary are the parameter names, and the values are the parameter values. When creating this dictionary, maintain consistent key names and data types for each parameter in your event data, both within a single version of your game as well as from version to version. For example, don’t send a level name parameter as a number sometimes and as a string at other times. Doing this can make your data difficult to interpret.

注意: カスタムパラメーターディクショナリのキーの名前をプレフィックス「unity」で始めないでください。これは、内部の Unity Analytics イベントのために予約されています。

Unity は、Analytics に送信された値をシリアライズします。ディクショナリに加えるデータ型が文字列であっても、その文字列を数値としてパースします。言い換えれば、文字列「_51_」をパラメーターのディクショナリに追加することは、数 51 を加えるのと等しいということです。

1 つのイベントで最大 10 個のパラメーターを渡すことができます。標準イベントの場合、この限度には必須パラメーターと、値を割り当てるオプションのパラメーターが含まれます (未使用のオプションのパラメーターはこの限度に含まれません)。さらに、イベントに渡されるキーの名前と文字列値の個々の長さは 100 文字を超えることはできません。また、すべてのキーの名前と文字列値の合計の長さは 500 文字を超えられません。

効率を上げるために、パラメーターのディクショナリインスタンスをクラスメンバーとして作成し、イベントを送信するときに毎回、ディクショナリを再利用することができます。ディクショナリオブジェクトを再利用すると、イベントを送信するたびにメモリの割り当てが発生するのを避けることができます。これにより、C#ガベージコレクターが処理する必要があるメモリ割り当てが減少します。シーンでイベントが発生する頻度が高いほど、このテクニックはより多くのメリットをもたらします。次の例では、カスタムイベントを送信するクラスを定義しています。 このクラスは、インスタンス変数としてパラメータディクショナリを定義し、イベントを送信するたびにパラメーター値を設定します。

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Analytics;

public class MyCustomAnalyticsEvent : MonoBehaviour {
    private const string Name = "my_custom_event";

    private Dictionary<string, object> parameters 
        = new Dictionary<string, object>();

    void Start(){
        // デフォルト値でパラメーターを定義します
        parameters.Add("character_class", "Unknown");
        parameters.Add("health", 0);
        parameters.Add("xp", 0);
        parameters.Add("world_x", 0);
        parameters.Add("world_y", 0);
        parameters.Add("world_z", 0);
    }

    public bool Dispatch(string characterClass, 
                         int health, 
                         int experience, 
                         Vector3 location){
                         
        // 特定のイベントのためにパラメーター値を設定します
        parameters["character_class"] = characterClass;
        parameters["health"] = health;
        parameters["xp"] = experience;
        parameters["world_x"] = location.x;
        parameters["world_y"] = location.y;
        parameters["world_z"] = location.z;

        // イベントを送信
        AnalyticsResult result 
            = AnalyticsEvent.Custom(Name, parameters);
        if(result == AnalyticsResult.Ok){
            return true;
        } else {
            return false;
        }
    }
}

標準パラメーターと一緒に送信するカスタムパラメーターにも同じ方法を使用できます。


  • 2018–03–02 Page published

  • 2018–03–02 - サービスは Unity 5.2 以降でサポートされていますが、変更される可能性があります。

  • 5.2 の新機能

Analytics Event Tracker
Analytics イベントの制限