본문으로 건너뛰기

과거 버전 Unity SDK 사용 가이드

최근 업데이트 2026. 10. 03.

Unity SDK가 v2.0.0으로 업그레이드되었으며, 이 문서는 과거 버전의 사용 가이드입니다. 새로 연동하려면 최신 Unity SDK 사용 가이드를 참고하십시오

이 가이드에서는 Unity SDK를 사용하여 프로젝트를 연동하는 방법을 소개합니다. 연동을 시작하기 전에 먼저 데이터 규칙 장을 읽어 보는 것을 권장합니다. GitHub에서 Unity SDK의 소스 코드를 받을 수 있습니다.

최신 버전: v1.4.4

업데이트 시간: 2020-04-17

다운로드 주소

1. SDK 초기화​

1.1 SDK 통합​

  1. Unity SDK 리소스 파일을 다운로드하고 프로젝트로 가져옵니다: Assets > Import Package > Custom Package에서 방금 다운로드한 파일을 선택합니다

주의: Android 플러그인은 Gradle로 통합되므로 현재 Unity 5.4 이후 버전만 지원합니다.

  1. ThinkingAnalytics GameObject를 추가하고 SDK 설정을 지정합니다

위 그림의 설정 항목은 각각 다음과 같습니다:

Configuration

  • Enable Log: 로그 활성화 여부입니다. 활성화하면 전송 상황이 출력되어 디버깅에 편리합니다. Editor 모드에서 이벤트 전송이 올바른지 검증할 수도 있으며, 조건에 맞지 않는 속성은 warning 로그로 콘솔에 표시됩니다.

  • Network Type: 데이터를 서버로 전송하는 네트워크 조건을 설정합니다. 기본값은 DEFAULT이며, 선택할 수 있는 모든 옵션과 설명은 다음과 같습니다:

    • DEFAULT: 3G, 4G, 5G 및 WIFI 환경에서 데이터 전송
    • WIFI: WIFI 환경에서만 데이터 전송
    • ALL: 2G, 3G, 4G, 5G 및 WIFI 환경에서 데이터 전송
  • Postpone Track: 전송 지연 여부를 설정합니다. 이 옵션을 활성화하면 StartTrack()을 호출한 후에야 데이터 전송이 시작되며, 호출 전의 데이터는 StartTrack()이 호출될 때까지 캐시됩니다. 게스트 ID나 공통 속성을 설정해야 하는 경우 이 옵션을 활성화하는 것을 권장합니다. 호출 방법은 지연 전송 부분을 참고하십시오

Tokens

각 Token은 하나의 인스턴스를 나타냅니다. 여러 프로젝트로 데이터를 전송하려면 오른쪽 하단의 + 버튼을 클릭하여 프로젝트 구성을 추가할 수 있습니다. 다중 프로젝트 관련 주의 사항은 이 절 끝의 "다중 프로젝트 지원"을 참고하십시오. APP ID가 서로 다른 여러 Token 구성을 추가할 수 있습니다.

  • APP ID: 설정이 필요합니다. 프로젝트의 APP_ID로, 프로젝트를 신청할 때 제공됩니다. 여기에 입력하십시오.

  • SERVER URL: 설정이 필요합니다. 데이터 수신 측의 URL입니다:

    • 클라우드 서비스를 사용하는 경우 다음 URL을 입력하십시오:
    • 프라이빗 배포 버전을 사용하는 경우 다음 URL을 입력하십시오:
      • https://데이터 수집 주소
  • MODE: SDK 인스턴스의 실행 모드입니다. 운영 환경에서는 반드시 NORMAL 모드를 사용하십시오. 자세한 내용은 SDK 모드를 참고하십시오.

  • Auto Track: 자동 수집 이벤트 활성화 여부입니다. 선택하면 SDK가 게임의 시작과 종료를 자동으로 기록합니다. 자세한 내용은 자동 수집 이벤트를 참고하십시오

  • TimeZone: v1.4.3부터 지원되며, 데이터의 기본 기준 시간대입니다. 이 설정은 현재 이벤트 시간과 유저 속성을 설정한 시간에만 적용되며, 속성의 DateTime 타입에는 적용되지 않습니다.

참고: 일부 디바이스는 기본적으로 평문 전송을 금지하므로 HTTPS 형식의 수신 주소를 사용할 것을 강력히 권장합니다.

다중 프로젝트 지원​

SDK를 설정할 때 여러 APP ID를 추가할 수 있으며, 이후 API를 호출할 때 마지막에 파라미터를 하나 덧붙여 APP ID를 지정합니다. Identify() 인터페이스를 예로 들면 다음과 같습니다:

// APP ID가 “debug-appid”인 APP ID 인스턴스의 게스트 ID 설정
ThinkingAnalyticsAPI.Identify("unity_debug_id", "debug-appid");

주의: 게스트 ID, 계정 ID, 공통 속성 등은 여러 프로젝트 간에 공유되지 않으므로 APP ID 인스턴스마다 따로 설정해야 합니다.

APP ID 파라미터를 덧붙이지 않으면 기본적으로 목록의 첫 번째 APP ID 인스턴스(Token ID 뒤에 default 표시가 있는 인스턴스)를 사용합니다. 목록 항목을 드래그하여 목록 순서를 바꾸면 기본 APP ID 인스턴스를 조정할 수 있습니다.

1.2 SDK 사용​

SDK 설정을 마치면 SDK로 이벤트를 업로드할 수 있습니다. 참고용 Sample도 제공합니다.

using ThinkingAnalytics;

ThinkingAnalyticsAPI.Track("unity_start");

2. 유저 ID 설정​

Unity SDK를 사용하면 SDK는 기본적으로 랜덤 UUID를 각 유저의 게스트 ID로 사용하며, 이 ID는 유저가 로그인하지 않은 상태에서 신원 식별 ID로 사용됩니다. 기본 게스트 ID는 유저가 게임을 재설치하거나 디바이스를 변경하면 바뀐다는 점에 유의하십시오.

2.1 게스트 ID 설정(선택)​

게임에 유저별 게스트 ID 관리 체계가 따로 있는 경우 Identify를 호출하여 게스트 ID를 설정할 수 있습니다:

ThinkingAnalyticsAPI.Identify("unity_id");

게스트 ID를 가져오려면 GetDistinctId를 호출합니다:

ThinkingAnalyticsAPI.GetDistinctId();

2.2 계정 ID 설정 및 삭제​

유저가 로그인할 때 Login을 호출하여 유저의 계정 ID를 설정할 수 있습니다. 계정 ID를 설정하면 계정 ID가 유저 식별 ID로 사용되며, 설정한 계정 ID는 Logout을 호출하기 전까지 계속 유지됩니다:

// 계정 ID 설정
ThinkingAnalyticsAPI.Login("unity_user");

// 계정 ID 삭제
ThinkingAnalyticsAPI.Logout();

주의: 이 메서드는 유저 로그인, 유저 로그아웃 등의 이벤트를 업로드하지 않습니다.

3. 이벤트 업로드​

ThinkingAnalyticsAPI.Track()으로 이벤트와 속성을 전송할 수 있습니다. 일반적으로 수십에서 수백 개의 서로 다른 이벤트를 업로드해야 할 수 있습니다. AE 백엔드를 처음 사용하는 경우 먼저 몇 가지 핵심 이벤트를 업로드하는 것을 권장합니다.

3.1 이벤트 업로드​

앞서 정리한 문서를 바탕으로 이벤트 속성과 정보 전송 조건을 설정할 것을 권장합니다. 이벤트 이름은 string 타입으로, 영문자로만 시작할 수 있고 숫자, 영문자, 밑줄 "_"을 포함할 수 있으며, 최대 길이는 50자이고 대소문자를 구분하지 않습니다.

Dictionary<string, object> properties = new Dictionary<string, object>()
{
{"KEY_DateTime", DateTime.Now.AddDays(1)},
{"KEY_STRING", "B1"},
{"KEY_BOOL", true},
{"KEY_NUMBER", 50.65}
};
ThinkingAnalyticsAPI.Track("TEST_EVENT", properties);
  • 이벤트 속성은 Dictionary<string, object> 타입이며, 각 요소가 하나의 속성을 나타냅니다.
  • 이벤트 속성 Key는 속성 이름으로 string 타입입니다. 영문자로만 시작할 수 있고 숫자, 영문자, 밑줄 "_"을 포함할 수 있으며, 최대 길이는 50자이고 대소문자를 구분하지 않습니다.
  • 속성 값은 문자열, 숫자, bool, DateTime, List의 다섯 가지 타입을 지원합니다.

주의: List 타입은 v1.4.0 이후 버전부터 지원되며, 요소는 모두 string으로 변환되어 적재됩니다.

Track()을 호출하면 SDK는 시스템의 현재 시간을 이벤트 발생 시각으로 사용합니다. 이벤트 시간을 지정해야 하는 경우 DateTime 타입의 파라미터를 전달하여 이벤트 발생 시간을 설정할 수 있습니다. v1.3.0부터 SDK는 DateTimeKind에 따라 이벤트의 시간 오프셋(시스템 속성 #zone_offset에 해당)을 업로드할 수 있지만, 전달한 DateTime의 Kind 속성이 DateTimeKind.Unspecified이면 시간 오프셋을 전송하지 않습니다:

DateTime dateTime = DateTime.Now.AddDays(-1);
ThinkingAnalyticsAPI.Track("TEST_EVENT", properties, dateTime);

v1.4.3부터 SDK 인스턴스의 기본 시간대를 설정할 수 있습니다. Local이 아닌 시간대를 설정하면 모든 이벤트 시간이 해당 시간대에 맞춰지며, 전달한 DateTime의 Kind 속성은 무시됩니다.

주의: 이벤트 발생 시간을 설정할 수는 있지만, 수신 측에서는 다음과 같이 제한합니다: 서버 시간 기준 이전 10일부터 이후 3일까지의 데이터만 수신하며, 기한을 벗어난 데이터는 비정상 데이터로 간주되어 해당 데이터 전체가 적재되지 않습니다.

3.2 정적 공통 속성 설정​

플레이어의 서버와 채널 등 일부 중요한 속성은 모든 이벤트에 설정해야 하므로, 이러한 속성은 공통 이벤트 속성으로 설정할 수 있습니다. 공통 이벤트 속성은 모든 이벤트에 포함되는 속성입니다. SetSuperProperties를 호출하여 공통 이벤트 속성을 설정할 수 있으며, 이벤트를 보내기 전에 먼저 공통 이벤트 속성을 설정하는 것을 권장합니다.

Dictionary<string, object> superProperties = new Dictionary<string, object>()
{
{"SERVER", 0},
{"CHANNEL", "A3"}
};
ThinkingAnalyticsAPI.SetSuperProperties(superProperties);

공통 이벤트 속성은 캐시에 저장되므로 APP을 시작할 때마다 호출할 필요가 없습니다. SetSuperProperties를 호출하여 이전에 이미 설정한 공통 이벤트 속성을 업로드하면 이전 속성을 덮어씁니다. 공통 이벤트 속성과 Track()으로 업로드한 속성의 Key가 중복되면 해당 이벤트의 속성이 공통 이벤트 속성을 덮어씁니다.

공통 이벤트 속성을 삭제하려면 UnsetSuperProperty()를 호출하여 공통 이벤트 속성 하나를 삭제할 수 있습니다. 모든 공통 이벤트 속성을 비우려면 ClearSuperProperties()를 호출합니다.

// 속성 이름이 CHANNEL인 공통 속성 삭제
ThinkingAnalyticsAPI.UnsetSuperProperty("CHANNEL");

// 모든 공통 속성 비우기
ThinkingAnalyticsAPI.ClearSuperProperties();

3.3 동적 공통 속성 설정​

공통 속성의 값이 상수가 아닌 경우 동적 공통 속성을 설정하는 방식으로 구현할 수 있습니다. 동적 공통 속성도 모든 이벤트에 추가되며, 이벤트를 전송할 때 실제 전송 값을 동적으로 가져옵니다.

동적 공통 속성을 설정하려면 먼저 동적 공통 속성 클래스를 새로 만들어 IDynamicSuperProperties 인터페이스를 구현하고, public Dictionary<string, object> GetDynamicSuperProperties() 메서드를 재정의합니다. 이 메서드의 반환 값이 설정할 동적 공통 속성입니다. 그런 다음 SetDynamicSuperProperties를 호출하여 동적 공통 속성 객체를 전달합니다. 예시는 다음과 같습니다:

using ThinkingAnalytics;

// 동적 공통 속성 구현 정의. 이 예시는 UTC 시간을 동적 공통 속성으로 설정합니다
public class DynamicProp : IDynamicSuperProperties
{
public Dictionary<string, object> GetDynamicSuperProperties()
{
return new Dictionary<string, object>() {
{"KEY_UTCTime", DateTime.UtcNow}
};
}
}

ThinkingAnalyticsAPI.SetDynamicSuperProperties(new DynamicProp());

주의: 이벤트 속성 이름이 중복되면 동적 공통 속성의 우선순위는 공통 이벤트 속성보다 높고 Track에서 설정한 이벤트 속성보다 낮습니다.

3.4 이벤트 지속 시간 기록​

이벤트의 지속 시간을 기록해야 하는 경우 TimeEvent()를 호출하여 시간 측정을 시작하고 측정할 이벤트 이름을 지정합니다. 해당 이벤트를 업로드하면 이벤트 속성에 기록된 시간을 나타내는 #duration 속성이 자동으로 추가되며, 단위는 초입니다.

// TimeEvent를 호출하여 TIME_EVENT 이벤트의 시간 측정 시작
ThinkingAnalyticsAPI.TimeEvent("TIME_EVENT");

// do some thing...

// Track으로 TIME_EVENT 이벤트를 업로드하면 속성에 #duration 속성이 추가됩니다
ThinkingAnalyticsAPI.Track("TIME_EVENT");

4. 유저 속성​

AE 플랫폼에서 현재 지원하는 유저 속성 설정 인터페이스는 UserSet, UserSetOnce, UserAdd, UserUnset, UserDelete, UserAppend입니다.

4.1 UserSet​

일반적인 유저 속성은 UserSet을 호출하여 설정할 수 있습니다. 이 인터페이스로 전송한 속성은 원래 속성 값을 덮어쓰며, 이전에 해당 유저 속성이 없었다면 새로 생성합니다.

ThinkingAnalyticsAPI.UserSet(new Dictionary<string, object>()
{
{"USER_PROP_NUM", 0},
{"USER_PROP_STRING", "A3"}
});

이벤트 속성과 마찬가지로:

  • 유저 속성은 Dictionary<string, object> 타입이며, 각 요소가 하나의 속성을 나타냅니다.
  • 유저 속성 Key는 속성 이름으로 string 타입입니다. 영문자로 시작해야 하며 숫자, 영문자, 밑줄 "_"을 포함할 수 있고, 최대 길이는 50자이며 대소문자를 구분하지 않습니다.
  • 유저 속성 값은 문자열, 숫자, bool, DateTime, List의 다섯 가지 타입을 지원합니다.

주의: List 타입은 v1.4.0 이후 버전부터 지원되며, 요소는 모두 string으로 변환되어 적재됩니다.

4.2 UserSetOnce​

전송하려는 유저 속성을 한 번만 설정하면 되는 경우 UserSetOnce를 호출하여 설정할 수 있습니다. 해당 속성에 이미 값이 있으면 이 정보는 무시됩니다.

ThinkingAnalyticsAPI.UserSetOnce(new Dictionary<string, object>()
{
{"USER_PROP_NUM", -50},
{"USER_PROP_STRING", "A3"}
});

주의: UserSetOnce로 설정하는 유저 속성의 타입과 제한 조건은 UserSet과 같습니다.

4.3 UserAdd​

숫자형 속성을 전송할 때 UserAdd를 호출하여 해당 속성을 누적할 수 있습니다. 해당 속성이 아직 설정되지 않았으면 0을 할당한 후 계산합니다. 음수를 전달할 수도 있으며, 이는 빼기 연산과 같습니다.

ThinkingAnalyticsAPI.UserAdd(new Dictionary<string, object>()
{
{"USER_PROP_NUM", -100.9},
{"USER_PROP_NUM2", 10.0}
});

주의: UserAdd의 속성 타입과 Key 값 제한은 UserSet과 같지만, Value는 숫자 타입 속성만 전송할 수 있습니다.

4.4 UserUnset​

유저의 특정 속성을 초기화해야 하는 경우 UserUnset을 호출하여 해당 유저의 지정한 유저 속성 값을 비울 수 있습니다. 이 인터페이스는 문자열 또는 리스트 타입의 파라미터를 지원합니다.

// 단일 유저 속성 삭제
ThinkingAnalyticsAPI.UserUnset("userPropertyName");

// 여러 유저 속성 삭제
List<string> listProps = new List<string>();
listProps.Add("aaa");
listProps.Add("bbb");
listProps.Add("ccc");

ThinkingAnalyticsAPI.UserUnset(listProps);

4.5 UserDelete​

특정 유저를 삭제하려면 UserDelete를 호출하여 해당 유저를 삭제할 수 있습니다. 삭제한 후에는 해당 유저의 유저 속성을 더 이상 조회할 수 없지만, 해당 유저가 발생시킨 이벤트는 여전히 조회할 수 있습니다.

ThinkingAnalyticsAPI.UserDelete();

4.6 UserAppend​

v1.4.0부터 UserAppend를 호출하여 List 타입의 유저 속성에 요소를 추가할 수 있습니다:

List<string> stringList = new List<string>();
stringList.Add("apple");
stringList.Add("ball");
stringList.Add("cat");

// 속성 이름이 USER_LIST인 유저 속성에 요소 3개 추가
ThinkingAnalyticsAPI.UserAppend(new Dictionary<string, object>
{
{"USER_LIST", stringList }
});

5. 자동 수집 이벤트​

SDK를 설정할 때 Auto Track 옵션을 선택하면 SDK가 다음 이벤트를 자동으로 기록합니다:

  • ta_app_start: 게임 시작 이벤트로, 유저가 포커스를 얻을 때마다(즉 게임 중일 때) 트리거됩니다
  • ta_app_end: 게임 종료 이벤트로, 게임이 Pause 상태가 될 때 트리거되며, 이번 게임 플레이 시간(단위: 초)을 기록하는 #duration 속성이 추가됩니다

1.1.0 버전부터 인터페이스를 호출하는 방식으로 설치 이벤트를 수집할 수 있습니다:

// APP 설치 이벤트 수집
ThinkingAnalyticsAPI.TrackAppInstall();
  • ta_app_install: 게임 설치 이벤트로, 유저가 설치 후 처음 APP을 열 때만 트리거됩니다. 유저가 APP을 업그레이드하면 트리거되지 않으며, APP을 삭제한 후 재설치하면 이 이벤트가 다시 트리거됩니다.

6. 기타 설정 옵션​

6.1 디바이스 ID 가져오기​

SDK는 초기화가 완료되면 디바이스 ID를 자동으로 생성하여 로컬 캐시에 기록합니다. 같은 앱/게임에서 한 디바이스의 디바이스 ID는 변하지 않으며, GetDeviceId()를 호출하여 디바이스 ID를 가져올 수 있습니다:

ThinkingAnalyticsAPI.GetDeviceId();

// 디바이스 ID를 게스트 ID로 사용
// ThinkingAnalyticsAPI.Identify(ThinkingAnalyticsAPI.GetDeviceId());

6.2 지연 전송​

Postpone Track 옵션을 선택하면 모든 전송 요청(유저 속성 설정과 이벤트 추적 포함)이 다음 메서드를 직접 호출할 때까지 먼저 캐시됩니다:

ThinkingAnalyticsAPI.StartTrack();

이 인터페이스가 호출된 후에야 데이터 전송이 시작되며, 이 인터페이스를 호출하기 전에 생성된 데이터는 전송할 때 새로 설정한 유저 ID가 다시 적용되고 공통 속성이 추가됩니다. 따라서 StartTrack()을 호출하기 전에 유저 ID와 공통 속성을 설정하면 모든 데이터에 적용되므로, 게스트 ID, 공통 속성을 설정해야 하는 시나리오에 적합합니다:

//게스트 ID 설정
ThinkingAnalyticsAPI.Identify(ThinkingAnalyticsAPI.GetDeviceId());

//공통 속성 설정
Dictionary<string, object> superProperties = new Dictionary<string, object>()
{
{"SERVER", 0},
{"CHANNEL", "A3"}
};
ThinkingAnalyticsAPI.SetSuperProperties(superProperties);

//전송 시작 인터페이스 호출
ThinkingAnalyticsAPI.StartTrack();

6.3 데이터 전송 일시 중지/중단​

v1.2.0 버전에서 SDK 데이터 전송을 중단하는 기능이 추가되었으며, SDK 전송을 중단하는 인터페이스는 두 가지입니다:

  1. SDK 전송 일시 중지(EnableTracking)

유저가 테스트 환경에 있거나 테스트 계정으로 로그인한 경우처럼 일부 시나리오에서는 SDK의 데이터 수집과 전송을 일시적으로 중지하고 싶을 수 있습니다. 이때 다음 인터페이스를 호출하여 SDK 전송을 일시 중지할 수 있습니다.

특정 인스턴스(메인 인스턴스와 경량 인스턴스 포함)에서 EnableTracking을 호출하고 false를 전달하면 SDK 전송을 일시 중지할 수 있습니다. 해당 인스턴스에 이미 설정된 #distinct_id, #account_id, 공통 속성 등은 유지되고, 해당 인스턴스에서 이미 수집했지만 아직 전송에 성공하지 못한 데이터는 계속 전송을 시도합니다. 이후 해당 인스턴스는 새 데이터를 수집하거나 전송할 수 없고 게스트 ID, 계정 ID, 공통 속성 등도 설정할 수 없지만, 해당 인스턴스에 이미 설정된 공통 속성과 디바이스 ID, 게스트 ID, 계정 ID 등의 정보는 읽을 수 있습니다.

인스턴스의 중지 상태는 로컬 캐시에 저장되며, EnableTracking을 호출하여 true를 전달하면 SDK 인스턴스가 데이터 수집과 전송을 다시 시작합니다. 경량 인스턴스는 캐시를 사용하지 않으므로 APP을 열 때마다 경량 인스턴스의 일시 중지 상태가 유지되지 않고 전송이 다시 활성화된다는 점에 유의하십시오.

// 기본 인스턴스의 전송 일시 중지. 캐시된 데이터와 이미 설정된 정보는 삭제되지 않음
ThinkingAnalyticsAPI.EnableTracking(false);

// 기본 인스턴스의 전송 재개
ThinkingAnalyticsAPI.EnableTracking(true);
  1. SDK 전송 중단(OptOutTracking)

GDPR이 적용되는 지역에서 유저가 데이터 수집 권한을 제공하지 않기로 선택한 경우처럼 일부 특수한 시나리오에서는 SDK 기능을 완전히 중단해야 할 수 있습니다. 이때 다음 인터페이스를 호출하여 SDK 기능을 완전히 끌 수 있습니다.

OptOutTracking은 메인 인스턴스에서만 호출할 수 있으며, EnableTracking과의 가장 큰 차이는 해당 인스턴스의 로컬 캐시(이 인스턴스의 게스트 ID, 계정 ID, 공통 속성, 전송되지 않은 데이터 큐 포함)를 비운다는 점입니다. 그런 다음 해당 인스턴스의 수집 및 전송 기능을 끕니다.

// 기본 인스턴스의 전송을 중단하고 로컬 캐시 비우기
ThinkingAnalyticsAPI.OptOutTracking();

SDK 기능을 끄는 동시에 AE 클러스터에서 해당 유저의 유저 데이터를 삭제하려면 OptOutTrackingAndDeleteUser를 호출합니다. 그러면 SDK 인스턴스 기능을 중단하기 전에 UserDelete 데이터 한 건을 전송하여 해당 유저의 유저 데이터를 삭제합니다.

// 기본 인스턴스의 전송을 중단하고 user_del 전송
ThinkingAnalyticsAPI.OptOutTrackingAndDeleteUser();

인스턴스의 중지 상태도 로컬 캐시에 저장되며, OptInTracking을 호출하면 이후 전송을 계속할 수 있지만 이때는 완전히 새로운 인스턴스와 같습니다

// 전송 다시 활성화
ThinkingAnalyticsAPI.OptInTracking();

6.4 경량 인스턴스 생성​

경량 인스턴스 방식으로 같은 APP ID에 여러 인스턴스를 생성할 수 있습니다

// 경량 인스턴스를 생성하고 경량 인스턴스의 token(APP ID와 유사)을 반환
string lightToken = ThinkingAnalyticsAPI.CreateLightInstance();

// 경량 인스턴스의 계정 ID 설정
ThinkingAnalyticsAPI.Login("anotherAccount", lightToken);

// 경량 인스턴스로 이벤트 전송
ThinkingAnalyticsAPI.Track("TEST_EVENT", lightToken);

주의: 하위 경량 인스턴스는 상위 인스턴스와 APP ID, 전송 주소 및 일부 설정이 같지만 그 밖의 정보는 공유하지 않습니다

6.5 SDK 실행 모드​

v1.4.0 버전부터 SDK는 세 가지 모드로 실행할 수 있습니다:

  • NORMAL: 일반 모드. 데이터를 캐시에 저장하고 일정한 캐시 전략에 따라 전송합니다
  • DEBUG: Debug 모드. 데이터를 한 건씩 전송합니다. 문제가 발생하면 로그와 예외로 사용자에게 알립니다
  • DEBUG_ONLY: Debug Only 모드. 데이터 검증만 하고 적재하지 않습니다

주의: DEBUG 모드는 통합 단계의 데이터 검증에만 사용하며, 운영 모드에서는 사용하지 마십시오.

디버그 모드가 운영 환경에 배포되는 것을 막기 위해 지정된 디바이스에서만 디버그 모드를 활성화할 수 있도록 제한합니다. 클라이언트에서 디버그 모드를 활성화했고, 디바이스 ID가 AE 백엔드의 데이터 → 트래킹 관리 → 디버그 모드 페이지에 추가된 디바이스만 디버그 모드를 활성화할 수 있습니다. 추가 방법: 페이지 오른쪽 상단의 디바이스 연동을 클릭하고 디바이스 선택 드로어에서 디바이스 추가를 클릭한 후 디바이스 ID를 입력합니다.

디바이스 ID는 다음 세 가지 방법으로 확인할 수 있습니다:

  • AE 플랫폼 이벤트 데이터의 #device_id 속성
  • 클라이언트 로그: SDK 초기화가 완료되면 디바이스 DeviceId가 출력됩니다
  • 인스턴스 인터페이스 호출: 디바이스 ID 가져오기

Release Note​

v1.4.4 2020/04/17​

  • 사용자 지정 CultureInfo 환경에서 Double 타입의 형식이 잘못되는 문제 수정

v1.4.3 2020/03/19​

  • 데이터 #time 속성의 기본 시간대 설정 지원
  • 네이티브 SDK 버전 업데이트

v1.4.2 2020/02/21​

  • iOS 플러그인 업데이트, 비교적 오래된 iOS 버전에서 발생하던 버그 수정

v1.4.1 2020/02/14​

  • Unity 2019.3.1f1 대응

v1.4.0 2020/02/11​

  • 속성 값에 List / Array 타입 지원
  • UserAppend 인터페이스 추가
  • Debug 모드 데이터 검증 지원
  • 인스턴스별 수신 주소 개별 설정 지원
  • 로컬 데이터 형식 검증 제거

v1.3.1 2019/12/25​

  • Android 4.3 미만 버전의 종료 타임아웃 수정
  • iOS 개발 환경이 포함되지 않은 경우의 오류 수정

v1.2.0 2019/09/02​

  • 데이터 전송 끄기/켜기 지원
  • 데이터 전송 일시 중지/재개 지원
  • 경량 인스턴스 지원
  • 2019.2.1f 버전에서 네트워크 타입 설정이 실패하는 문제 수정
  • timeEvent가 부정확한 문제 수정
  • Android/iOS SDK를 2.1.0으로 업그레이드

v1.1.0 2019/08/09​

  • 디바이스 ID 가져오기 지원
  • 동적 공통 속성 지원
  • 설치 이벤트 수집 지원
  • 내장 Android SDK를 2.0.2로 업그레이드
  • 내장 iOS SDK를 2.0.1로 업그레이드
  • 전송 캐시 옵션 지원. 사용자가 StartTrack()을 직접 호출하여 전송을 시작할 수 있습니다

v1.0.0 2019/06/20​

  • 게스트 ID 및 유저 계정 설정 지원
  • 이벤트 및 유저 속성 전송 지원
  • ta_app_start 및 ta_app_end 이벤트 자동 전송 지원
  • 공통 속성 인터페이스 지원
  • timeEvent 인터페이스 지원
  • 다중 프로젝트 전송 지원
이 문서가 도움이 되었나요?