Pengukuran Web Vitals dari pengunjung sendiri baru berguna bila satu pengalaman tidak dihitung berkali-kali. Callback yang muncul lagi saat tab disembunyikan bukan otomatis pengunjung baru. Sebelum membuat dashboard, tetapkan identitas metrik, cara memperbarui nilainya, dan kunjungan mana yang tercakup.
Real User Monitoring atau RUM adalah pengumpulan pengalaman pengguna pada website yang benar-benar mereka buka. Panduan ini ditujukan untuk developer dan analis yang ingin menyiapkan pengukuran tersebut. Hasil akhirnya berupa kontrak data yang bisa diuji, bukan klaim bahwa memasang satu script langsung menghasilkan data sempurna.
Untuk menentukan pertanyaan yang tepat bagi pengukuran ini, pahami dahulu perbedaan data lapangan dan data lab.
Mulai dari pertanyaan yang akan dijawab
Misalnya, kamu ingin mengetahui apakah template artikel dengan galeri mempunyai masalah kestabilan tampilan pada perangkat mobile. Kamu membutuhkan nama template dan kelompok perangkat yang konsisten. Kamu belum tentu membutuhkan URL lengkap, apalagi parameter yang berisi email atau pencarian pengguna.
Tuliskan cakupan awal: template artikel, navigasi dokumen penuh, browser yang mendukung, dan aturan persetujuan pengukuran yang berlaku pada situs. Jika aplikasi memakai navigasi tanpa reload, putuskan secara terpisah bagaimana navigasi tersebut diukur. Jangan mencampurkan cakupan baru ke seri lama tanpa penanda.
Mulai dari satu template membuat pengujian lebih mudah. Setelah jalur datanya benar, perluas ke template lain dengan kontrak yang sama.
Pahami kapan callback muncul
Pustaka resmi web-vitals menyediakan onLCP, onINP, dan onCLS. Sebagian nilai dilaporkan ketika pengguna berinteraksi atau halaman menjadi tersembunyi. INP dapat tidak tersedia ketika tidak ada interaksi. Callback juga dapat muncul lebih dari sekali, dan pemulihan dari back/forward cache mempunyai identitas metrik baru. Dokumentasi web-vitals.
Karena itu, jangan menulis tes yang mengharuskan tiga nilai langsung muncul sesaat setelah halaman dibuka. Jangan pula mengisi INP yang tidak tersedia dengan nol. Nol menyatakan nilai terukur; tidak tersedia menyatakan keterbatasan pengamatan.
Daftarkan fungsi pengukuran sekali pada lifecycle yang dimaksud. Pada aplikasi berbasis komponen, periksa apakah perpindahan route atau pemasangan ulang komponen tanpa sengaja membuat observer tambahan.
Tetapkan bentuk data sebelum memilih dashboard
Berikut rancangan ilustratif untuk disepakati developer dan analis:
| Field | Contoh | Fungsi |
|---|---|---|
metric_name |
CLS |
Memisahkan metrik dan satuannya |
metric_id |
metric-a |
Menggabungkan pembaruan metrik yang sama |
value |
0.09 |
Nilai metrik pada laporan ini |
delta |
0.05 |
Perubahan sejak laporan sebelumnya |
sequence |
2 |
Urutan laporan dari pengirim |
template |
article-gallery |
Kelompok halaman yang sedang diperiksa |
release |
release-b |
Versi aplikasi untuk konteks perubahan |
navigation_scope |
document |
Menjelaskan jenis navigasi yang diukur |
sequence adalah usulan field implementasi, bukan properti bawaan yang otomatis diberikan semua pustaka. Identitas metrik juga bukan identitas orang. Tentukan cakupan keunikannya dan jangan menggunakannya untuk menyatakan jumlah pembaca unik.
Untuk URL, pilih identitas halaman yang sudah dibersihkan atau nama template. Tetapkan masa penyimpanan dan akses sesuai kebutuhan pengukuran. Mengirim seluruh objek diagnostic tanpa meninjau isinya dapat membawa konteks yang tidak diperlukan.
Contoh: dua laporan CLS dari pengalaman yang sama
Angka berikut hanya contoh ilustratif:
| Metric ID | Urutan | Value | Delta |
|---|---|---|---|
metric-a |
1 | 0.04 | 0.04 |
metric-a |
2 | 0.09 | 0.05 |
metric-b |
1 | 0.02 | 0.02 |
Untuk metric-a, hasil akhirnya adalah 0.09. Menjumlahkan kolom value menjadi 0.13 adalah keliru. Pilih satu kebijakan: menyimpan value dari urutan terakhir, atau menjumlahkan delta dari laporan unik dengan ID yang sama. Pustaka mendukung kedua pola pelaporan tersebut, tetapi sistem penyimpananmu harus menerapkannya dengan konsisten.
Jika request kedua dicoba ulang karena jaringan putus, event yang sama bisa diterima lagi. Berikan mekanisme deduplikasi laporan, misalnya kombinasi ID dan urutan. Untuk pola value terakhir, jangan biarkan request lama yang terlambat datang menimpa nilai lebih baru.
Baru setelah satu nilai akhir per pengalaman tersusun, hitung distribusi dan persentil yang kamu butuhkan. Rata-rata semua callback akan memberi bobot lebih besar kepada pengalaman yang mengirim banyak pembaruan.
Uji dari browser sampai data tersimpan
Gunakan lingkungan uji dan tujuan pengukuran yang sesuai. Simpan hasil yang diharapkan sebelum menjalankan skenario:
| Skenario | Hal yang diperiksa |
|---|---|
| Buka halaman tanpa berinteraksi | INP yang hilang tetap ditandai tidak tersedia |
| Klik kontrol lalu pindah tab | Callback dan satuan sampai ke tujuan yang benar |
| Tab disembunyikan beberapa kali | Pembaruan tidak menjadi pengalaman baru |
| Navigasi kembali dari riwayat | Lifecycle dan identitas baru ditangani sesuai pustaka |
| Pengiriman diulang | Laporan yang sama tidak dihitung dua kali |
| Pengukuran tidak diizinkan | Jalur pengiriman mengikuti keputusan consent situs |
Cocokkan callback, request, record yang diterima, lalu hasil agregasi. Screenshot console hanya membuktikan callback lokal. Request yang terlihat juga belum membuktikan dashboard memakai aturan deduplikasi yang benar.
Tampilkan cakupan bersama hasil
Simpan jumlah sampel, periode, template, perangkat, browser, dan versi implementasi. Browser yang tidak tercakup atau pengguna yang tidak mengizinkan pengukuran membuat RUM berbeda dari seluruh populasi. Perbedaan hasil dengan CrUX perlu dibaca bersama perbedaan cakupan tersebut. Panduan pengukuran Web Vitals.
Jika sampel masih kecil, gunakan hasil untuk mencari pola yang perlu diuji, lalu lanjutkan diagnosis lab. Jangan mengumumkan template sehat hanya karena belum ada nilai buruk.
Pekerjaan pertama yang dapat kamu lakukan adalah membuat tiga baris contoh seperti tabel CLS tadi, memasukkannya ke transformasi data, lalu memeriksa bahwa hasil akhirnya tetap dua pengalaman dengan nilai 0.09 dan 0.02. Perhitungan kecil ini melindungi dashboard besar dari kesalahan mendasar.




