스크립트에서 로그를 기록하여, 월드에 접속한 플레이어들의 행동 데이터를 수집할 수 있는 기능이에요.
💻 스크립트에서 로그 기록
ServerScript 에서는 SaveLog 함수를,
ClientScript 에서는 SaveMyLog 함수를 사용해서 로그를 기록할 수 있어요.
해당 함수가 호출된 시점의 시간, 해당 플레이어 정보, 인덱스 및 값이 기록돼요.
-- ServerScript
local function SaveLogData(player, value)
local playerID = player:GetPlayerID()
local dataKey = "Gold" -- 기록할 로그의 데이터 키에요.
local index_1 = 1 -- 기록할 로그의 1번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
local index_2 = 1000 -- 기록할 로그의 2번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
Game:SaveLog(dataKey, playerID, value)
Game:SaveLog(dataKey, index_1, playerID, value)
Game:SaveLog(dataKey, index_1, index_2, playerID, value)
end
Game:ConnectEventFunction("SaveLogData", SaveLogData)
-- ClientScript
local function SaveLogData(value)
local dataKey = "Gold" -- 기록할 로그의 데이터 키에요.
local index_1 = 1 -- 기록할 로그의 1번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
local index_2 = 1000 -- 기록할 로그의 2번 인덱스에요. 데이터 키의 하위 정보를 기록하고 싶다면 사용하고, 생략할 수도 있어요.
Game:SaveMyLog(dataKey, value)
Game:SaveMyLog(dataKey, index_1, value)
Game:SaveMyLog(dataKey, index_1, index_2, value)
end
-- ClientScript
local function SaveLogData(value)
-- 기록할 로그의 데이터 키에요.
local dataKey = "ExperienceDevice"
-- 모바일 / PC 여부를 number 형태로 변환해서 기록해요.
local isMobileDevice = Input:IsMobileTouchScreen() --Bool
local value = -1
if isMobileDevice then value = 0
else value = 1
end
Game:SaveMyLog(dataKey, value)
end
특정 플레이어가 어떤 종류의 재화 (index_1) 를, 어떤 소비처 (index_2)에, 얼마만큼 소비했는지 (value) 를 기록하는 예시에요.
-- ServerScript
local function SaveLogData(player, assetType, usedPlace, value)
local playerID = player:GetPlayerID()
-- 기록할 로그의 데이터 키에요.
local dataKey = "PlayerAccount"
-- 소비한 재화 종류를 number 형태로 변환해서, 1번 인덱스에 기록해요.
local index_1 = -1
if assetType == "FreeAsset" then index_1 = 1
elseif assetType == "PaidAsset" then index_1 = 2
elseif assetType == "SubAsset" then index_1 = 3
end
-- 소비처 종류를 number 형태로 변환해서, 2번 인덱스에 기록해요.
local index_2 = -1
if usedPlace == "SkinShop" then index_2 = 1
elseif usedPlace == "WeaponShop" then index_2 = 2
elseif usedPlace == "Gacha" then index_2 = 3
end
Game:SaveLog(dataKey, index_1, index_2, playerID, value)
end
Game:ConnectEventFunction("SaveLogData", SaveLogData)
📥 기록된 로그 데이터 다운로드
기록된 로그 데이터는, 월드 설정 페이지 > 로그 데이터 관리 페이지에서
CSV 파일로 다운로드 🔽 할 수 있어요.
조회할 데이터를 입력 후, [CSV로 추출하기] 버튼을 눌러주세요.
데이터 키 값
👉 SaveLog, SaveMyLog 함수에 첫번째 인자로 사용되는 키를 입력해주세요.
플레이어 ID
👉 특정 플레이어의 로그 값을 확인하고 싶다면,
마이디토 > 닉네임 옆에서 확인할 수 있는 #000000 로 이루어진 숫자 를 입력해주세요.
👉 전체 플레이어의 로그 값을 확인하고 싶은 경우엔, ‘전체’ 를 체크✅ 하면 돼요.
기간
👉 로그가 기록된 기간 중, 조회하고 싶은 기간을 선택해주세요.
📄 CSV 파일에서 다음 데이터를 얻을 수 있어요.
해당 로그가 기록된 시간 (타임스탬프 & UTC 시간)
플레이어 닉네임 / 플레이어 ID
데이터 키 / 1번 인덱스 / 2번 인덱스 / 기록 값
✍ 기록 데이터 활용
기록된 데이터를 지표 및 밸런싱에 활용해보세요.
✅ 특정 플레이어가 어떤 종류의 재화를, 어떤 소비처에, 얼마만큼 소비했는지를 기록하는 경우,
인기가 없는 소비처를 파악해서, 개선이 필요한 부분을 찾거나
특정 플레이어에게서 부적절한 소비가 있지는 않았는지 확인해볼 수 있어요.
✅ 접속 시간대, 접속 유지 시간 등 시간과 관련된 로그를 기록하고 싶은 경우 ostime 으로 기록해보세요.
기록한 ostime 값은 엑셀에서 다음과 같이 변환하여 확인할 수 있으니 참고해주세요.