menu
Is this helpful?

# C#

:::: 팁

구현하기 전에 데이터 액세스 준비를 확인해주세요.

C# SDK는 Mac, Windows 플랫폼을 지원하며, 크기는 33KB입니다.

:::

최신 버전: 1.3.0

업데이트 시간: 2023-11-08

다운로드: SDK Source Code (opens new window)

# 1. SDK 구현

GitHub (opens new window)에서 C# SDK 소스 코드를 다운로드하고, 디렉토리 내의 ThinkingData.cs 파일을 프로젝트에 추가합니다.

SDK는 Newtonsoft.Json 프레임워크에 의존하며, json 분석에 사용됩니다. Visual Studio을 사용하는 경우 NuGet을 통해 Newtonsoft.Json 라이브러리를 포함시켜주세요.

# 2. 초기 설정

ThinkingData.Analytics를 입력하고, ThinkingdataAnalytics를 사용하여 TE인스턴스의 초기 설정을 진행합니다.

using ThinkingData.Analytics;
TDAnalytics.Init(APPID,SERVER_URL)

파라미터 설명:

  • APPID: 프로젝트의 APPID는 TE프로젝트 관리 화면에서 가져올 수 있습니다.
  • SERVER_URL: 데이터 전송 URL
    • SaaS의 경우 프로젝트 관리 → 데이터 전송 주소에서 확인하세요
    • 프라이빗 구축의 경우, 데이터 전송 주소를 지정할 수 있습니다.

# 3. 주요 기능

주요 기능을 사용하기 전에, 유저 식별 규칙을 확인해 주세요.

SDK는 게스트 ID를 자동으로 생성하고, 로컬에 저장됩니다; 유저가 로그인하기 전에, 게스트 ID를 신분 식별 ID로 사용됩니다.

주의: 게스트 ID는 유저가 앱을 재설치할 때 리셋됩니다.

# 3.1 계정 ID

설정 유저가 로그인할 때, login을 호출하고 유저의 계정 ID를 설정할 수 있습니다. TE 플랫폼은 계정 ID를 신원 확인 ID로 사용하고 logout을 호출하기 전까지 유지합니다. login을 여러 번 호출하면 이전의 계정 ID가 덮어씌워집니다.

TDAnalytics.Login("TE");

Login은 여러 번 호출될 수 있으며, 호출될 때마다 들어오는 계정 ID가 이전에 저장된 ID와 일치하는지 여부가 판단됩니다. 일치하는 경우, 호출은 무시되며, 일치하지 않는 경우 이전의 ID가 덮어씌워집니다.

이 방법은 로그인 이벤트를 전송하지 않습니다

# 3.2 이벤트 전송

track을 호출하여 이벤트를 전송합니다. 데이터 플랜을 준비한 후 전송하세요. 아래는 모델 코드입니다. 예: 아이템 구매

Dictionary<string, object> dic = new Dictionary<string, object>();
properties.Add("channel", "te");//string
dic.Add("id", 618834);//number
dic.Add("isSuccess", true);//boolean
dic.Add("create_date", Convert.ToDateTime("2019-7-8 20:23:22"));//time
List<string> arr = new List<string>();
arr.Add("value");
dic.Add("arr", arr);//array
TDAnalytics.Track("product_buy", dic);
  • 이벤트 이름은 string 타입이며, 영문자와 숫자, "_"를 포함, 최대 50자
  • 이벤트 속성은 Dictionary 타입입니다.
    • Key는 해당 속성의 이름으로 string 타입이며, 영문자와 숫자, "_"를 포함, 최대 50자. TE 시스템은 일괄적으로 소문자로 통일됩니다
    • Value는 해당 속성의 값으로, String, Number, Boolean, Time, object, array, list object를 지원합니다.

유저 속성은 이벤트 속성과 일치해야 합니다

# 3.3 유저 속성 설정

일반적인 유저 속성에 대해서는, UserSet을 사용하여 설정할 수 있으며, UserSet은 원래의 값을 덮어씁니다. 본래 해당 속성에 값이 없는 경우, 속성이 새로 생성됩니다. 아래는 코드 예제입니다.

TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});

# 4. 코드 예시 (Example Code)

아래의 코드 예시에 모든 작업이 포함되어 있으며, 아래 순서대로 사용하는 것을 권장합니다:

using ThinkingData.Analytics;

ThinkingdataAnalytics te = new ThinkingdataAnalytics(APPID,SERVER_URL);
//만약 유저가 로그인한 경우, 유저의 계정 ID를 고유 식별자로 설정할 수 있습니다
TDAnalytics.Login("TE");
//track
Dictionary<string, Object> dic = new Dictionary<string, object>();
properties.Add("channel", "te");//string
dic.Add("id", 618834);//number
dic.Add("isSuccess", true);//boolean
dic.Add("create_date", Convert.ToDateTime("2019-7-8 20:23:22"));//time
List<string> arr = new List<string>();
arr.Add("value");
dic.Add("arr", arr);//array
TDAnalytics.Track("product_buy", dic);
// object
Dictionary<string, object> json = new Dictionary<string, object>();
json.Add("key", "value");
dic.Add("object", json);
//array object
List<Dictionary<string, object>> arr1 = new List<Dictionary<string, object>>();
Dictionary<string, object> json1 = new Dictionary<string, object>();
json1.Add("key", "value");
arr1.Add(json1);
dic.Add("objects", arr1);
//Set user properties
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});