Web SDK事件
使用者屬性管理
透過追蹤使用者的特徵與行為模式,可以實現個人化服務與精準行銷。
🔍 使用者識別
透過使用者屬性進行識別
AdStage Web SDK 不提供另外的使用者 ID 設定 API。取而代之的是,透過使用者屬性(setUserProperties)記錄使用者的特徵,並將其運用於分群與漏斗分析:
// 登入時設定使用者屬性
AdStage.events.setUserProperties({
gender: 'male', // 'male' | 'female' | 'other' | 'unknown'
country: 'KR', // ISO 國家代碼
city: 'Seoul', // 城市名稱
age: '25-34', // 年齡層
language: 'ko-KR' // 語言代碼
});
// 確認目前已設定的使用者屬性
const userProperties = AdStage.events.getUserProperties();
console.log('目前使用者屬性:', userProperties);匿名使用者追蹤
未登入的使用者也會以工作階段為基礎自動被追蹤:
// 匿名使用者追蹤由 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' }
// }
