使用 Google Analytics (分析) 4 和 BigQuery 評估效能及進行偵錯

瞭解如何將網站體驗指標資料傳送至 Google Analytics 4 資源,以及如何將資料匯出至 BigQuery 和 Looker Studio 進行分析。

Google 提供多項工具,:Google 搜尋 控制台PageSpeed 洞察 (PSI) 和 Chrome 使用者體驗 檢舉 (CrUX),讓開發人員查看網站在核心 Web 上的表現 實際使用者指標中 欄位

這些工具非常實用,可以用來概略說明 以及實際效能,而且不需要任何設定即可開始使用。

然而,卻有幾項重要原因,您可能會不想依賴這些原則 評估網站成效:

  • 以 CrUX 為基礎的工具會以每月或過去 28 天為時間範圍回報資料。 這代表您必須在完成變更後,等待很長一段時間才能 就可以看到結果
  • CrUX 型工具只能依少數維度進行區隔,例如: 國家/地區、連線類型和裝置類別 (電腦或行動裝置)。禁止事項 按貴商家專屬的維度劃分資料 (例如:互動參與度) 特定實驗群組的使用者、使用者等)
  • 透過 CrUX 型工具,您可以得知成效「內容」,但無法判斷成效 。你可以使用數據分析工具傳送額外資料,以便追蹤 以及對問題進行偵錯

因此,我們建議所有網站擁有者監控 Core Web Vitals 指標 和既有的數據分析工具這篇文章將說明如何免費使用 並使用 Google 提供的工具來達成這個目標

完成所有設定後,您就能建立如下所示的資訊主頁:

Web Vitals 連接器報表螢幕截圖

Web Vitals 連接器報表螢幕截圖

如想透過圖像概略瞭解這裡說明的所有步驟,請參閱我們在 2021 年 Google I/O 大會上發表的演講

測量

您隨時可透過 Google Analytics 自訂指標 這是幾項 Google Analytics 新功能 4 (GA4),開發人員可 但這仍是件令人興奮的事

雖然 Google Analytics 網頁介面有強大的分析工具 想突破原始事件資料存取功能的強大功能和靈活性 你原本就知道的語言為何?

如要開始使用 Google Analytics 4 和 BigQuery 評估 Core Web Vitals, 您必須做三件事

  1. 建立 Google Analytics 4 資源 「BigQuery 專案」
  2. 啟用 BigQuery 匯出功能 通用 Analytics 資源設定中,這樣收到的所有資料都會 以自動填入資料。
  3. 新增 web-vitals JavaScript 新增至網站,以便你評估 Core Web Vitals 指標 將資料傳送至 Google Analytics 4,包括歸因資料

分析

設定完成後,您應該就會在 BigQuery 中看到填入的事件資料 介面,接著應可查詢如下資料:

SELECT * FROM `my_project_id.analytics_XXXXX.events_*`
WHERE event_name IN ('LCP', 'INP', 'CLS')

以下是該查詢的結果預覽:

BigQuery 中的網站體驗事件資料

查詢 Web Vitals 資料

開始查詢網站體驗指標事件資料前,請務必先 瞭解資料的匯總方式

最重要的是,在某些情況下,系統需要計算多個事件。 可以是 已接收 以便在相同頁面上查看同一指標如果指標值 並回報更新後的值 (發生 CLS 的情況)。

對於 Web Vitals 事件,最後傳送的值一律是最準確的值,因此 執行任何分析前,請務必單獨篩選出這些值。 Web-Vitals JavaScript 程式庫提供的程式碼片段,可傳送資料給 Google Analytics 4 為每個指標傳送專屬 ID,因此您可以使用 後續查詢,將查詢結果限制為僅限每個 指標 ID:

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)

請注意,本文提及的所有其他查詢的開頭都是 子查詢。

查詢範例

以下幾個章節將列舉幾個常見的 Web Vitals 查詢範例 決定要執行的版本

整個網站上的 LCP、INP 和 CLS 比例為 75% (第 75 個百分位數)

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  metric_name,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS p75,
  COUNT(1) as count
FROM (
  SELECT
    metric_name,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
  FROM web_vitals_events
)
GROUP BY 1

從最高到最低的所有個別 LCP 值

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
FROM web_vitals_events
WHERE metric_name = 'LCP'
ORDER BY metric_value DESC
# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  page_path,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS LCP,
  COUNT(1) as count
FROM (
  SELECT
    REGEXP_SUBSTR((SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location"), r'\.com(\/[^?]*)') AS page_path,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
  FROM web_vitals_events
  WHERE metric_name = 'LCP'
)
GROUP BY 1
ORDER BY count DESC
LIMIT 10

CLS 最低的 10 個網頁 (第 75 個百分位數)

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  page_path,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS CLS,
  COUNT(1) as count
FROM (
  SELECT
    REGEXP_SUBSTR((SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location"), r'\.com(\/[^?]*)') AS page_path,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
  FROM web_vitals_events
  WHERE metric_name = 'CLS'
)
GROUP BY 1
HAVING count > 50 # Limit to relatively popular pages
ORDER BY CLS DESC
LIMIT 10

偵錯

先前的查詢說明如何查詢 Web Vitals 指標資料 瞭解目前成效及長期趨勢但 如果成效比預期還差,您該怎麼做 為什麼?

在無法採取行動的情況下,瞭解自己的「何種」分數對於解決問題沒有幫助 來修正問題

請參閱「偵錯領域中的效能」一文 也可以使用數據分析資料傳送額外偵錯資訊如果發生以下情況: 按照文章中詳述的操作說明,應該會看到偵錯 資訊也會顯示在 BigQuery 中

查詢範例

下列查詢說明如何使用 debug_target 事件參數 找出效能問題的根本原因

影響 CLS 的熱門元素

debug_target 是 CSS 選取器字串,可對應至上面的元素 與指標值最相關的頁面

透過 CLS,debug_target 代表最大的 推動 CLS 值的版面配置發生位移如果沒有任何元素位移, debug_target的值會是 null

下列查詢會根據 CLS 75 日,列出最差到最佳的網頁 百分位數 (按debug_target分組):

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  page_path,
  debug_target,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS CLS,
  COUNT(1) as count
FROM (
  SELECT
    REGEXP_SUBSTR((SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location"), r'\.com(\/[^?]*)') AS page_path,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = "debug_target") as debug_target,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
    *
  FROM web_vitals_events
  WHERE metric_name = 'CLS'
)
GROUP BY 1, 2
HAVING count > 50 # Limit to relatively popular pages
ORDER BY CLS DESC

影響 CLS 的熱門元素查詢結果

瞭解哪些元素會在移位時 找出並修正問題的根本原因

請注意,此處報告的元素,可能會 但當您在本機偵錯網頁時,看到的就會發生變化 因為一開始就很重要要修正這類問題 你可能會知道是問題所在!

偵錯其他指標

先前的查詢顯示 CLS 指標的結果,但都完全相同 技巧可用來製作 LCP 和 INP 的偵錯目標報表。只要 將 where 子句替換為相關指標以進行偵錯:

WHERE metric_name = 'INP'
WHERE metric_name = 'LCP'

同樣,您可以參閱「在 欄位,瞭解如何收集並 傳送每個 Core Web Vitals 指標的偵錯資訊。

視覺化

單看查詢結果或許並不容易 。舉例來說,下列查詢會列出每日第 75 個百分位數的值 LCP。

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  event_date,
  metric_name,
  APPROX_QUANTILES(ROUND(metric_value, 2), 100)[OFFSET(75)] AS p75
FROM
  (
    SELECT
      event_date,
      metric_name,
      ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value'), 3) AS metric_value
    FROM web_vitals_events
    WHERE
      metric_name = 'LCP'
  )
GROUP BY
  1, 2
ORDER BY event_date

難以從這些查詢結果中找出趨勢或異常值 也就是資料

每日指標值查詢結果

在這種情況下,以圖表呈現資料有助於更快取得深入分析資訊。

在 Looker Studio 中以圖表呈現查詢結果

BigQuery 可讓您使用資料,以視覺化方式快速呈現任何查詢結果 Looker Studio 是一種資料視覺化呈現方式 和資訊主頁工具如要以圖表呈現查詢結果 在 BigQuery UI 執行查詢後,點選「探索資料」按鈕 選取「使用 Looker Studio 探索」

在 BigQuery 中透過 Looker Studio 查看選項

這會在探索中建立從 BigQuery 直接連結至 Looker Studio 的連結 檢視畫面。在這個檢視畫面中,你可以選取要視覺化呈現的欄位 圖表類型、設定篩選器,以及建立臨時圖表,以便快速進行視覺化分析。 只要在之前的查詢結果中製作此折線圖,就能掌握 一段時間內的 LCP 值:

Looker Studio 每日 LCP 值的折線圖

透過 BigQuery 和 Looker Studio 的直接連結,你可以快速 任何查詢的圖表,並進行視覺分析。不過,如果您想要 再執行額外分析,建議你查看 互動資訊主頁,取得更全面的資料檢視 轉換為資料有了便利的資訊主頁,就不必撰寫查詢 以及在每次要分析指標時,手動產生圖表

您可以使用原生 BigQuery 在 Looker Studio 中建立資訊主頁 連接器方法如下 前往 datastudio.google.com,建立新檔案 資料來源,選取 BigQuery 連接器,然後選擇要匯入的資料集 合作裝置:

在 Looker Studio 中使用 BigQuery 原生連接器

具體化網站體驗指標資料

如上所述建立 Web Vitals 事件資料的資訊主頁時 直接使用 Google Analytics 4 匯出資料集是較有效率的做法。由於 GA4 資料的結構,以及網站體驗指標所需的預先處理功能 某些查詢會造成多次執行這會建立 兩項問題:資訊主頁效能和 BigQuery 費用

您可以使用 BigQuery 沙箱 免費模式BigQuery 的 免費用量方案, 每個月可免費處理 1 TB 的查詢資料。分析方法 但如果使用大型資料集 經常查詢資料集,應該就能 。但如果您的網站人氣較高 您可以使用快速互動的資訊主頁,定期監控不同的指標, 建議預先處理並具體化網站指標資料,同時 BigQuery 的效率提升功能,例如分區、分群和快取。

下列指令碼會預先處理 BigQuery 資料 (來源資料表) 並 建立具體化資料表 (目標資料表)。使用這個查詢建立自己的查詢時 您也可以為來源資料表定義日期範圍 因此能減少處理的資料量

# Materialize Web Vitals metrics from GA4 event export data

# Replace target table name
CREATE OR REPLACE TABLE bigquery_project_id.ga4_demo_dev.web_vitals_summary
  PARTITION BY DATE(event_timestamp)
  CLUSTER BY metric_name
AS
SELECT
  ga_session_id,
  IF(
    EXISTS(SELECT 1 FROM UNNEST(events) AS e WHERE e.event_name = 'first_visit'),
    'New user',
    'Returning user') AS user_type,
  IF(
    (SELECT MAX(session_engaged) FROM UNNEST(events)) > 0, 'Engaged', 'Not engaged')
    AS session_engagement,
  evt.* EXCEPT (session_engaged, event_name),
  event_name AS metric_name,
  FORMAT_TIMESTAMP('%Y%m%d', event_timestamp) AS event_date
FROM
  (
    SELECT
      ga_session_id,
      ARRAY_AGG(custom_event) AS events
    FROM
      (
        SELECT
          ga_session_id,
          STRUCT(
            country,
            device_category,
            device_os,
            traffic_medium,
            traffic_name,
            traffic_source,
            page_path,
            debug_target,
            event_timestamp,
            event_name,
            metric_id,
            IF(event_name = 'LCP', metric_value / 1000, metric_value) AS metric_value,
            user_pseudo_id,
            session_engaged,
            session_revenue) AS custom_event
        FROM
          (
            SELECT
              (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 = 'metric_id')
                AS metric_id,
              ANY_VALUE(device.category) AS device_category,
              ANY_VALUE(device.operating_system) AS device_os,
              ANY_VALUE(traffic_source.medium) AS traffic_medium,
              ANY_VALUE(traffic_source.name) AS traffic_name,
              ANY_VALUE(traffic_source.source) AS traffic_source,
              ANY_VALUE(
                REGEXP_SUBSTR(
                  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'),
                  r'^[^?]+')) AS page_path,
              ANY_VALUE(
                (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'debug_target'))
                AS debug_target,
              ANY_VALUE(user_pseudo_id) AS user_pseudo_id,
              ANY_VALUE(geo.country) AS country,
              ANY_VALUE(event_name) AS event_name,
              SUM(ecommerce.purchase_revenue) AS session_revenue,
              MAX(
                (
                  SELECT
                    COALESCE(
                      value.double_value, value.int_value, CAST(value.string_value AS NUMERIC))
                  FROM UNNEST(event_params)
                  WHERE key = 'session_engaged'
                )) AS session_engaged,
              TIMESTAMP_MICROS(MAX(event_timestamp)) AS event_timestamp,
              MAX(
                (
                  SELECT COALESCE(value.double_value, value.int_value)
                  FROM UNNEST(event_params)
                  WHERE key = 'metric_value'
                )) AS metric_value,
            FROM
              # Replace source table name
              `bigquery_project_id.analytics_XXXXX.events_*`
            WHERE
              event_name IN ('LCP', 'INP', 'CLS', 'first_visit', 'purchase')
            GROUP BY
              1, 2
          )
      )
    WHERE
      ga_session_id IS NOT NULL
    GROUP BY ga_session_id
  )
CROSS JOIN UNNEST(events) AS evt
WHERE evt.event_name NOT IN ('first_visit', 'purchase');

這個具體化資料集有幾項優點:

  • 資料結構可以整併且更容易查詢。
  • 只會保留原始 GA4 資料集的 Web Vitals 事件。
  • 工作階段 ID、使用者類型 (新訪客與回訪者) 和工作階段參與度資訊 均可直接顯示在資料欄中。
  • 資料表是 分區 日期和分群法 依指標名稱排序這樣通常會降低 。
  • 由於您不需要使用萬用字元查詢這個資料表,查詢結果可以 快取資料最多需要 24 小時以減少重複執行的成本 。
  • 如果您使用 BigQuery BI 引擎,可以執行最佳化的 SQL 函式並 運算子 表格。

您可以直接在 BigQuery UI 中查詢這個具體化資料表,或是直接使用 在 Looker Studio 中使用 BigQuery 連接器。

使用 Web Vitals 連接器

由於從零開始製作資訊主頁相當耗時,因此我們開發了套件 建立範本資訊主頁的解決方案首先,請確認您 使用先前的查詢將 Web Vitals 資料表具體化。接著存取 使用這個連結,即可連結 Looker Studio 的 Web Vitals 連接器: goo.gle/web-vitals-connector

提供一次性授權後,畫面會顯示以下內容 設定畫面:

Web Vitals 連接器授權畫面

提供具體化 BigQuery 資料表 ID (例如目標資料表) 和 BigQuery 帳單專案 ID。點選「連結」後,Looker Studio 就會建立 新的範本資訊主頁,然後將您的資料與資料集建立關聯。您可以編輯、修改 並視需要分享資訊主頁建立資訊主頁一次後 您必須再次前往連接器連結,除非您建立多個 產生來自不同資料集的資訊主頁

瀏覽資訊主頁時,您可以查看網站體驗指標的每日趨勢 以及網站的部分使用情況資訊,例如使用者和工作階段 「摘要」分頁標籤。

在「使用者分析」分頁中,您可以選取指標,然後查看下列指標的細目資料: 指標百分位數,以及不同用量和業務的使用者人數 指標。

使用「網頁路徑分析」分頁,您就能找出網站上的問題所在 網站。您可以在這裡挑選指標以查看總覽。不過您也會看到 所有包含百分位數值且記錄值的散佈圖 就能建立 10 億個字元散佈圖有助於找出哪些網頁 比預期指標值低使用散佈圖選取頁面後 「網頁路徑」表格的圖表,您可以按 查看「Debug Target」資料表。

收益分析」分頁會示範如何監控業務 和成效指標這個部分會列出 使用者購買產品可以比較收益與使用者體驗 查看特定工作階段的期間

進階用法

熟悉資料集後,您可以編輯資訊主頁, 圖表,取得更豐富多元且目標明確的分析結果。讓資訊主頁更豐富 建議您採取下列步驟:

  • 如要取得更新後的資料,請在 BigQuery 中設定查詢排程。具體化 我們先前執行的查詢,只會擷取目前資料的快照。如果發生以下情況: 如要持續更新資訊主頁以取得新資料,那麼你可以執行排定時間 每天執行的查詢,並在資料表中加入新的具體化資料表 資料。
  • 彙整第一方資料 (例如客戶關係管理) 來取得業務洞察資料。在具體化的 資料表,您可以將 user_id 新增為獨立的資料欄。這麼做便能加入 第一方資料如果 BigQuery 中沒有第一方資料 載入資料或 使用聯合資料 來源
  • 在傳送給 Google 的資料中回報網站或應用程式版本 Analytics 並將其新增為具體化表格的資料欄。之後您就能新增 版本資料做為圖表維度 版本變更會影響效能。
  • 如果您預期透過直接途徑使用資料集會大幅增加用量 查詢或資訊主頁,建議您使用付費版 BigQuery BI 解決方案 Engine

摘要

本文將介紹如何運用 Google Analytics 4 和 BigQuery, 系統會運用在領域中收集的實際使用者資料,評估成效並進行偵錯。這項服務 這也說明瞭如何使用 Looker Studio 建立自動報表和資訊主頁 使用 Web Vitals 連接器 盡量以圖表呈現資料

本文重點整理:

  • 運用實際使用者資料評估成效至關重要 偵錯以及最佳化網站
  • 可在成效指標和業務成長時,取得更深入的洞察資料 都位於同一個系統中Google Analytics 和 BigQuery
  • 您可以透過 BigQuery Export 將原始 Google Analytics 資料匯出到 透過您熟悉的查詢語言,進行深入的自訂分析。
  • Google 提供多種 API 和視覺化工具,如 Looker Studio 您可以視需要自由製作報表 。