사용자 식별자와 속성
사용자 식별자 관리
사용자 식별자는 사용자를 고유하게 식별하는 목적으로 사용합니다.
사용자 식별자의 의미와 중요성, 선택하는 기준 등에 대해서는 사용자 식별자 관리하기 문서를 참고하시기 바랍니다.
사용자 식별자
서버 측 SDK는 사용자를 특정할 수 없기 때문에 항상 사용자 객체를 파라미터로 직접 전달해야 합니다.
전달하는 사용자의 식별자는 직접 관리하는 Primary Key, 디바이스 식별자, 회원 아이디, 이메일, 해시값 등이 될 수 있습니다.
const user = {
userId: "143", // 사용자 ID (핵클 통합 식별자 사용가능)
deviceId: "ae2182e0", // 디바이스 ID (핵클 통합 식별자 사용가능)
identifiers: {
myCustomId: "42" // Custom ID
}
}
// 테스트 그룹 분배
hackleClient.variation(experimentKey, user);
// 사용자 이벤트 전송
hackleClient.track("purchase", user);
사용자 속성(Property)
핵클 SDK는 사용자(User) 객체에 속성을 추가할 수 있도록 지원합니다.
- 속성은 속성명(key)과 속성값(value)을 한 쌍으로 보내야 합니다.
- 사용자 객체에 추가 가능한 속성 개수는 최대 64개입니다.
속성명(key)
- 일반적인 변수명처럼 만들되 식별하기 쉽게 만드는 것을 권장합니다.
- 글자수 제한은 64자입니다. (64 characters)
- 대소문자를 구분하지 않습니다. 예를 들어 AGE와 age는 동일한 속성명으로 인식합니다.
속성값(value)
- value는 boolean, string, number 타입을 지원합니다.
- string 타입인 경우 글자수 제한은 64자입니다. (64 characters)
- string 타입은 대소문자를 구분합니다. 예를 들어 APPLE과 apple은 서로 다른 속성값으로 인식합니다.
- number 타입인 경우 정수 최대 15자리, 소수점 최대 6자리를 지원합니다.
예시
사용자(User) 객체는 테스트 그룹 분배, 기능 플래그 결정, 사용자 이벤트 전송에서 파라미터로 사용됩니다.
아래 예시에서는 세 가지 속성(age
, grade
, is_paying_user
)을 추가한 것을 확인할 수 있습니다.
const user = {
userId: "143",
deviceId: "ae2182e0",
properties: {
age: 30,
grade: "GOLD",
is_paying_user: false
}
}
// 테스트 그룹 분배
hackleClient.onReady(function() {
const variation = hackleClient.variation(experimentKey, user);
});
// 기능 플래그 결정
hackleClient.onReady(function() {
const featureOn = hackleClient.isFeatureOn(featureKey, user);
});
// 사용자 이벤트 전송
hackleClient.onReady(function() {
hackleClient.track({ key: "purchase" }, user);
});
사용자 속성 업데이트
사용자 속성을 추가, 제거 할 수 있습니다.
설정하고 싶은 사용자 속성으로 PropertyOperations
객체를 인스턴스화 합니다. 다음 updateUserProperties
를 호출하여 사용자 속성을 업데이트 합니다. 한번에 여러개의 속성을 설정할 수도 있습니다.
import { PropertyOperationsBuilder } from "@hackler/javascript-sdk"
const user = {
userId: "143",
deviceId: "ae2182e0",
}
const operations = new PropertyOperationsBuilder()
.set("age", 42)
.set("grade", "GOLD")
.setOnce("sign_up_date", "2020-07-03")
.build()
hackleClient.updateUserProperties(operations, user)
set
사용자 속성을 설정합니다. 설정한 속성값으로 덮어씁니다.
const operations = new PropertyOperationsBuilder()
.set("age", 42)
.set("grade", "GOLD")
.build();
hackleClient.updateUserProperties(operations, user);
setOnce
사용자 속성 값을 한번만 설정합니다. 속성키에 대한 속성이 이미 있는 경우 setOnce
는 무시됩니다. 예를들어 사용자에 대한 가입일, 초기 가입 위치 등을 설정할 수 있습니다.
const operations = new PropertyOperationsBuilder()
.setOnce("sign_up_date", "2020-07-03")
.setOnce("initial_location", "Seoul")
.build();
hackleClient.updateUserProperties(operations, user);
<script>
const operations = new Hackle.PropertyOperationsBuilder()
.setOnce("sign_up_date", "2020-07-03")
.setOnce("initial_location", "Seoul")
.build();
hackleClient.updateUserProperties(operations);
</script>
unset
설정된 사용자 속성을 제거합니다.
const operations = new PropertyOperationsBuilder()
.unset("membership_type")
.build();
hackleClient.updateUserProperties(operations, user);
<script>
const operations = new Hackle.PropertyOperationsBuilder()
.unset("membership_type")
.build();
hackleClient.updateUserProperties(operations);
</script>
clearAll
사용자의 모든 속성을 제거합니다.
const operations = new PropertyOperationsBuilder()
.clearAll()
.build();
hackleClient.updateUserProperties(operations, user);
<script>
const operations = new Hackle.PropertyOperationsBuilder()
.clearAll()
.build();
hackleClient.updateUserProperties(operations);
</script>
Updated about 23 hours ago