GA4 BigQuery 데이터 분석: event_params vs user_properties 차이점 완벽 정리

1. GA4 BigQuery에서 이벤트 데이터의 구조

GA4의 데이터를 BigQuery에서 분석하다 보면 event_paramsuser_properties라는 두 개의 중요한 배열 필드를 자주 마주하게 됩니다. 이 두 필드는 GA4의 이벤트 기반 데이터에서 핵심적인 역할을 하지만, 각각 다르게 동작하기 때문에 차이를 정확히 이해하는 것이 중요합니다.

이번 글에서는 event_paramsuser_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_membershipgold에서 platinum으로 변경될 경우, 이후의 모든 이벤트에서 platinum으로 반영됨)

4. event_paramsuser_properties의 차이점

항목event_paramsuser_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_paramsuser_properties의 차이를 명확히 이해하고 적절히 활용해보세요! 🎯

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다