Kueri dasar untuk ekspor data peristiwa Google Analytics 4

Contoh kueri di halaman ini berlaku untuk data ekspor peristiwa BigQuery untuk Google Analytics 4. Lihat Cookbook BigQuery untuk Universal Analytics jika Anda mencari referensi yang sama untuk Universal Analytics.

Semua kueri yang tercantum di sini menggunakan set data sampel dan akan memberikan hasil yang valid. Untuk menggunakan data ekspor peristiwa BigQuery properti Google Analytics Anda sendiri, cari komentar -- Replace table di setiap kueri dan ganti ID set data sampel. Anda dapat menemukan ID set data dengan membuka project BigQuery Export di UI BigQuery. Misalnya, jika ID set data BigQuery Export adalah my- first-gcp-project:analytics_28239234, ganti:

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

dengan:

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

Membuat kueri untuk rentang tanggal tertentu

Untuk membuat kueri rentang tanggal tertentu dari set data ekspor peristiwa BigQuery, gunakan kolom pseudo _TABLE_SUFFIX di klausa WHERE kueri Anda. Untuk mendapatkan info selengkapnya, lihat Memfilter tabel yang dipilih menggunakan _TABLE_SUFFIX.

Misalnya, kueri berikut menghitung peristiwa unik menurut tanggal dan nama peristiwa untuk periode hari tertentu serta peristiwa yang dipilih:

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

Jumlah pengguna dan jumlah pengguna baru

  • Untuk mendapatkan total jumlah pengguna, hitung jumlah user_id unik. Namun, jika klien Google Analytics Anda tidak mengirim kembali user_id dengan setiap hit atau jika Anda tidak yakin, hitung jumlah user_pseudo_id unik.
  • Untuk pengguna baru, Anda dapat menggunakan pendekatan penghitungan yang sama seperti yang dijelaskan di atas, tetapi untuk nilai event_name berikut:
-- 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;

Jumlah rata-rata transaksi per pembeli

Kueri berikut menunjukkan jumlah rata-rata transaksi per pembeli.

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

Nilai untuk nama peristiwa tertentu

Kueri berikut menampilkan event_timestamp untuk semua peristiwa purchase dan nilai parameter peristiwa yang terkait:

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

Kueri sebelumnya dapat diubah untuk menampilkan total nilai parameter peristiwa, bukan daftar:

-- 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 item teratas yang ditambahkan ke keranjang

Kueri berikut menampilkan 10 item teratas yang ditambahkan ke keranjang menurut jumlah pengguna terbanyak.

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

Jumlah rata-rata kunjungan halaman menurut jenis pembeli (pembeli vs bukan pembeli)

Kueri berikut menunjukkan jumlah rata-rata jenis pembeli kunjungan halaman (pembeli vs bukan pembeli) dari total pengguna:

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

Urutan kunjungan halaman

Kueri berikut menampilkan urutan kunjungan halaman yang dibuat oleh pengguna selama sesi unik:

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

Daftar parameter peristiwa

Kueri berikut mencantumkan semua parameter peristiwa yang muncul di set data Anda:

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

Bergabung dengan Google Ads

Agar dapat mengambil data Google Ads tambahan untuk peristiwa GA4 Anda, siapkan BigQuery Data Transfer Service untuk Google Ads, lalu gabungkan collected_traffic_source.gclid dari data peristiwa GA4 ke kolom gclid ads_ClickStats_customer_id dari transfer Google Ads.

Perhatikan bahwa ekspor data peristiwa GA4 membuat tabel untuk setiap hari, sementara transfer Google Ads mengisi satu tabel ads_ClickStats_customer_id per pelanggan.