사용자 식별자와 속성
사용자 식별자 관리사용자 식별자는 사용자를 고유하게 식별하는 목적으로 사용합니다. 사용자 식별자의 의미와 중요성, 선택하는 기준 등에 대해서는 사용자 식별자 관리하기 문서를 참고하시기 바랍니다.
사용자 식별자
직접 관리하는 사용자 식별자 사용
서버 측 SDK는 사용자를 특정할 수 없기 때문에 항상 사용자 식별자를 파라미터로 직접 전달해야 합니다. 전달하는 식별자는 직접 관리하는 Primary Key, 디바이스 식별자, 회원 아이디, 이메일, 해시값 등이 될 수 있습니다.
예시
테스트 그룹 분배 후 사용자 이벤트 전송을 하는 상황을 예로 들면 다음과 같습니다.
from hackle.model import HackleUser
user = HackleUser.builder() \
.device_id('ae2182e0') \
.build()
# 테스트 그룹 분배
variation = hackle_client.variation(experiment_key=42, user=user)
# 사용자 이벤트 전송
hackle_client.track(event=event, user=user)추가 식별자
from hackle.model import HackleUser
user = HackleUser.builder() \
.user_id('143') \ # 사용자 ID (핵클 통합 식별자 사용가능)
.device_id('ae2182e0') \ # 디바이스 ID (핵클 통합 식별자 사용가능)
.identifier('my_custom_id', '42') \ # Custom ID
.build()속성(Property)
핵클 SDK는 사용자(User) 객체에 속성을 추가할 수 있도록 지원합니다.
- 속성은 속성명(key)과 속성값(value)을 한 쌍으로 보내야 합니다.
- 사용자 객체에 추가 가능한 속성 개수는 최대 64개입니다.
속성명 (key)
- 글자수 제한은 128자입니다. (128 characters)
- 대소문자를 구분하지 않습니다.
- 예를 들어 AGE와 age는 동일한 속성명으로 인식합니다.
속성값 (value)
지원 타입 | 주의 사항 |
|---|---|
boolean | |
string | 글자수 제한은 1024자입니다. (1024 characters)
속성 값은 대소문자를 구분합니다.
|
number | 정수 최대 15자리, 소수점 최대 6자리를 지원합니다. |
사용자 객체 생성 예시
사용자(User) 객체는 테스트 그룹 분배, 기능 플래그 결정, 사용자 이벤트 전송에서 파라미터로 사용됩니다.
아래 예시에서는 세 가지 속성(age, grade, is_paying_user)을 추가한 것을 확인할 수 있습니다.
from hackle.model import HackleUser
user = HackleUser.builder() \
.device_id('ae2182e0') \
.property('age', 30) \
.property('grade', 'GOLD') \
.property('is_paying_user', False) \
.build()
# 테스트 그룹 분배
variation = hackle_client.variation(experiment_key, user)
# 기능 플래그 결정
feature_on = hackle_client.is_feature_on(feature_key, user)
# 사용자 이벤트 전송
hackle_client.track(event, user)사용자 속성 설정
테스트 분배나 이벤트 전송 등 핵클 기능을 호출 시 전달된 User 속성은 자동으로 대시보드에 반영됩니다.
별도로 기능 호출 없이 속성을 갱신하거나, 특정 속성을 제거하는 등 속성 관련 처리가 필요하다면 사용자 속성 설정 메서드를 명시적으로 호출해 주세요.
set
속성값을 덮어씁니다.
user = HackleUser.builder() \
.device_id('ae2182e0') \
.build()
operations = PropertyOperations.builder() \
.set("age", 42) \
.set("grade", "GOLD") \
.build()
client.update_user_properties(user, operations)setOnce
속성을 한 번만 설정합니다. 이미 속성이 존재한다면 설정되지 않습니다.
user = HackleUser.builder() \
.device_id('ae2182e0') \
.build()
operations = PropertyOperations.builder() \
.set_once("sign_up_date", "2020-07-03") \
.build()
client.update_user_properties(user, operations)unset
특정 속성을 제거합니다.
user = HackleUser.builder() \
.device_id('ae2182e0') \
.build()
operations = PropertyOperations.builder() \
.unset("membership_type") \
.build()
client.update_user_properties(user, operations)clearAll
모든 속성을 제거합니다.
user = HackleUser.builder() \
.device_id('ae2182e0') \
.build()
operations = PropertyOperations.builder() \
.clear_all() \
.build()
client.update_user_properties(user, operations)Updated about 5 hours ago
