Các truy vấn cơ bản để xuất dữ liệu sự kiện Google Analytics 4

Các truy vấn mẫu trong trang này áp dụng cho dữ liệu xuất sự kiện BigQuery cho Google Analytics 4. Xem sổ tay hướng dẫn BigQuery cho Universal Analytics nếu bạn đang tìm kiếm cùng một tài nguyên cho Universal Analytics.

Tất cả truy vấn được liệt kê ở đây đều sử dụng tập dữ liệu mẫu và nên cho ra kết quả hợp lệ. Để sử dụng dữ liệu xuất sự kiện BigQuery của tài sản Google Analytics của riêng bạn, hãy tìm nhận xét -- Replace table trong mỗi truy vấn và thay thế mã nhận dạng tập dữ liệu mẫu. Bạn có thể tìm thấy mã tập dữ liệu của mình bằng cách chuyển đến dự án BigQuery Export trong giao diện người dùng BigQuery. Ví dụ: nếu mã tập dữ liệu BigQuery Export là my- first-gcp-project:analytics_28239234, hãy thay thế:

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

bằng:

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

Truy vấn một phạm vi ngày cụ thể

Để truy vấn một phạm vi ngày cụ thể từ tập dữ liệu xuất sự kiện BigQuery, hãy sử dụng cột giả _TABLE_SUFFIX trong mệnh đề WHERE của truy vấn của bạn. Để biết thêm thông tin, hãy xem bài viết Lọc các bảng đã chọn bằng _TABLE_SUFFIX.

Ví dụ: truy vấn sau đây tính các sự kiện riêng biệt theo ngày và theo tên sự kiện trong một khoảng thời gian cụ thể về ngày và các sự kiện đã chọn:

-- 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;

Số người dùng và số người dùng mới

  • Để biết tổng số người dùng, hãy đếm số lượng user_id riêng biệt. Tuy nhiên, nếu ứng dụng Google Analytics của bạn không gửi lại user_id cho mỗi lượt truy cập hoặc nếu bạn không chắc chắn, hãy đếm số lượng user_pseudo_id riêng biệt.
  • Đối với người dùng mới, bạn có thể thực hiện cùng một cách tính như mô tả ở trên, nhưng đối với các giá trị sau của 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;

Số giao dịch trung bình trên mỗi người mua

Truy vấn sau đây cho biết số lượng giao dịch trung bình trên mỗi người mua.

-- 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';

Giá trị cho một tên sự kiện cụ thể

Cụm từ tìm kiếm sau đây hiển thị event_timestamp cho tất cả sự kiện purchase và giá trị thông số sự kiện liên quan:

-- 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';

Bạn có thể sửa đổi truy vấn trước đó để hiển thị tổng giá trị thông số sự kiện thay vì danh sách:

-- 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 mặt hàng được thêm nhiều nhất vào giỏ hàng

Cụm từ tìm kiếm sau đây cho thấy 10 mặt hàng được thêm vào giỏ hàng nhiều nhất theo nhiều người dùng nhất.

-- 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;

Số lượt xem trang trung bình theo kiểu người mua (người mua so với người dùng không mua)

Cụm từ tìm kiếm sau cho biết số lượt xem trang trung bình của kiểu người mua hàng (người mua so với người dùng không mua):

-- 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;

Trình tự các lượt xem trang

Truy vấn sau cho thấy chuỗi số lượt xem trang do người dùng thực hiện trong các phiên duy nhất:

-- 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;

Danh sách thông số sự kiện

Truy vấn sau đây liệt kê tất cả thông số sự kiện xuất hiện trong tập dữ liệu của bạn:

-- Example: List all available event parameters and count their occurrences.

SELECT
  EP.key AS event_param_key,
  COUNT(*) AS occurrences
FROM
  -- Replace table name.
  `bigquery-public-data.ga4_obfuscated_sample_ecommerce.events_*`, UNNEST(event_params) AS EP
WHERE
  -- Replace date range.
  _TABLE_SUFFIX BETWEEN '20201201' AND '20201202'
GROUP BY
  event_param_key
ORDER BY
  event_param_key ASC;

Tham gia bằng Google Ads

Để truy xuất dữ liệu Google Ads bổ sung cho các sự kiện GA4, hãy thiết lập Dịch vụ chuyển dữ liệu của BigQuery cho Google Ads, sau đó kết hợp collected_traffic_source.gclid từ dữ liệu sự kiện GA4 vào trường gclid của ads_ClickStats_customer_id từ quá trình chuyển dữ liệu sang Google Ads.

Xin lưu ý rằng tính năng xuất dữ liệu sự kiện GA4 sẽ tạo một bảng cho mỗi ngày, trong khi hoạt động chuyển dữ liệu trên Google Ads sẽ điền vào một bảng ads_ClickStats_customer_id duy nhất cho mỗi khách hàng.