웹 SDK이벤트
사용자 속성 관리
사용자의 특성과 행동 패턴을 추적하여 개인화된 서비스와 타겟 마케팅을 구현할 수 있습니다.
🔍 사용자 식별
고유 사용자 추적
고유한 사용자를 식별하고 세션 간 추적을 연결합니다:
// 로그인 시 사용자 ID 설정
AdStage.events.setUserId('user_12345');
// 현재 사용자 ID 확인
const userId = AdStage.events.getUserId();
console.log('현재 사용자 ID:', userId);익명 사용자 추적
로그인하지 않은 사용자도 세션 기반으로 자동 추적됩니다:
// 익명 ID는 SDK에서 자동 생성 및 관리
// 별도 설정이나 조회 API는 제공되지 않습니다
// 세션 기반으로 자동으로 추적됩니다👤 사용자 속성 설정
지원되는 표준 속성
SDK에서 지원하는 표준 사용자 속성입니다:
// 여러 속성 한번에 설정 (권장 방법)
AdStage.events.setUserProperties({
age: '25', // 연령 (문자열)
gender: 'female', // 'male' | 'female' | 'other' | 'unknown'
country: 'KR', // ISO 국가 코드 (ISO 3166-1 alpha-2)
city: 'Seoul', // 도시명
language: 'ko-KR' // 언어 코드 (BCP 47)
});
// 개별 속성 설정 API는 현재 제공되지 않습니다
// 모든 속성은 setUserProperties()를 통해 설정하세요자동 수집되는 속성
SDK가 브라우저에서 자동으로 수집하는 정보:
// 브라우저 언어 설정에서 자동 추출
// navigator.language → language, country 자동 설정
// 예: 'ko-KR' → language: 'ko-KR', country: 'KR'
// 자동 수집된 사용자 정보 확인
const userInfo = AdStage.events.getUserInfo();
console.log(userInfo);
// { language: 'ko-KR', country: 'KR' }
// 타임존 기반 지역 추정은 내부적으로 수행되며
// 별도 API로 노출되지 않습니다속성 제한사항
현재 AdStage Web SDK는 표준 속성만 지원합니다:
// ✅ 지원되는 표준 속성
AdStage.events.setUserProperties({
gender: 'female', // 'male' | 'female' | 'other' | 'unknown'
country: 'KR', // ISO 국가 코드
city: 'Seoul', // 도시명
age: '25', // 연령 (문자열)
language: 'ko-KR' // 언어 코드
});
// ❌ 커스텀 속성은 지원하지 않음
// 대신 이벤트 파라미터를 사용하세요
AdStage.events.track('user_profile_updated', {
subscription_tier: 'premium', // 이벤트 파라미터로 전송
account_type: 'business',
last_login: '2024-01-15'
});📊 사용자 속성 관리
속성 조회 및 관리
// 현재 설정된 사용자 속성 조회
const currentProperties = AdStage.events.getUserProperties();
console.log('현재 사용자 속성:', currentProperties);
// 개별 속성 조회 및 속성 초기화 API는 현재 제공되지 않습니다
// 모든 속성은 getUserProperties()를 통해 일괄 조회하세요
// 속성을 초기화하려면 빈 객체로 설정
AdStage.events.setUserProperties({});지역 정보 활용
// 브라우저 기반 자동 수집 정보 확인
const userInfo = AdStage.events.getUserInfo();
console.log('자동 수집된 사용자 정보:', userInfo);
// { language: 'ko-KR', country: 'KR' }
// 지역 정보는 내부적으로 자동 추정되어 설정됩니다
// 수동으로 더 정확한 정보가 있다면 덮어쓸 수 있습니다
AdStage.events.setUserProperties({
country: 'KR',
city: 'Seoul',
language: 'ko-KR'
});🎯 개인화 활용
사용자 속성 기반 개인화
// 사용자 속성 기반 콘텐츠 추천
function personalizeContent() {
const userProperties = AdStage.events.getUserProperties();
// 연령대별 콘텐츠
if (userProperties.age && parseInt(userProperties.age) < 30) {
showYoungAdultContent();
}
// 지역별 콘텐츠
if (userProperties.country === 'KR') {
showKoreanContent();
}
// 언어별 콘텐츠
if (userProperties.language?.startsWith('ko')) {
setKoreanLanguage();
}
}
// 속성 변경 시 개인화 업데이트
AdStage.events.setUserProperties({
country: 'KR',
language: 'ko-KR',
age: '28'
});
personalizeContent();이벤트와 함께 활용
// 사용자 속성은 모든 이벤트에 자동으로 포함됩니다
AdStage.events.track('page_view', {
page: 'product_detail',
product_id: 'prod_123'
});
// 서버에서 받는 데이터에는 설정된 사용자 속성이 포함됩니다:
// {
// eventName: 'page_view',
// user: {
// gender: 'female',
// country: 'KR',
// city: 'Seoul',
// age: '28',
// language: 'ko-KR'
// },
// params: { page: 'product_detail', product_id: 'prod_123' }
// }
