사용자 속성은 언어 환경설정, 지리적 위치와 같은 사용자층을 나눈 세그먼트를 설명합니다. 애널리틱스에서는 일부 사용자 속성을 자동으로 로깅합니다. 추가 속성을 수집하려면 프로젝트당 최대 25개의 추가 사용자 속성을 설정할 수 있습니다. 사용자 속성을 설정하고 등록하는 방법은 맞춤 사용자 속성을 참조하세요.
사용자 속성은 사용자 세분화를 강화하지만 사용자 속성 데이터는 주로 서버 측에서만 사용할 수 있습니다. 측정 프로토콜을 사용하면 서버 측 데이터로 클라이언트 측 측정을 보강할 수 있습니다. 이는 보통 클라이언트 측 솔루션만 사용할 수 없습니다.
예약된 이름
일부 사용자 속성 이름은 이미 예약되어 있으므로 측정에 사용할 수 없습니다.
first_open_timefirst_visit_timelast_deep_link_referreruser_idfirst_open_after_install
또한 사용자 속성 이름은 다음으로 시작할 수 없습니다.
google_ga_firebase_
사용 예시
다음 예시에서 CRM에는 측정에 추가할 사용자 속성 (customer_tier)이 있습니다. customer_tier은 premium 또는 standard 중
하나로 설정할 수 있습니다. 보고서에서 이 사용자 속성을 가져오려면
다음과 같이 하세요.
먼저 클라이언트가 CRM 시스템에 액세스할 수 있는 서버 API 호출과 함께 add_payment_info 이벤트를 전송하도록 합니다.
클라이언트 코드
FirebaseAnalytics.logEvent("add_payment_info")
ServerAPI.addCustomerTier(
FirebaseAnalytics.getAppInstanceId(),
"[{name: \"add_payment_info\"}"]
);
서버는 측정 프로토콜을 사용하여 customer_tier 사용자 속성으로 측정을 보강합니다.
서버 코드
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
function addCustomerTier(appInstanceId, events) {
// Request the customer tier from the CRM.
const customerTier = getCustomerTier(appInstanceId);
const queryParams = `?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`;
fetch(`https://www.google-analytics.com/mp/collect${queryParams}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
"app_instance_id": "APP_INSTANCE_ID",
"user_properties": {
"customer_tier": {
"value": "CUSTOMER_TIER"
}
},
"events": JSON.parse(events)
})
});
}
이 사용자 속성에서는 premium 및 standard의 두 세그먼트를 보고합니다.
측정 프로토콜을 사용하여 이벤트를 전송하는 방법에 대한 자세한 내용은 이벤트 전송을 참고하세요.
타임스탬프 재정의
측정 프로토콜은 요청의 각 사용자 속성에 대해 다음 목록에서 찾은 첫 번째 타임스탬프를 사용합니다.
user_properties에 있는 항목의timestamp_micros입니다.- 요청의
timestamp_micros로, - 측정 프로토콜이 요청을 수신한 시간입니다.
다음 예에서는 요청의 모든 사용자 속성에 적용되는 요청 수준 타임스탬프를 전송합니다. 따라서 측정 프로토콜은 customer_tier 및 customer_group 사용자 속성에 requestUnixEpochTimeInMicros 타임스탬프를 할당합니다.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"user_properties": {
"customer_tier": {
"value": customerTierValue
},
"customer_group": {
"value": customerGroupValue
}
}
}
다음 예에서는 요청 수준 타임스탬프와 customer_tier 사용자 속성의 타임스탬프를 모두 전송합니다. 따라서 측정 프로토콜은 customer_tier에 customerTierUnixEpochTimeInMicros 타임스탬프를 할당하고 customer_group에 requestUnixEpochTimeInMicros 타임스탬프를 할당합니다.
"timestamp_micros": requestUnixEpochTimeInMicros,
"user_properties": {
"customer_tier": {
"value": customerTierValue,
"timestamp_micros": customerTierUnixEpochTimeInMicros
},
"customer_group": {
"value": customerGroupValue
}
}