Chrome Kullanıcı Deneyimi Raporu'nun (CrUX) ham verileri, Google Cloud'daki bir veritabanı olan BigQuery'de mevcuttur. BigQuery'yi kullanmak için bir GCP projesi ve temel SQL bilgisi gerekir.
Bu kılavuzda, web'deki kullanıcı deneyimlerinin durumu hakkında bilgilendirici sonuçlar elde etmek amacıyla CrUX veri kümesine sorgu yazmak için BigQuery'yi nasıl kullanacağınızı öğrenin:
- Verilerin nasıl düzenlendiğini anlama
- Bir kaynağın performansını değerlendirmek için temel sorgu yazma
- Zaman içindeki performansı izlemek için gelişmiş sorgu yazma
Veri organizasyonu
Temel bir sorguya bakarak başlayın:
SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`
Sorguyu çalıştırmak için sorgu düzenleyiciye girin ve "Sorguyu çalıştır" düğmesine basın:
Bu sorgu iki bölümden oluşur:
SELECT COUNT(DISTINCT origin)
, tablodaki kaynakların sayısının sorgulanması anlamına gelir. Özetle, aynı şema, ana makine ve bağlantı noktasına sahip iki URL, aynı kaynağın parçasıdır.FROM chrome-ux-report.all.202206
, üç bölümden oluşan kaynak tablonun adresini belirtir:- Tüm CrUX verilerinin organize edildiği Cloud projesinin adı
chrome-ux-report
- Tüm ülkeler genelindeki verileri temsil eden
all
veri kümesi 202206
tablosu, verilerin YYYYAA biçimindeki yılı ve ayı
- Tüm CrUX verilerinin organize edildiği Cloud projesinin adı
Ayrıca her ülke için veri kümeleri vardır. Örneğin, chrome-ux-report.country_ca.202206
yalnızca Kanada'dan gelen kullanıcı deneyimi verilerini temsil eder.
Her veri kümesinde, 2017'den beri her aya ait tablolar bulunur. Önceki takvim ayı için yeni tablolar düzenli olarak yayınlanır.
Veri tablolarının yapısı (şema olarak da bilinir) aşağıdakileri içerir:
- Kaynak (örneğin,
origin = 'https://www.example.com'
), web sitesindeki tüm sayfalar için toplam kullanıcı deneyimi dağılımını temsil eder. - Sayfa yükleme sırasındaki bağlantı hızı, örneğin,
effective_connection_type.name = '4G'
- Cihaz türü (ör.
form_factor.name = 'desktop'
) - Kullanıcı deneyimi metriklerinin kendisi
- first_paint (FP) (ilk boyama)
- first_contentful_paint (FCP)
- dom_content_loaded (DCL)
- yüklenme süresi (OL)
- Experiment.first_input_delay (İGG)
Her metriğe ait veriler bir nesne dizisi olarak düzenlenir. JSON gösteriminde first_contentful_paint.histogram.bin
şuna benzer:
[
{"start": 0, "end": 100, "density": 0.1234},
{"start": 100, "end": 200, "density": 0.0123},
...
]
Her kutuda milisaniye cinsinden bir başlangıç ve bitiş zamanı ile bu zaman aralığındaki kullanıcı deneyimlerinin yüzdesini temsil eden bir yoğunluk bulunur. Yani bu varsayımsal kaynak, bağlantı hızı ve cihaz türü için FCP deneyimlerinin% 12,34'ü 100 ms'den kısa. Tüm kutu yoğunluklarının toplamı %100 olur.
BigQuery'deki tabloların yapısına göz atın.
Performans değerlendirme
Tablo şemasıyla ilgili bilgilerimizi, bu performans verilerini çıkaran bir sorgu yazmak için kullanabiliriz.
SELECT
fcp
FROM
`chrome-ux-report.all.202206`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
effective_connection_type.name = '4G' AND
form_factor.name = 'phone' AND
fcp.start = 0
Sonuç olarak 0.01115
elde edilir. Yani bu kaynaktaki kullanıcı deneyimlerinin% 1, 115'i 4G ve telefonda 0-100 ms. arasında gerçekleşir. Sorgumuzu herhangi bir bağlantıya ve herhangi bir cihaz türüne genelleştirmek istiyorsak bunları WHERE
deyiminden çıkarabilir ve ilgili tüm bölme yoğunluklarını toplamak için SUM
toplayıcı işlevini kullanabiliriz:
SELECT
SUM(fcp.density)
FROM
`chrome-ux-report.all.202206`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
fcp.start = 0
Sonuç olarak, 0.05355
veya tüm cihazlar ve bağlantı türlerinde% 5,355 elde edilir. Sorguda küçük değişiklikler yapabilir ve 0-1000 ms olan "hızlı" FCP aralığındaki tüm bölmelerin yoğunluklarını ekleyebiliriz:
SELECT
SUM(fcp.density) AS fast_fcp
FROM
`chrome-ux-report.all.202206`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
fcp.start < 1000
Böylece 0.6977
elde ederiz. Başka bir deyişle, FCP aralık tanımına göre web.dev'deki FCP kullanıcı deneyimlerinin% 69,77'si "hızlı" olarak değerlendiriliyor.
Performansı izleme
Bir kaynak hakkında performans verilerini ayıkladığımıza göre artık eski tablolarda bulunan geçmiş verileriyle karşılaştırabiliriz. Bunu yapmak için tablo adresini önceki bir aya yeniden yazabilir ya da tüm ayları sorgulamak için joker karakter söz dizimini kullanabiliriz:
SELECT
_TABLE_SUFFIX AS yyyymm,
SUM(fcp.density) AS fast_fcp
FROM
`chrome-ux-report.all.*`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
fcp.start < 1000
GROUP BY
yyyymm
ORDER BY
yyyymm DESC
Burada, hızlı FCP deneyimlerinin yüzdesinin her ay birkaç yüzde puanı göre değiştiğini görüyoruz.
yyyyaa | fast_fcp |
---|---|
202206 | %69,77 |
202205 | %70,71 |
202204 | %69,04 |
202203 | %69,82 |
202202 | %67,75 |
202201 | %58,96 |
202112 | %41,69 |
... | ... |
Bu tekniklerle bir kaynak için performansı arayabilir, hızlı deneyimlerin yüzdesini hesaplayabilir ve bunu zaman içinde takip edebilirsiniz. Sonraki adımda, iki veya daha fazla kaynağı sorgulamayı ve bu kaynakların performanslarını karşılaştırmayı deneyin.
SSS
CrUX BigQuery veri kümesi hakkında sık sorulan soruların bazılarını aşağıda bulabilirsiniz:
Ne zaman diğer araçlar yerine BigQuery'yi kullanırım?
BigQuery, yalnızca CrUX Kontrol Paneli ve PageSpeed Insights gibi diğer araçlardan aynı bilgileri alamadığınız durumlarda gereklidir. Örneğin BigQuery, verileri anlamlı şekillerde dilimlere ayırmanıza ve hatta gelişmiş veri madenciliği yapmak için HTTP Arşivi gibi diğer herkese açık veri kümeleriyle birleştirmenize olanak tanır.
BigQuery kullanımıyla ilgili herhangi bir sınırlama var mı?
Evet, en önemli sınırlama, varsayılan olarak kullanıcıların ayda yalnızca 1 TB boyutunda veri sorgulayabilmesidir. Bunun dışında 5 ABD doları/TB standart ücret uygulanır.
BigQuery hakkında daha fazla bilgiyi nereden edinebilirim?
Daha fazla bilgi için BigQuery belgelerini inceleyin.