Pelajari cara mengirimkan data Web Vitals ke properti Google Analytics 4 dan mengekspor data tersebut untuk dianalisis di BigQuery dan Looker Studio.
Google menyediakan sejumlah alat—Penelusuran Konsol, PageSpeed Insight (PSI), dan Pengalaman Pengguna Chrome Laporan (CrUX)—yang memungkinkan developer melihat performa situs mereka terhadap Web Inti Metrik Vitals untuk pengguna nyata mereka di .
Alat tersebut memberikan gambaran tingkat tinggi tentang kegunaan situs Anda kinerja pengguna nyata, dan mereka tidak membutuhkan pengaturan untuk mulai digunakan.
Namun, ada beberapa alasan penting mengapa Anda tidak ingin mengandalkan hanya alat untuk mengukur performa situs:
- Alat berbasis CrUX melaporkan data berdasarkan periode 28 hari bulanan atau sebelumnya. Ini berarti Anda harus menunggu lama setelah melakukan perubahan sebelum Anda dapat melihat hasilnya.
- Alat berbasis CrUX hanya dapat disegmentasikan menurut jumlah dimensi yang terbatas, seperti negara, jenis koneksi, dan kategori perangkat (desktop atau seluler). Anda tidak bisa mengelompokkan data menurut dimensi yang spesifik untuk bisnis Anda (misalnya: engagement pengguna, pengguna dalam grup eksperimen tertentu, dll.).
- Alat berbasis CrUX dapat memberi tahu Anda apa performa Anda, tetapi tidak dapat membedakannya kepada Anda mengapa. Dengan alat analisis, Anda dapat mengirim data tambahan untuk membantu melacak dan men-debug masalah.
Oleh karena itu, sebaiknya semua pemilik situs memantau metrik Core Web Vitals menggunakan alat analisis yang sudah ada. Postingan ini menjelaskan cara menggunakan alat yang ditawarkan oleh Google untuk melakukan hal itu.
Setelah semuanya disiapkan, Anda dapat membuat dasbor seperti ini:
Jika Anda ingin mendapatkan ringkasan visual dari semua langkah yang diuraikan di sini, lihat pembicaraan kami dari Google I/O '21:
Ukur
Mengukur kinerja selalu dapat dilakukan dengan Google Analytics menggunakan metrik kustom, tetapi ada adalah beberapa fitur baru di Google Analytics 4 (GA4) yang developer secara khusus harus menarik minat pengguna.
- Zero-config, kustom acara parameter
- BigQuery Export gratis, sehingga Anda dapat melakukan kueri data menggunakan SQL
Meskipun antarmuka web Google Analytics memiliki alat analisis yang canggih, sulit untuk mengalahkan kekuatan dan fleksibilitas akses data peristiwa mentah menggunakan kueri bahasa yang mungkin sudah Anda ketahui.
Untuk mulai mengukur Core Web Vitals menggunakan Google Analytics 4 dan BigQuery, Anda harus melakukan tiga hal:
- Membuat Google Analytics 4 properti dan Project BigQuery.
- Mengaktifkan BigQuery Export di konfigurasi properti Google Analytics, sehingga semua data yang Anda terima akan yang otomatis terisi di tabel project BigQuery Anda.
- Menambahkan JavaScript web-vitals ke situs Anda, sehingga Anda dapat mengukur metrik Core Web Vitals dan mengirim data ke Google Analytics 4, termasuk data atribusi.
Analisis
Setelah Anda siap, Anda akan melihat data peristiwa terisi di BigQuery dan Anda akan dapat melakukan kueri data seperti ini:
SELECT * FROM `my_project_id.analytics_XXXXX.events_*`
WHERE event_name IN ('LCP', 'INP', 'CLS')
Berikut adalah pratinjau hasil kueri tersebut:
Membuat kueri data Web Vitals
Sebelum mulai membuat kueri data peristiwa Web Vitals, Anda harus memahami bagaimana data diagregasi.
Hal yang paling penting untuk dipahami adalah, dalam beberapa kasus, beberapa peristiwa mungkin diterima untuk metrik yang sama, pada halaman yang sama. Hal ini bisa terjadi jika nilai metrik perubahan dan nilai yang diperbarui dilaporkan (kejadian umum dengan CLS).
Untuk peristiwa Data Web, nilai terakhir yang dikirim adalah yang paling akurat, jadi sebelum melakukan analisis apa pun, sebaiknya filter nilai-nilai tersebut saja. Cuplikan kode yang disediakan oleh library JavaScript web-vitals untuk mengirim data ke Google Analytics 4 menyertakan pengiriman ID unik per metrik, sehingga Anda dapat menggunakan untuk membatasi hasil Anda hanya ke nilai yang terakhir diterima untuk ID metrik:
# 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
)
Perhatikan bahwa semua kueri lain yang dirujuk dalam posting ini akan dimulai dengan sub kueri.
Contoh kueri
Beberapa bagian berikutnya menunjukkan beberapa contoh kueri Data Web umum yang mungkin ingin dijalankan.
LCP, INP, dan CLS dengan persentil 75% (p75) di seluruh situs
# 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
Semua nilai LCP individual dari tertinggi hingga terendah
# 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
Skor LCP (p75) dari 10 halaman paling populer
# 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
10 halaman teratas dengan CLS terburuk (p75)
# 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
Debug
Kueri sebelumnya menunjukkan cara membuat kueri data metrik Data Web, yang sangat membantu untuk memahami performa Anda saat ini dan trennya dari waktu ke waktu. Tapi apa yang dapat Anda lakukan jika kinerja Anda lebih buruk dari yang diharapkan tetapi Anda tidak yakin kenapa?
Mengetahui apa skor yang tidak membantu jika Anda tidak dapat mengambil tindakan dan memperbaiki masalah.
Men-debug performa dalam kolom menjelaskan caranya Anda dapat mengirim informasi debug tambahan dengan data analisis. Jika Anda ikuti petunjuk yang dijelaskan dalam posting tersebut, Anda akan melihat bahwa informasi di BigQuery juga.
Contoh kueri
Kueri berikut menunjukkan cara menggunakan parameter peristiwa debug_target
untuk membantu
mengidentifikasi penyebab utama dari masalah performa.
Elemen teratas yang berkontribusi pada CLS
debug_target
adalah string pemilih CSS yang sesuai dengan elemen di
halaman yang paling relevan dengan nilai metrik.
Dengan CLS, debug_target
akan merepresentasikan elemen terbesar dari
pergeseran tata letak yang berkontribusi
pada nilai CLS. Jika tidak ada elemen yang bergeser, maka
Nilai debug_target
akan menjadi null
.
Kueri berikut akan mencantumkan halaman dari yang terburuk hingga terbaik berdasarkan CLS-nya di urutan ke-75
persentil, dikelompokkan menurut 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
Mengetahui elemen apa pada laman yang berubah seharusnya membuat pengguna lebih mudah mengidentifikasi dan memperbaiki akar penyebab masalah.
Perlu diingat bahwa elemen yang dilaporkan di sini mungkin bukan elemen yang sama dengan Anda melihat perubahan saat men-debug halaman Anda secara lokal, itulah sebabnya penting untuk menangkap data ini sejak awal. Sangat sulit untuk memperbaiki sesuatu yang tidak Anda sadari adalah masalah!
Men-debug metrik lainnya
Kueri sebelumnya menampilkan hasil untuk metrik CLS, tetapi sama persis dapat digunakan untuk melaporkan target debug untuk LCP dan INP. Hanya ganti klausa where dengan metrik yang relevan untuk di-debug:
WHERE metric_name = 'INP'
WHERE metric_name = 'LCP'
Sekali lagi, Anda dapat melihat Performa debug di untuk mendapatkan petunjuk tentang cara mengumpulkan dan mengirim informasi debug untuk setiap metrik Core Web Vitals.
Memvisualisasikan
Mungkin akan sulit untuk mendapatkan insight hanya dengan melihat hasil kueri sendirian. Misalnya, kueri berikut mencantumkan nilai persentil ke-75 harian untuk LCP dalam set data.
# 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
Dari hasil kueri ini, sulit untuk mengidentifikasi tren atau {i>outlier<i} hanya dengan melihat data.
Dalam kasus seperti itu, memvisualisasikan data dapat membantu Anda mendapatkan wawasan dengan lebih cepat.
Memvisualisasikan hasil kueri di Looker Studio
BigQuery menyediakan cara cepat untuk memvisualisasikan hasil kueri melalui Data di Studio. Looker Studio adalah visualisasi data dan dasbor yang gratis untuk digunakan. Untuk memvisualisasikan hasil kueri, setelah menjalankan kueri Anda di UI BigQuery, klik tombol Explore Data dan pilih Jelajahi dengan Looker Studio.
Tindakan ini akan membuat link langsung dari BigQuery ke Looker Studio dalam eksplorasi {i>view<i}. Dalam tampilan ini, Anda bisa memilih bidang yang ingin divisualisasikan, memilih jenis diagram, menyiapkan filter, dan membuat diagram {i>ad hoc <i}untuk analisis visual yang cepat. Dari hasil kueri sebelumnya, Anda dapat membuat diagram garis ini untuk melihat tren Nilai LCP dari waktu ke waktu:
Dengan link langsung antara BigQuery dan Looker Studio ini, Anda dapat membuat bagan dari kueri mana pun dan melakukan analisis visual. Namun, jika Anda ingin melakukan analisis tambahan, Anda mungkin ingin melihat beberapa bagan dalam dasbor interaktif untuk mendapatkan tampilan yang lebih menyeluruh atau untuk melihat perincian ke dalam data. Memiliki dasbor yang berguna berarti Anda tidak perlu menulis kueri dan membuat diagram secara manual setiap kali Anda ingin menganalisis metrik.
Anda dapat membuat dasbor di Looker Studio menggunakan BigQuery native konektor. Untuk melakukannya, buka datastudio.google.com, buat browser baru sumber data, pilih konektor BigQuery, dan pilih set data yang ingin Anda bekerja dengan:
Mewujudkan data Web Vitals
Saat membuat dasbor data peristiwa Web Vitals seperti yang dijelaskan sebelumnya, tidak efisien menggunakan set data ekspor Google Analytics 4 secara langsung. Karena struktur data GA4 dan pra-pemrosesan yang diperlukan untuk Data Web metrik, bagian dari kueri Anda pada akhirnya akan berjalan beberapa kali. Hal ini menciptakan dua masalah: kinerja dasbor dan biaya BigQuery.
Anda dapat menggunakan sandbox BigQuery mode tanpa biaya. Dengan antarmuka paket penggunaan gratis, Gratis 1 TB data kueri pertama yang diproses setiap bulan. Untuk metode analisis yang dibahas dalam posting ini, kecuali jika Anda menggunakan {i>dataset<i} yang sangat besar atau sering melakukan kueri {i>dataset <i}secara teratur, Anda harus dapat bertahan di dalam batas gratis ini setiap bulan. Tetapi jika Anda memiliki situs web dengan lalu lintas yang tinggi dan ingin memantau berbagai metrik secara teratur menggunakan dasbor interaktif yang cepat, kami menyarankan untuk melakukan pra-pemrosesan dan mewujudkan data web vitals Fitur efisiensi BigQuery seperti partisi, pengelompokan, dan cache.
Skrip berikut akan melakukan pra-pemrosesan data BigQuery (tabel sumber) dan buat tabel terwujud (tabel target). Saat menggunakan kueri ini untuk Anda sendiri Anda mungkin juga ingin menentukan rentang tanggal untuk tabel sumber untuk menurunkan jumlah data yang diproses.
# 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');
Set data terwujud ini memiliki beberapa keuntungan:
- Struktur data sudah diratakan dan lebih mudah untuk dikueri.
- Data ini hanya mempertahankan peristiwa Web Vitals dari set data GA4 asli.
- ID sesi, jenis pengguna (baru versus yang kembali), dan informasi engagement sesi langsung tersedia di kolom.
- Tabelnya adalah dipartisi oleh tanggal dan dikelompokkan menurut nama metrik. Ini biasanya mengurangi jumlah data yang diproses untuk setiap kueri.
- Karena Anda tidak perlu menggunakan {i>wildcard <i} untuk membuat kueri tabel ini, hasil kueri dapat di-cache hingga 24 jam. Hal ini mengurangi biaya dari pengulangan materi yang sama kueri.
- Jika menggunakan mesin BigQuery BI, Anda dapat menjalankan fungsi SQL yang dioptimalkan dan operator di tabel sementara.
Anda dapat langsung membuat kueri tabel terwujud ini dari dalam UI BigQuery atau menggunakannya di Looker Studio menggunakan konektor BigQuery.
Menggunakan Web Vitals Connector
Karena membuat dasbor dari awal memakan waktu, kami mengembangkan solusi yang akan membuat dasbor template untuk Anda. Pertama-tama pastikan bahwa Anda telah mewujudkan tabel Data Web Anda menggunakan kueri sebelumnya. Kemudian, akses Konektor Web Vitals untuk Looker Studio menggunakan link ini: goo.gle/web-vitals-connector
Setelah memberikan otorisasi satu kali, Anda akan melihat hal berikut layar konfigurasi:
Berikan ID tabel BigQuery yang terwujud (yaitu tabel target) dan ID project penagihan BigQuery. Setelah mengklik hubungkan, Looker Studio akan membuat menggunakan template dasbor baru dan menghubungkan data Anda dengannya. Anda dapat mengedit, mengubah, dan bagikan dasbor sesuai keinginan Anda. Jika Anda membuat dasbor satu kali, Anda tidak mengunjungi link konektor lagi, kecuali jika Anda ingin membuat beberapa dasbor dari {i>dataset <i}yang berbeda.
Menjelajahi dasbor
Saat membuka dasbor, Anda dapat melihat tren harian Data Web metrik dan beberapa informasi penggunaan untuk situs Anda seperti pengguna dan sesi, di tab Ringkasan.
Di tab Analisis Pengguna, Anda dapat memilih metrik, lalu mendapatkan perincian persentil metrik serta jumlah pengguna menurut penggunaan dan metrik.
Tab Analisis Jalur Halaman akan membantu Anda mengidentifikasi area masalah pada situs Anda. Di sini, Anda dapat memilih metrik untuk melihat ringkasan. Namun, Anda juga melihat peta sebar dari semua jalur halaman dengan nilai persentil pada sumbu y dan catat dihitung pada sumbu x. Peta sebar dapat membantu mengidentifikasi halaman yang memiliki daripada nilai metrik yang diharapkan. Setelah Anda memilih halaman menggunakan tabel Jalur halaman, Anda dapat melihat perincian lebih lanjut area masalah dengan menampilkan tabel Debug Target.
Tab Analisis Pendapatan adalah contoh cara memantau bisnis Anda dan metrik performa di tempat yang sama. Bagian ini merencanakan semua sesi di mana pengguna melakukan pembelian. Anda dapat membandingkan pendapatan yang diperoleh dengan pengalaman pengguna selama sesi tertentu .
Penggunaan lanjutan
Saat Anda semakin terbiasa dengan {i>dataset<i}, Anda dapat mengedit dasbor dan menambahkan bagan Anda sendiri untuk analisis yang lebih mendalam dan bertarget. Untuk membuat dasbor lebih berguna, Anda dapat melakukan langkah-langkah berikut:
- Siapkan kueri terjadwal di BigQuery untuk mendapatkan data yang diperbarui. Materialisasi yang kita jalankan sebelumnya hanya mengambil cuplikan dari data Anda pada saat itu. Jika Anda ingin dasbor Anda tetap diperbarui dengan data baru, Anda dapat menjalankan yang akan berjalan setiap hari dan menambahkan tabel terwujud Anda dengan layanan otomatis dan data skalabel.
- Gabungkan data pihak pertama (misalnya, CRM) untuk mendapatkan insight bisnis. Dalam materi
tabel, Anda dapat menambahkan
user_id
sebagai kolom terpisah. Ini akan memungkinkan Anda bergabung dengan data pihak pertama. Jika data pihak pertama Anda belum ada di BigQuery, Anda dapat memuat data atau gunakan data gabungan sumber Google Cloud. - Laporkan versi situs atau aplikasi Anda sebagai parameter dalam data yang Anda kirim ke Google Analytics, lalu menambahkannya sebagai kolom dalam tabel terwujud. Lalu Anda dapat menambahkan data versi tersebut sebagai dimensi dalam diagram agar lebih mudah dilihat perubahan versi akan mempengaruhi performa.
- Jika Anda memperkirakan penggunaan {i>dataset <i}yang signifikan melalui hubungan atau dasbor, Anda dapat mencoba menggunakan versi berbayar BigQuery BI Compute Engine.
Ringkasan
Postingan ini membahas dasar-dasar cara menggunakan Google Analytics 4 dan BigQuery untuk mengukur dan men-debug performa dengan data pengguna nyata yang dikumpulkan di lapangan. Ini juga menjelaskan cara membuat laporan dan dasbor otomatis menggunakan Looker Studio dan Konektor Data Web untuk melakukan memvisualisasikan data semudah mungkin.
Beberapa poin penting dari postingan ini:
- Mengukur performa dengan data pengguna nyata sangat penting untuk pemahaman, proses debug, dan pengoptimalan situs.
- Anda bisa mendapatkan insight yang lebih mendalam saat metrik performa dan bisnis Anda metrik berada dalam sistem yang sama. Google Analytics dan BigQuery membuatnya sebaik mungkin.
- BigQuery Export data Google Analytics mentah memberi Anda potensi tak terbatas untuk analisis kustom yang mendalam menggunakan bahasa kueri yang mungkin sudah Anda ketahui.
- Google memiliki sejumlah API dan alat visualisasi seperti Looker Studio yang memberikan Anda bebas menyusun laporan sesuai keinginan Anda dibuat.