menu
Is this helpful?

# uni-app

::: 팁

데이터 액세스를 구현하기 전에 준비 사항을 확인하세요.

uni-app SDK 지원 플랫폼: iOS, Android, Web, Bytedance 미니 프로그램, Alipay 미니 프로그램

:::

최신 버전: 3.0.0 다운로드 (opens new window)

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

소스 코드:Source Code (opens new window)

# 1. SDK 구현

uni-app SDK를 다운로드하고 압축 해제한 후,

tdanalytics.uniapp.js를 직접 프로젝트에 포함시키고, 아래의 코드를 참조하세요.

import ThinkingAnalyticsAPI from '../../static/js/thinkingdaTDAnalytics.uniapp.js'

# 2. 초기 설정

TE SDK를 추가하면, ThinkingAnalyticsAPI를 사용할 수 있습니다.

var config = {
        appId: "YOUR_APPID", 
        serverUrl: "YOUR_SERVER_URL",
        autoTrack: {
            appLaunch: true, // 미니앱 실행 자동 추적
            appShow: true, // 미니앱이 활성화되고 백그라운드에서 미니앱을 재개할 때 자동 추적
            appHide: true, // 미니앱이 백그라운드로 들어갈 때 자동 추적
            pageShow: true, // 미니앱 페이지 표시 또는 포그라운드로 들어갈 때 자동 추적
            pageShare: true // 미니앱 공유 자동 추적
        },
};
TDAnalytics.init();

파라미터 설명:

  • appId: 프로젝트의 APPID, TE 프로젝트 관리 화면에서 획득 가능
  • serverUrl: 데이터 전송 URL
    • SaaS인 경우 프로젝트 관리 → 데이터 액세스 URL에서 확인 가능
    • 프라이빗 구축인 경우, 데이터 전송 URL을 지정할 수 있음
  • autoTrack: 선택 사항; 자동 수집 기능의 on/off. 다음 요소로 설정 가능합니다.
    • appLaunch: 미니앱의 실행을 자동으로 수집
    • appShow: 미니앱이 활성화되고 백그라운드에서 미니앱을 재개할 때 자동으로 수집
    • appHide: 미니앱이 백그라운드로 들어갈 때 자동으로 수집
    • pageShow: 미니앱의 페이지 표시 또는 포그라운드로 들어갈 때 자동으로 수집
    • pageShare: 미니앱 공유를 자동으로 수집

::: 경고

데이터를 전송하기 전에, 미니 프로그램 플랫폼 또는 기타 플랫폼의 개발 설정에서 데이터 전송 주소를 서버 도메인 이름의 request 리스트에 추가해야 합니다.

:::

# 3. 주요 기능

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

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

# 3.1 계정 ID 설정

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

// 사용자의 로그인 고유 식별자, 데이터 추적에서 #account_id에 해당합니다. #Account_id는 현재 TE입니다.
TDAnalytics.login("TE");

이 방법으로는 로그인 이벤트가 전송되지 않습니다.

# 3.2 공통 이벤트 속성 설정

공통 이벤트 속성은 모든 이벤트에 포함되는 속성입니다. setSuperProperties를 호출하여 설정할 수 있습니다. 이벤트를 전송하기 전에, 공통 이벤트 속성을 설정해 두세요.

예를 들어: 플레이어의 레벨, 전투력, 소유 자원 등의 속성

var superProperties = {
    channel : "ta", //문자열
    age : 1,//숫자
    isSuccess : true,//불리언
    birthday :  new Date(),//시간
    object : { key : "value" },//객체
    object_arr : [ { key : "value" } ],//객체 배열
    arr : [ "value" ]//배열
};
TDAnalytics.setSuperProperties(superProperties);//슈퍼 속성 설정

공통 이벤트 프로퍼티는 캐시에 저장되므로, 앱을 시작할 때마다 호출할 필요가 없습니다.

호출할 경우, setSuperProperties: 이전에 설정된 공통 이벤트 속성은 덮어쓰여집니다.

  • Key는 해당 프로퍼티의 이름으로, 문자열 타입이며, 영문자와 숫자, "_"를 포함할 수 있고, 최대 50자까지 가능합니다. TE 시스템은 일괄적으로 소문자로 통일됩니다.
  • Value는 해당 프로퍼티의 값으로, String, Number, Boolean, Time, object, array, list object를 지원합니다.

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

# 3.3 이벤트 전송

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

TDAnalytics.track(
    eventName: "product_buy", // 이벤트 이름
    properties: {
        product_name: "book"
    } //이벤트 속성
);

이벤트 이름은 string 타입으로, 영문자와 숫자, "_"를 포함할 수 있으며 최대 50자까지 입력 가능합니다.

# 3.4 유저 속성 설정

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

//유저 이름이 현재 TA입니다.
TDAnalytics.userSet({
    properties: {
        username: "TA"
    }
});
//유저 이름이 현재 TE입니다.
TDAnalytics.userSet({
    properties: {
        username: "TE"
    }
});

# 4. 코드 예시 (Example Code)

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

var config = {
  appId: "YOUR_APPID", 
  serverUrl: "YOUR_SERVER_URL", 
  autoTrack: {
    appLaunch: true, // auto-tracking ta_mp_launch
    appShow: true, // auto-tracking ta_mg_show
    appHide: true, // auto-tracking ta_mp_hide
    pageShow: true, // auto-tracking ta_mp_view
    pageShare: true // auto-tracking ta_mp_share
  }
};
// creating a TA Instance
TDAnalytics.init(config);
// if the user has logged in, the account ID of the user could be set as the unique identifier 
TDAnalytics.login("TA");
//set super properties
var superProperties = {
    channel : "ta", //character string
    age : 1,//number
    isSuccess : true,//boolean
    birthday :  new Date(),//time
    object : { key : "value" },//object
    object_arr : [ { key : "value" } ],//array object
    arr : [ "value" ]//array
};
TDAnalytics.setSuperProperties(superProperties);
// initialize
TDAnalytics.init();
//send event
TDAnalytics.track({
    eventName: "product_buy", 
    properties: {
        product_name: "book"
    } 
);
//Set user properties
TDAnalytics.userSet({
    properties: { 
        username: "TE" 
    }
});