사용자 식별자와 속성

📘

사용자 식별자 관리

사용자 식별자는 사용자를 고유하게 식별하는 목적으로 사용합니다. 사용자 식별자의 의미와 중요성, 선택하는 기준 등에 대해서는 사용자 식별자 관리하기 문서를 참고하시기 바랍니다.

사용자 식별자

SDK에서 관리하는 식별자 사용

Android SDK는 디바이스의 식별자를 관리하는 기능을 포함하고 있습니다. 따라서 사용자 식별자를 별도로 전달하지 않아도 사용자를 자동으로 식별할 수 있습니다.

SDK에서 관리하는 식별자를 얻는 방법은 다음과 같습니다.

// 내부적으로 관리되는 디바이스ID 가져오기
val deviceId = hackleApp.deviceId

// 내부적으로 관리되는 세션 ID 가져오기
val sessionId = hackleApp.sessionId

// 설정한 사용자 정보 모두 가지고 오기
val user = hackleApp.user
// 내부적으로 관리되는 디바이스ID 가져오기
String deviceId = hackleApp.getDeviceId();

// 내부적으로 관리되는 세션 ID 가져오기
String sessionId = hackleApp.getSessionId();

// 설정한 사용자 정보 모두 가지고 오기
User user = hackleApp.getUser();

사용자 식별자 추가

로그인 한 사용자의 식별자를 설정하실 수 있습니다. 디바이스 식별자를 직접 관리하는 경우 따로 설정할 수 있습니다.

// 1. 로그인 한 사용자 ID 추가
hackleApp.setUserId("LOGIN_ID")

// 2. 디바이스 ID 변경
hackleApp.setDeviceId("CUSTOM_DEVICE_ID")
// 1. 로그인 한 사용자 ID 추가
hackleApp.setUserId("LOGIN_ID");

// 2. 디바이스 ID 변경
hackleApp.setDeviceId("CUSTOM_DEVICE_ID");

추가 식별자

기본 식별자 외의 추가 식별자는 아래 코드를 통해 설정할 수 있습니다.

import io.hackle.sdk.common.User
  
val user = User.builder()
    .userId("143")                   // 사용자 ID (핵클 통합 식별자 사용가능)
    .deviceId("ae2182e0")            // 디바이스 ID (핵클 통합 식별자 사용가능)
    .identifier("myCustomId", "42")  // Custom ID
    .build()
  
hackleApp.setUser(user)
import io.hackle.sdk.common.User
  
User user = User.builder()
    .userId("143")                   // 사용자 ID (핵클 통합 식별자 사용가능)
    .deviceId("ae2182e0")            // 디바이스 ID (핵클 통합 식별자 사용가능)
    .identifier("myCustomId", "42")  // Custom ID
    .build();
  
hackleApp.setUser(user);

사용자 속성(Property)

핵클 SDK는 사용자 속성을 추가할 수 있도록 지원합니다.

  • 속성은 속성명(key)과 속성값(value)으로 구성되어 있습니다.
  • 추가 가능한 속성 개수는 최대 64개입니다.

속성명(key)

  • 일반적인 변수명처럼 만들되 식별하기 쉽게 만드는 것을 권장합니다.
  • 글자수 제한은 64자입니다. (64 characters)
  • 대소문자를 구분하지 않습니다. 예를 들어 AGE와 age는 동일한 속성명으로 인식합니다.

속성값(value)

  • value는 boolean, string, number 타입을 지원합니다.
  • string 타입인 경우 글자수 제한은 64자입니다. (64 characters)
  • string 타입은 대소문자를 구분합니다. 예를 들어 APPLE과 apple은 서로 다른 속성값으로 인식합니다.
  • number 타입인 경우 정수 최대 15자리, 소수점 최대 6자리를 지원합니다.

사용자 속성 설정

사용자 속성을 추가, 제거 할 수 있습니다.

설정하고 싶은 사용자 속성으로 PropertyOperations 객체를 인스턴스화 합니다. 다음 updateUserProperties 를 호출하여 사용자 속성을 업데이트 합니다. 한번에 여러개의 속성을 설정할 수도 있습니다.

import io.hackle.sdk.common.PropertyOperations;

PropertyOperations operations = PropertyOperations.builder()
    .set("age", 42)
    .set("grade", "GOLD")
    .setOnce("sign_up_date", "2020-07-03")
    .build();

hackleApp.updateUserProperties(operations);

set

사용자 속성을 설정합니다. 설정한 속성값으로 덮어씁니다.

import io.hackle.sdk.common.PropertyOperations;

PropertyOperations operations = PropertyOperations.builder()
    .set("age", 42)
    .set("grade", "GOLD")
    .build();

hackleApp.updateUserProperties(operations);

setOnce

사용자 속성 값을 한번만 설정합니다. 속성키에 대한 속성이 이미 있는 경우 setOnce 는 무시됩니다. 예를들어 사용자에 대한 가입일, 초기 가입 위치 등을 설정할 수 있습니다.

import io.hackle.sdk.common.PropertyOperations;

PropertyOperations operations = PropertyOperations.builder()
    .setOnce("sign_up_date", "2020-07-03")
    .setOnce("initial_location", "Seoul")
    .build();

hackleApp.updateUserProperties(operations);

unset

설정된 사용자 속성을 제거합니다.

import io.hackle.sdk.common.PropertyOperations;

PropertyOperations operations = PropertyOperations.builder()
    .unset("membership_type")
    .build();

hackleApp.updateUserProperties(operations);

clearAll

사용자의 모든 속성을 제거합니다.

import io.hackle.sdk.common.PropertyOperations;

PropertyOperations operations = PropertyOperations.clearAll();

hackleApp.updateUserProperties(operations);