사용자 식별자와 속성
사용자 식별자 관리사용자 식별자는 사용자를 고유하게 식별하는 목적으로 사용합니다. 사용자 식별자의 의미와 중요성, 선택하는 기준 등에 대해서는 사용자 식별자 관리하기 문서를 참고하시기 바랍니다.
사용자 식별자
서버 측 SDK는 사용자를 특정할 수 없기 때문에 핵클의 기능을 호출할 때 항상 사용자 식별자를 파라미터로 직접 전달해야 합니다. 전달하는 식별자는 직접 관리하는 Primary Key, 디바이스 식별자, 회원 아이디, 이메일, 해시값 등이 될 수 있습니다.
핵클에서 제공하는 식별자
핵클에서 기본으로 제공하는 식별자는 user_id와 device_id 입니다.
from hackle.model import HackleUser
user = HackleUser.builder() \
.user_id('user_id') \ # 사용자 ID
.device_id('device_id') \ # 디바이스 ID
.build()
# 테스트 그룹 분배
variation = hackle_client.variation(experiment_key=42, user=user)
# 사용자 이벤트 전송
hackle_client.track(event=event, user=user)추가 식별자
기본 식별자(device_id, user_id) 외의 식별자 타입을 추가할 경우 아래와 같이 설정할 수 있습니다.
추가 식별자는 핵클 통합 식별자로 통합되지 않습니다.
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는 사용자 속성을 추가할 수 있도록 지원합니다.
- 속성은 속성명(key)과 속성값(value)을 한 쌍으로 보내야 합니다.
- 추가 가능한 속성 개수는 최대 64개입니다.
구분 | 타입 | 제약사항 |
|---|---|---|
속성 명(key) |
|
|
속성 값(value) |
|
|
사용자 속성 추가
사용자 속성은 간단하게 추가할 수 있습니다.
테스트 그룹 분배, 기능 플래스, 사용자 이벤트 전송 등 핵클 기능을 호출할 때 파라미터로 전달하는 사용자 객체에 속성을 추가하면
해당 기능 호출과 함께 사용자 속성도 추가됩니다.
이 때 PropertyOperations 객체에 set 을 이용하여 속성을 추가하는 것과 동일하게 동작합니다.
아래 예시에서는 세 가지 속성(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)사용자 속성 설정
다른 핵클 기능을 호출하지 않고 사용자의 속성만 추가, 제거 할 수 있습니다.
지원하는 함수 | 설명 |
|---|---|
| 사용자 속성을 설정합니다. 속성 키에 이미 설정한 속성값이 있는 경우 덮어씁니다 |
| 사용자 속성 값을 한번만 설정합니다. 속성키에 대한 속성이 이미 있는 경우 무시됩니다. |
| 사용자 속성을 제거합니다. |
| 사용자의 모든 속성을 제거합니다. |
설정하고 싶은 사용자 속성으로 PropertyOperations 객체를 인스턴스화 합니다.
다음 update_user_properties 를 호출하여 사용자 속성을 업데이트 합니다. 한 번에 여러개의 속성을 설정할 수도 있습니다.
from hackle.model import HackleUser, PropertyOperations
user = HackleUser.builder() \
.device_id('ae2182e0') \
.build()
operations = PropertyOperations.builder() \
.set("age", 42) \
.set("grade", "GOLD") \
.set_once("sign_up_date", "2020-07-03") \
.unset("membership_type") \
.build()
client.update_user_properties(user, operations)Updated 20 days ago
