# JavaScript
::: 팁
구현하기 전에 데이터 전송 준비를 확인해주세요.
JavaScript SDK 실행 환경인 브라우저는 IE 8 이하 버전을 지원하지 않습니다.
JavaScript SDK의 크기는 약 35 KB입니다.
:::
최신 버전: v2.0.0 다운로드 (opens new window)
업데이트 시간: 2023-11-08
소스 코드: Source Code (opens new window)
# 1. SDK 구현
# 1.1 자동 구현
npm install thinkingdata-browser --save
SDK 초기 설정:
import thinkingdata from "thinkingdata-browser";
var config = {
appId: "APP_ID",
serverUrl: "https://YOUR_SERVER_URL",
autoTrack: {
pageShow: true, //page display event, event name ta_page_show
pageHide: true, //page hide event, event name ta_page_hide
}
};
thinkingdata.init(config);
# 1.2 수동 액세스
압축을 풀면 2가지 스크립트가 포함되어 있으며, 실제 필요에 따라 선택해주세요.
아래 설명된 비동기 로드에는 thinkingdata.min.js
가 사용됩니다.
동기 로드에는 thinkingdata.umd.min.js
가 사용됩니다.
- JavaScript SDK를 로드
비동기 로드 또는 동기 로드 방법으로 SDK를 사용할 수 있습니다.
실제 사용상 특별한 차이는 없으며, 선택에 따라 결정해주세요.
SDK 초기 설정에서는 다음과 같은 파라미터를 설정할 필요가 있습니다
APPID
: 프로젝트의 APPID, TE 프로젝트 관리 화면에서 획득 가능- SERVER_URL: 데이터 전송 주소
- SaaS의 경우 프로젝트 관리 → 데이터 전송 주소에서 확인해주세요
- 프라이빗 서버 구축의 경우, 데이터 전송 주소를 지정할 수 있습니다.
# 2. 주요 기능
주요 기능을 사용하기 전에, 유저 식별 규칙을 확인해 주세요.
SDK는 게스트 ID를 자동으로 생성하고, 로컬에 저장됩니다; 유저가 로그인하기 전에, 게스트 ID를 신분 식별 ID로 사용됩니다.
주의: 게스트 ID는 유저가 앱을 재설치할 때 리셋됩니다.
# 2.1 계정ID 설정
유저가 로그인할 때, login
을 호출하여 유저의 계정ID를 설정할 수 있습니다. TE 플랫폼은 계정ID를 식별 ID로 로그아웃을 호출할 때까지 유지합니다. login
을 여러 번 호출하면 이전의 계정ID는 덮어씌워집니다.
// The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
ta.login("TE");
이 방법은 로그인 이벤트를 보내지 않습니다.
# 2.2 공통 이벤트 속성 설정
공통 이벤트 속성은 모든 이벤트에 포함되는 속성입니다. setSuperProperties
를 호출하여 설정할 수 있습니다. 이벤트를 보내기 전에, 공통 이벤트 속성을 설정해두세요.
예: 플레이어의 레벨, 전투력, 소유 자원 등의 속성
var superProperties = {};
superProperties["channel"] = "te";//string
superProperties["age"] = 1;//number
superProperties["isSuccess"] = true;//boolean
superProperties["birthday"] = new Date();//time
superProperties["object"] = {key:"value"};//object
superProperties["object_arr"] = [{key:"value"}];//array object
superProperties["arr"] = ["value"];//array
te.setSuperProperties(superProperties);//set super properties
공통 이벤트 속성은 캐시에 저장되며, 페이지를 접속할 때마다 호출할 필요가 없습니다. 호출할 경우 setSuperProperties
: 이전에 설정한 공통 이벤트 속성은 덮어씌워집니다.
- Key는 해당 속성의 이름으로, 문자열 타입이며, 영문자와 숫자, "_"를 포함하며, 최대 50자입니다. TE 시스템은 일괄적으로 소문자로 통일됩니다.
- Value는 해당 속성의 값으로, String, Number, Boolean, Time, object, array, list object를 지원합니다.
이벤트 속성, 유저 속성은 공통 이벤트 속성과 일치해야 합니다.
# 2.3 이벤트 전송
track
을 호출하여 이벤트를 전송합니다. 데이터 플랜을 미리 준비한 후, 전송해주세요. 다음은 모델 코드입니다.
예: 아이템 구매
ta.track(
"product_buy", //event name
//event property
{product_name:"tv"});
이벤트 이름은 문자열 타입으로, 영문자와 숫자, "_"를 포함하여 최대 50자까지 입력 가능합니다.
Array 타입은 v 1.3.0 이상의 버전에서 지원됩니다.
Object 타입은 TE 플랫폼 3.5 이상의 버전에서 지원됩니다.
# 2.4 유저 속성 설정
일반적인 유저 속성은 userSet
을 사용하여 설정할 수 있으며, userSet
은 원래의 값을 덮어씁니다. 해당 속성에 값이 없는 경우에는 속성이 새로 생성됩니다. 다음은 코드 예시입니다.
//the username now is TA
ta.userSet({ username: "TA" });
//the username now is TE
ta.userSet({ username: "TE" });
# 3. 코드 예시 (Example Code)
아래의 코드 예시에 모든 작업이 포함되어 있으며, 아래 순서대로 사용하는 것을 권장합니다:
import thinkingdata from "thinkingdata-browser";
var config = {
appId: "APP_ID",
serverUrl: "https://YOUR_SERVER_URL/sync_js",
autoTrack: {
pageShow: true, //page display event, event name ta_page_show
pageHide: true, //page hide event, event name ta_page_hide
}
};
//Initialize the SDK
thinkingdata.init(config);
//if the user has logged in, the account ID of the user could be set as the unique identifier
ta.login("TA");
//set super properties
var superProperties = {};
superProperties["channel"] = "ta";//string
superProperties["age"] = 1;//number
superProperties["isSuccess"] = true;//boolean
superProperties["birthday"] = new Date();//time
superProperties["object"] = {key:"value"};//object
superProperties["object_arr"] = [{key:"value"}];//array object
superProperties["arr"] = ["value"];//array
ta.setSuperProperties(superProperties);
//upload events
ta.track("product_buy", //event name
//event property
{product_name:"tv"});
//Set user properties
ta.userSet({username: "TA" });