menu
Is this helpful?

# Lua

현재 버전:v2.0.0-beta.1

업그레이드 시간: 2023-10-08

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

# 1. SDK 구현

  1. Source Code (opens new window)를 다운로드하고, ThinkingDataSdk.lua를 프로젝트의 카테고리에 넣어주세요.
  2. luarocks 도구를 사용하여 서드 파티 라이브러리를 설치합니다
luarocks install uuid
 
 luarocks install luasec OPENSSL_DIR=[PATH]
 
 luarocks install lua-cjson
  1. Logbus 설치

TE 시스템을 통해 빠르고 정확하게 데이터를 전송할 수 있도록, SDK와 LogBus를 함께 사용하여 서버 데이터의 데이터 리포트를 추천합니다.

# 2. 초기 설정

SDK의 초기 설정 코드 예시입니다:

local TdSDK = require "ThinkingDataSdk"
local LOG_DIRECTORY = "/tmp/data"
local consumer = TdSDK.TDLogConsumer("LOG_DIRECTORY", TdSDK.LOG_RULE.HOUR, 200, 500)
local sdk = TdSDK(consumer)

LOG_DIRECTORY는 로컬 액세스 파일의 주소가 됩니다. LogBus의 모니터 주소를 이 주소에 설정하면 자동으로 업로드됩니다.

# 3. 주요 기능

게스트 ID와 계정 ID를 잘 연결하기 위해, 게임 내에서 게스트 ID와 계정 ID 두 가지를 사용하는 경우, 이들 ID를 동시에 업로드하는 것을 추천합니다. 동시에 업로드하지 않을 경우, 사용자가 중복으로 계산될 수 있습니다.

# 3.1 이벤트 전송

track을 사용하여 이벤트 전송을 합니다. 사전에 데이터 트래킹 정책을 준비한 후, 전송해 주세요. 다음은 모델 코드입니다.

local distinctId = "ABCDEFG123456789"
local accountId = "TE_10001"

local properties = {}

properties["#time"] = os.date("%Y-%m-%d %H:%M:%S")
properties["#ip"] = "192.168.1.1"
properties["Product_Name"] = "Shoes"
properties["Price"] = 30
properties["OrderId"] = "abc_123"

sdk:track(accountId, distinctId, "payment", properties)
properties = nil
  • 이벤트 이름은 string 타입으로, 영문자와 숫자, "_"를 포함하며 최대 50자입니다.
  • Key는 해당 속성의 이름으로 string 타입이며, 영문자와 숫자, "_"를 포함하여 최대 50자입니다. TE 시스템은 일괄적으로 소문자로 통일됩니다.
  • Value는 해당 속성의 값으로, String, Number, Bloon, Time, object, array, list object를 지원합니다.

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

# 3.2 유저 속성 설정

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

local userSetProperties = {}
userSetProperties["user_name"] = "ABC"

sdk:userSet(accountId, distinctId, userSetProperties)
userSetProperties = {}
userSetProperties["user_name"] = "abc"

sdk:userSet(accountId, distinctId, userSetProperties)

# 4. 코드 예시 (Example Code)

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

local TdSDK = require "ThinkingDataSdk"
local LOG_DIRECTORY = "/tmp/data"
local consumer = TdSDK.LogConsumer(LOG_DIRECTORY)
local sdk = TdSDK(consumer)

local distinctId = "ABCDEFG123456789"
local accountId = "TE_10001"

local properties = {}

properties["#time"] = os.date("%Y-%m-%d %H:%M:%S")
properties["#ip"] = "192.168.1.1"
properties["Product_Name"] = "Shoes"
properties["Price"] = 30
properties["OrderId"] = "abc_123"
sdk:track(accountId, distinctId, "payment", properties)

local userSetProperties = {}
userSetProperties["user_name"] = "ABC"
sdk:userSet(accountId, distinctId, userSetProperties)

sdk.flush();