Google 애널리틱스 4 이벤트 데이터 내보내기의 기본 쿼리

이 페이지의 샘플 쿼리는 Google 애널리틱스 4용 BigQuery 이벤트 내보내기 데이터에 적용됩니다. 유니버설 애널리틱스용 동일한 리소스를 찾고 있다면 유니버설 애널리틱스용 BigQuery 설명서를 참고하세요.

여기에 표시된 모든 쿼리는 샘플 데이터 세트를 사용하며 유효한 결과를 생성합니다. 자체 Google 애널리틱스 속성의 BigQuery 이벤트 내보내기 데이터를 사용하려면 각 쿼리에서 -- Replace table 댓글을 찾아 샘플 데이터 세트 ID를 대체하세요. BigQuery UI의 BigQuery Export 프로젝트로 이동하여 데이터 세트 ID를 찾을 수 있습니다. 예를 들어 BigQuery 내보내기 데이터 세트 ID가 my- first-gcp-project:analytics_28239234인 경우 다음 코드를

  -- Replace table
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`

다음 코드로 대체하세요.

  -- Replace table
  `my-first-gcp-project.analytics_28239234.events_*`

특정 기간 쿼리하기

BigQuery 이벤트 내보내기 데이터 세트에서 특정 기간을 쿼리하려면 쿼리의 WHERE 절에 _TABLE_CAMPAIGNS 의사 열을 사용하세요. 자세한 내용은 _TABLE_DIFM을 사용하여 선택한 테이블 필터링을 참고하세요.

예를 들어 다음 쿼리는 특정 기간(일) 및 선택한 이벤트의 날짜 및 이벤트 이름별로 고유 이벤트 수를 계산합니다.

-- Example: Query a specific date range for selected events.
--
-- Counts unique events by date and by event name for a specifc period of days and
-- selected events(page_view, session_start, and purchase).

SELECT
  event_date,
  event_name,
  COUNT(*) AS event_count
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name IN ('page_view', 'session_start', 'purchase')
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY 1, 2;

사용자 수 및 신규 사용자 수

  • 총 사용자 수를 가져오려면 고유 user_id 수를 계산합니다. 하지만 Google 애널리틱스 클라이언트에서 각 조회와 함께 user_id를 전송하지 않거나 확실하지 않은 경우 고유 user_pseudo_id 수를 계산합니다.
  • 신규 사용자의 경우 위에서 설명한 것과 동일한 계산 방식을 사용할 수 있지만 다음 event_name 값의 경우
-- Example: Get 'Total User' count and 'New User' count.

WITH
  UserInfo AS (
    SELECT
      user_pseudo_id,
      MAX(IF(event_name IN ('first_visit', 'first_open'), 1, 0)) AS is_new_user
    -- Replace table name.
    FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
    -- Replace date range.
    WHERE _TABLE_SUFFIX BETWEEN '20201101' AND '20201130'
    GROUP BY 1
  )
SELECT
  COUNT(*) AS user_count,
  SUM(is_new_user) AS new_user_count
FROM UserInfo;

구매자 유형당 평균 거래수

다음 쿼리는 구매자당 평균 거래 수를 보여줍니다.

-- Example: Average number of transactions per purchaser.

SELECT
  COUNT(*) / COUNT(DISTINCT user_pseudo_id) AS avg_transaction_per_purchaser
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name IN ('in_app_purchase', 'purchase')
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201231';

특정 이벤트 이름의 값

다음 쿼리는 모든 purchase 이벤트 및 연결된 이벤트 매개변수 값의 event_timestamp를 보여줍니다.

-- Example: Query values for a specific event name.
--
-- Queries the individual timestamps and values for all 'purchase' events.

SELECT
  event_timestamp,
  (
    SELECT COALESCE(value.int_value, value.float_value, value.double_value)
    FROM UNNEST(event_params)
    WHERE key = 'value'
  ) AS event_value
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202';

목록 대신 이벤트 매개변수 값의 합계를 표시하도록 이전 쿼리를 수정할 수 있습니다.

-- Example: Query total value for a specific event name.
--
-- Queries the total event value for all 'purchase' events.

SELECT
  SUM(
    (
      SELECT COALESCE(value.int_value, value.float_value, value.double_value)
      FROM UNNEST(event_params)
      WHERE key = 'value'
    ))
    AS event_value
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'purchase'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202';

장바구니에 추가된 상위 10개 상품

다음 쿼리는 가장 많은 사용자 수를 기준으로 장바구니에 추가된 상위 10개 상품을 보여줍니다.

-- Example: Top 10 items added to cart by most users.

SELECT
  item_id,
  item_name,
  COUNT(DISTINCT user_pseudo_id) AS user_count
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_web_ecommerce.events_*`, UNNEST(items)
WHERE
  -- Replace date range.
  _TABLE_SUFFIX BETWEEN '20201101' AND '20210131'
  AND event_name IN ('add_to_cart')
GROUP BY
  1, 2
ORDER BY
  user_count DESC
LIMIT 10;

구매자 유형별 평균 제품 페이지 조회수(구매자 및 비구매자)

다음 쿼리는 사용자의 평균 페이지 조회 구매자 유형(구매자 및 비구매자) 수를 보여줍니다.

-- Example: Average number of pageviews by purchaser type.

WITH
  UserInfo AS (
    SELECT
      user_pseudo_id,
      COUNTIF(event_name = 'page_view') AS page_view_count,
      COUNTIF(event_name IN ('in_app_purchase', 'purchase')) AS purchase_event_count
    -- Replace table name.
    FROM `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
    -- Replace date range.
    WHERE _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
    GROUP BY 1
  )
SELECT
  (purchase_event_count > 0) AS purchaser,
  COUNT(*) AS user_count,
  SUM(page_view_count) AS total_page_views,
  SUM(page_view_count) / COUNT(*) AS avg_page_views,
FROM UserInfo
GROUP BY 1;

페이지 조회의 시퀀스

다음 쿼리는 고유 세션 동안 사용자의 페이지 조회의 시퀀스를 보여줍니다.

-- Example: Sequence of pageviews.

SELECT
  user_pseudo_id,
  event_timestamp,
  (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS ga_session_id,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location')
    AS page_location,
  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_title') AS page_title
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`
WHERE
  event_name = 'page_view'
  -- Replace date range.
  AND _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
ORDER BY
  user_pseudo_id,
  ga_session_id,
  event_timestamp ASC;