Version: 2017.4
Analytics Event Tracker
퍼널

애널리틱스 이벤트 파라미터

스탠다드 이벤트와 커스텀 이벤트 모두 이벤트의 일부로 추가 정보를 애널리틱스 서비스로 보낼 수 있도록 해줍니다. 스탠다드 이벤트와 커스텀 이벤트의 유일한 차이점은 대부분의 스탠다드 이벤트에 커스텀 파라미터보다 우선 순위가 높은 필수 또는 옵션 파라미터가 있다는 것입니다.

커스텀 파라미터를 Dictionary<string, object> 인스턴스 형태로 적절한 AnalyticsEvent 함수에 전달하십시오. 이 사전의 키는 파라미터 이름이고, 값은 파라미터 값입니다. 이 사전을 만들 때 이벤트 데이터의 각 파라미터에 대해 일관된 키 이름과 데이터 타입을 유지하십시오. 이는 싱글 버전 게임 내에서뿐만 아니라 버전 간에도 동일하게 적용됩니다. 예를 들어, 어떤 때는 레벨 이름 파라미터를 숫자로 전송하고, 다른 때는 문자열로 전송하지 마십시오. 이렇게 하면 데이터 해석이 어려워집니다.

참고: 커스텀 파라미터 사전의 키 이름은 내부 Unity 애널리틱스 이벤트에만 사용되는 “unity”로 시작할 수 없습니다.

Unity는 애널리틱스 서비스에 전송된 값을 직렬화합니다. 또한 사전에 추가하는 데이터 타입이 문자열인 경우에도 숫자 문자를 숫자로 파싱합니다. 즉, 문자열 “51”을 파라미터 사전에 추가하는 것은 숫자 51 을 추가하는 것과 동일합니다.

이벤트를 통해 최대 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(){
        // Define parameters with default values
        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){
                         
        // Set parameter values for a specific event
        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;

        // Send event
        AnalyticsResult result 
            = AnalyticsEvent.Custom(Name, parameters);
        if(result == AnalyticsResult.Ok){
            return true;
        } else {
            return false;
        }
    }
}

스탠다드 이벤트를 통해 커스텀 파라미터를 전송할 때도 이와 동일한 방법을 사용할 수 있습니다.


  • 2018–03–02 편집 리뷰 없이 페이지 게시됨

  • 2018–03–02 - 이 날짜를 기준으로 서비스가 Unity 5.2 이상 버전과 호환되지만, 버전 호환성은 변경될 수 있음

  • Unity 5.2의 새로운 기능

Analytics Event Tracker
퍼널