1. GA4 BigQuery에서 이벤트 데이터의 구조
GA4의 데이터를 BigQuery에서 분석하다 보면 event_params
와 user_properties
라는 두 개의 중요한 배열 필드를 자주 마주하게 됩니다. 이 두 필드는 GA4의 이벤트 기반 데이터에서 핵심적인 역할을 하지만, 각각 다르게 동작하기 때문에 차이를 정확히 이해하는 것이 중요합니다.
이번 글에서는 event_params
와 user_properties
가 무엇인지, 어떤 데이터를 담고 있으며, 어떤 점이 다른지 상세하게 설명하겠습니다.
2. event_params
란?
정의
event_params
는 이벤트(event_name
)와 함께 기록되는 추가적인 정보입니다.- 이벤트를 발생시킬 때마다 해당 이벤트와 관련된 다양한 속성 값을 담고 있습니다.
- 예를 들어, 페이지뷰 이벤트에서는
page_location
,page_referrer
와 같은 데이터가 포함될 수 있습니다. - JSON 형식으로 저장되며,
key
,value
등의 필드로 구성됩니다.
예시
📌 이벤트 데이터 샘플
{
"event_name": "purchase",
"event_params": [
{ "key": "currency", "value": { "string_value": "USD" } },
{ "key": "value", "value": { "double_value": 29.99 } },
{ "key": "coupon", "value": { "string_value": "WINTERSALE" } }
]
}
✅ 주요 특징
- 이벤트가 발생할 때마다 해당 이벤트와 관련된 데이터를
event_params
에서 확인 가능 - 이벤트마다 포함되는 파라미터의 종류와 값이 다름 (예:
purchase
이벤트에는value
,currency
,coupon
등이 포함될 수 있음) - 특정 이벤트에서만 의미 있는 데이터 (예:
search_term
은 검색 이벤트에서만 사용)
3. user_properties
란?
정의
user_properties
는 특정 사용자의 장기적인 특성을 저장하는 속성입니다.- 특정 이벤트에 한정되지 않고, 사용자가 사이트 또는 앱을 사용할 때 지속적으로 적용됩니다.
- 사용자별로 설정되며, 여러 이벤트에서 동일한 값이 유지될 수 있음.
예시
📌 유저 속성 데이터 샘플
{
"user_pseudo_id": "1234567890",
"user_properties": [
{ "key": "user_membership", "value": { "string_value": "gold" } },
{ "key": "user_age", "value": { "int_value": 28 } },
{ "key": "preferred_language", "value": { "string_value": "en" } }
]
}
✅ 주요 특징
- 사용자별로 지속적으로 유지되는 속성
- 여러 이벤트에서 동일한 값으로 유지될 수 있음
- 특정 시점에서 변경될 수 있지만, 모든 이벤트에 영향을 미침 (예:
user_membership
이gold
에서platinum
으로 변경될 경우, 이후의 모든 이벤트에서platinum
으로 반영됨)
4. event_params
와 user_properties
의 차이점
항목 | event_params | user_properties |
---|---|---|
데이터 단위 | 이벤트별로 저장 | 사용자별로 저장 |
유지 기간 | 특정 이벤트에서만 존재 | 사용자가 사이트를 이용하는 동안 유지됨 |
적용 범위 | 개별 이벤트에 한정됨 | 여러 이벤트에 걸쳐 동일한 값으로 유지될 수 있음 |
변경 가능성 | 이벤트마다 다르게 설정 가능 | 특정 시점에서 변경 가능하지만 과거 이벤트에는 영향 없음 |
예시 | purchase 이벤트에서 currency , value 등 저장 | user_membership (예: Gold, Platinum) |
5. 실전 활용 예제
📌 event_params
를 활용한 분석 예시
Q. ‘purchase’ 이벤트에서 가장 많이 사용된 쿠폰 코드는 무엇인가?
SELECT
event_params.key AS param_key,
event_params.value.string_value AS coupon_code,
COUNT(*) AS usage_count
FROM `my_project.analytics_XXXXXX.events_*`,
UNNEST(event_params) AS event_params
WHERE event_name = 'purchase'
AND event_params.key = 'coupon'
GROUP BY coupon_code
ORDER BY usage_count DESC
LIMIT 10;
📌 결과 해석: 특정 쿠폰 코드가 얼마나 자주 사용되었는지 확인할 수 있습니다.
📌 user_properties
를 활용한 분석 예시
Q. ‘Gold’ 등급 이상의 사용자가 가장 많이 실행한 이벤트는 무엇인가?
SELECT
event_name,
COUNT(*) AS event_count
FROM `my_project.analytics_XXXXXX.events_*`,
UNNEST(user_properties) AS user_properties
WHERE user_properties.key = 'user_membership'
AND user_properties.value.string_value IN ('gold', 'platinum')
GROUP BY event_name
ORDER BY event_count DESC
LIMIT 10;
📌 결과 해석: ‘Gold’ 또는 ‘Platinum’ 등급 사용자가 어떤 이벤트를 많이 수행하는지 확인할 수 있습니다.
6. 결론
event_params
는 개별 이벤트에 대한 세부 정보를 담고 있으며, 이벤트가 발생할 때마다 다른 값으로 저장됩니다.user_properties
는 특정 사용자에 대한 정보를 담고 있으며, 사용자의 활동 전반에 걸쳐 유지되는 속성입니다.- 분석할 때
event_params
는 이벤트 기반 세부 분석에,user_properties
는 사용자 기반의 패턴 분석에 활용할 수 있습니다.
이제 GA4 BigQuery 데이터를 분석할 때 event_params
와 user_properties
의 차이를 명확히 이해하고 적절히 활용해보세요! 🎯
답글 남기기