CrUX API, sayfa ve kaynak ayrıntı düzeyinde birleştirilmiş gerçek kullanıcı deneyimi verilerine düşük gecikmeli erişim sağlar.
Yaygın kullanım alanı
CrUX API, "https://example.com
kaynağının metriklerini al" gibi belirli bir URI için kullanıcı deneyimi metriklerinin sorgulanmasına olanak tanır.
CrUX API anahtarı
CrUX API'yi kullanmak için Chrome UX Report API
kullanımı için hazırlanmış bir Google Cloud API anahtarı gerekir.
API anahtarı edinme ve kullanma
Anahtar almaveya Kimlik Bilgileri sayfasında bir tane oluşturun.
API anahtarınız olduktan sonra uygulamanız, key=yourAPIKey
sorgu parametresini tüm istek URL'lerine ekleyebilir.
API anahtarı, URL'lere yerleştirmek için güvenlidir; herhangi bir kodlama yapmanız gerekmez.
Örnek sorgular bölümüne bakın.
Veri modeli
Bu bölümde, isteklerdeki ve yanıtlardaki verilerin yapısı ayrıntılı olarak açıklanmaktadır.
Kaydet
Bir sayfa veya siteyle ilgili ayrı bir bilgi parçası. Bir kayıtta, bir tanımlayıcıya ve belirli bir boyut kombinasyonuna özgü veriler bulunabilir. Bir kayıtta bir veya daha fazla metriğe ait veriler bulunabilir.
Tanımlayıcılar
Tanımlayıcılar, hangi kayıtların aranacağını belirtir. CrUX'ta bu tanımlayıcılar web sayfaları ve web siteleridir.
Köken
Tanımlayıcı bir kaynak olduğunda, söz konusu kaynaktaki tüm sayfalar için mevcut olan tüm veriler birlikte toplanır. Örneğin, http://www.example.com
kaynağının şu site haritasında belirtilen sayfaları olduğunu varsayalım:
http://www.example.com/
http://www.example.com/foo.html
http://www.example.com/bar.html
Bu, Chrome UX Report'u kaynak http://www.example.com
olarak ayarlayarak sorgularken http://www.example.com/
, http://www.example.com/foo.html
ve http://www.example.com/bar.html
sayfalarına ait verilerin, bu kaynak altındaki tüm sayfalar oldukları için birlikte toplanmış şekilde döndürüleceği anlamına gelir.
URL'ler
Tanımlayıcı bir URL olduğunda yalnızca söz konusu URL'ye ait veriler döndürülür. http://www.example.com
kaynak site haritasına tekrar bakalım:
http://www.example.com/
http://www.example.com/foo.html
http://www.example.com/bar.html
Tanımlayıcı, http://www.example.com/foo.html
değerine sahip URL olarak ayarlanırsa yalnızca ilgili sayfanın verileri döndürülür.
Boyutlar
Boyutlar, bir kaydın toplandığı belirli bir veri grubunu tanımlar. Örneğin, PHONE
biçim faktörü, kaydın bir mobil cihazda gerçekleşen yüklemelerle ilgili bilgiler içerdiğini gösterir. Her boyutun belirli sayıda değeri vardır ve bu boyutun belirtilmemesi, boyutun tüm değerler üzerinden toplandığı anlamına gelir. Örneğin, form faktörü belirtilmemişse kaydın herhangi bir form faktöründe gerçekleşen yüklemelerle ilgili bilgi içerdiği anlaşılır.
Form Faktörü
Son kullanıcının sayfaya gitmek için kullandığı cihaz sınıfı. Bu, PHONE
, TABLET
ve DESKTOP
olarak ayrılmış genel bir cihaz sınıfıdır.
Metrik
Metrikleri histogramlar, yüzdelikler ve kesirler halinde istatistiksel toplama olarak raporlarız.
Kayan noktalı değerler 4 ondalık basamağa yuvarlanır (cumulative_layout_shift
metriklerinin dize olarak kodlanmış çiftler olduğunu, dolayısıyla kayan noktalı sayı olarak kabul edilmediğini ve dize içinde 2 ondalık basamak halinde raporlandığını unutmayın).
Histogram
Metrikler bir histogramda ifade edildiğinde, ilgili metrik için belirli aralıklara giren sayfa yüklemelerinin yüzdelerini gösteririz.
Örnek bir metrik için üç binlik bir histogram aşağıdaki gibi görünür:
{
"histogram": [
{
"start": 0,
"end": 1000,
"density": 0.3818
},
{
"start": 1000,
"end": 3000,
"density": 0.4991
},
{
"start": 3000,
"density": 0.1192
}
]
}
Bu veriler, sayfa yüklemelerinin% 38,18'inde örnek metriğin 0 ms ile 1.000 ms arasında ölçüldüğünü gösterir. Metrik birimleri bu histogramda yer almaz. Bu durumda milisaniye olduğunu varsayacağız.
Ayrıca, sayfa yüklemelerinin% 49,91'inde 1.000 ms ile 3.000 ms arasında bir metrik değeri, %11,92'sinde ise 3.000 ms'den büyük bir değer görüldü.
Yüzdelik dilim
Metrikler, ek analizler için yararlı olabilecek yüzdelik dilimleri de içerebilir. Belirli metrik değerlerini, ilgili metrik için belirtilen yüzdelik dilimde bildiririz. Bunlar, nihai gruplandırılmış verileri değil, mevcut verilerin tamamını temel alır. Bu nedenle, nihai gruplandırılmış histograma dayalı bir enterpolasyonlu yüzdeyle eşleşmeyebilir.
{
"percentiles": {
"p75": 2063
}
}
Bu örnekte, sayfa yüklemelerinin en az% 75'i <= 2063
metrik değeriyle ölçülmüştür.
Kesirler
Kesirler, belirli bir şekilde etiketlenebilen sayfa yüklemelerinin yüzdelerini gösterir. Bu durumda metrik değerleri bu etiketlerdir.
Örneğin, form_factors
metriği, belirli bir sorgunun kapsadığı form faktörlerinin (veya cihazların) dökümünü listeleyen bir fractions
nesnesinden oluşur:
"form_factors": {
"fractions": {
"desktop": 0.0377,
"tablet": 0.0288,
"phone": 0.9335
}
}
Bu durumda, sayfa yüklemelerinin% 3,77'si masaüstünde, %2,88'i tablette ve% 93,35'i telefonda ölçüldü. Böylece toplam% 100'e ulaşıldı.
Metrik değer türleri
CrUX API Metrik Adı | Veri Türü | Metrik Birimler | İstatistiksel Toplamalar | Belgeler |
---|---|---|---|---|
cumulative_layout_shift |
2 ondalık basamaklı, dize olarak çift kodlanmış | birimsiz | Üç bölmeli histogram, p75 ile yüzdelik dilim | cls |
first_contentful_paint |
int | milisaniye | Üç bölmeli histogram, p75 ile yüzdelik dilim | fcp |
interaction_to_next_paint |
int | milisaniye | Üç bölmeli histogram, p75 ile yüzdelik dilim | inp |
largest_contentful_paint |
int | milisaniye | Üç bölmeli histogram, p75 ile yüzdelik dilim | lcp |
experimental_time_to_first_byte |
int | milisaniye | Üç bölmeli histogram, p75 ile yüzdelik dilim | ttfb |
form_factors |
4 ondalık basamaklı çift | yüzde | form faktöründen kesre eşleme | form faktörleri |
navigation_types |
4 ondalık basamaklı çift | yüzde | Gezinme türünden kesre eşleme | gezinme türleri |
round_trip_time |
int | milisaniye | p75 ile yüzdelik dilimler | rtt |
BigQuery metrik adı eşleme
CrUX API Metrik Adı | BigQuery Metrik Adı |
---|---|
cumulative_layout_shift |
layout_instability.cumulative_layout_shift |
first_contentful_paint |
first_contentful_paint |
interaction_to_next_paint |
interaction_to_next_paint |
largest_contentful_paint |
largest_contentful_paint |
experimental_time_to_first_byte |
experimental.time_to_first_byte |
navigation_types |
navigation_types |
form_factors |
Yok |
round_trip_time |
Yok |
Toplama dönemi
Ekim 2022 itibarıyla CrUX API, toplama aralığının başlangıç ve bitiş tarihlerini temsil eden firstDate
ve endDate
alanlarına sahip bir collectionPeriod
nesnesi içerir. Örneğin:
"collectionPeriod": {
"firstDate": {
"year": 2022,
"month": 9,
"day": 12
},
"lastDate": {
"year": 2022,
"month": 10,
"day": 9
}
}
Bu sayede verileri ve ilgili gün için henüz güncellenip güncellenmediğini ya da dünkü verileri döndürüp döndürmediğini daha iyi anlayabilirsiniz.
CrUX API'nin, günün tamamlanmış verilerini beklediği ve API'de kullanılabilmesi için biraz işlem süresi gerektiği için bugünün tarihinden yaklaşık iki gün geride olduğunu unutmayın. Kullanılan saat dilimi Pasifik Standart Saati'dir (PST) ve yaz saati uygulamasında herhangi bir değişiklik yoktur.
Ayrıca, veriler 28 günün tamamına ait olmasa bile (örneğin, bir sayfa 28 günden kısa bir süre önce yayınlanmışsa) collectionPeriod
her zaman 28 gün gösterir. collectionPeriod
, CrUX verilerinin toplandığı dönemdir, verilerin temsil ettiği dönem olmayabilir.
Örnek sorgular
Sorgular, https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=[YOUR_API_KEY]"
adresine POST isteği gönderilerek JSON nesnesi olarak gönderilir. Sorgu verileri, POST gövdesinde JSON nesnesi olarak gönderilir:
{
"origin": "https://example.com",
"formFactor": "PHONE",
"metrics": [
"largest_contentful_paint",
"experimental_time_to_first_byte"
]
}
Örneğin, bu komut aşağıdaki komut satırıyla curl
adresinden çağrılabilir (API_KEY
, anahtarınızla değiştirilir):
curl -s --request POST 'https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=API_KEY' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"formFactor":"PHONE","origin":"https://www.example.com","metrics":["largest_contentful_paint", "experimental_time_to_first_byte"]}'
Sayfa düzeyindeki veriler, sorguda origin
yerine url
mülkü iletilerek API üzerinden kullanılabilir:
{
"url": "https://example.com/page",
"formFactor": "PHONE",
"metrics": [
"largest_contentful_paint",
"experimental_time_to_first_byte"
]
}
metrics
mülkü ayarlanmazsa mevcut tüm metrikler döndürülür:
cumulative_layout_shift
first_contentful_paint
interaction_to_next_paint
largest_contentful_paint
experimental_time_to_first_byte
navigation_types
form_factors
(yalnızca istekteformFactor
belirtilmemişse raporlanır)
formFactor
değeri sağlanmazsa değerler tüm form faktörlerinde toplanır.
Daha fazla örnek sorgu için Chrome Kullanıcı Deneyimi Raporu API'sini kullanma başlıklı makaleyi inceleyin.
Veri ardışık düzeni
CrUX veri kümesi, API kullanılarak kullanıma sunulmadan önce verileri birleştirmek, toplamak ve filtrelemek için bir ardışık düzen üzerinden işlenir.
Hareketli ortalama
Chrome kullanıcı deneyimi raporundaki veriler, birleştirilmiş metriklerin 28 günlük hareketli ortalamasıdır. Bu, Chrome UX Report'ta herhangi bir zamanda sunulan verilerin aslında son 28 güne ait verilerin toplanmış hali olduğu anlamına gelir.
Bu, BigQuery'deki CrUX veri kümesinin aylık raporları toplamasına benzer.
Günlük güncellemeler
Veriler her gün UTC 04:00 civarında güncellenir. Güncelleme süreleri için hizmet düzeyi sözleşmesi yoktur. Güncelleme her gün mümkün olduğunca yapılır.
Şema
CrUX API için POST
HTTP isteklerini kabul eden tek bir uç nokta vardır. API, istenen kaynak veya sayfayla ilgili performans verilerine karşılık gelen bir veya daha fazla metrics
içeren bir record
döndürür.
HTTP isteği
POST https://chromeuxreport.googleapis.com/v1/records:queryRecord
URL, gRPC Kod Dönüştürme söz dizimini kullanır.
İstek içeriği
İstek gövdesi aşağıdaki yapıya sahip veriler içermelidir:
{
"formFactor": enum (FormFactor),
"metrics": [
string
],
// Union field url_pattern can be only one of the following:
"origin": string,
"url": string
// End of list of possible types for union field url_pattern.
}
Alanlar | |
---|---|
formFactor |
Form faktörü, kaydın verilerinin ait olması gereken cihaz sınıfını belirten bir sorgu boyutudur. Bu alanda Not: Form faktörü belirtilmezse tüm form faktörleri için birleştirilmiş veriler içeren özel bir kayıt döndürülür. |
metrics[] |
Yanıta dahil edilmesi gereken metrikler. Hiçbiri belirtilmezse bulunan tüm metrikler döndürülür. İzin verilen değerler: |
Birlik alanı url_ . url_pattern , kayıt arama işleminin ana tanımlayıcısıdır. Yalnızca aşağıdakilerden biri olabilir: |
|
origin |
Örnekler: |
url |
Örnekler: |
Örneğin, Chrome geliştirici dokümanları ana sayfası için masaüstündeki en büyük Largest Contentful Paint değerlerini istemek üzere:
{
"url": "https://developer.chrome.com/docs/",
"formFactor": "DESKTOP",
"metrics": [
"largest_contentful_paint"
]
}
Yanıt gövdesi
Başarılı istekler, aşağıdaki yapıda bir record
nesnesi ve urlNormalizationDetails
içeren yanıtlar döndürür:
{
"record": {
"key": {
object (Key)
},
"metrics": [
string: {
object (Metric)
}
]
},
"urlNormalizationDetails": {
object (UrlNormalization)
}
}
Örneğin, önceki istekteki istek gövdesine verilen yanıt şu olabilir:
{
"record": {
"key": {
"formFactor": "DESKTOP",
"url": "https://developer.chrome.com/docs/"
},
"metrics": {
"largest_contentful_paint": {
"histogram": [
{
"start": 0,
"end": 2500,
"density": 0.9815
},
{
"start": 2500,
"end": 4000,
"density": 0.0108
},
{
"start": 4000,
"density": 0.0077
}
],
"percentiles": {
"p75": 651
}
}
},
"collectionPeriod": {
"firstDate": {
"year": 2022,
"month": 9,
"day": 12
},
"lastDate": {
"year": 2022,
"month": 10,
"day": 9
}
}
}
}
Anahtar
Key
, bu kaydı benzersiz olarak tanımlayan tüm boyutları tanımlar.
{
"formFactor": enum (FormFactor),
// Union field url_pattern can be only one of the following:
"origin": string,
"url": string
// End of list of possible types for union field url_pattern.
}
Alanlar | |
---|---|
formFactor |
Form faktörü, bu kayıt için siteye erişmek üzere tüm kullanıcıların kullandığı cihaz sınıfıdır. Form faktörü belirtilmezse tüm form faktörleri için birleştirilmiş veriler döndürülür. |
Birlik alanı url_ . URL kalıbı, kaydın geçerli olduğu URL'dir. url_ yalnızca aşağıdakilerden biri olabilir: |
|
origin |
Not: Bir |
url |
Not: |
Metrikler
metric
, ilk zengin içerikli boyama gibi tek bir web performansı metriği için toplanmış kullanıcı deneyimi verilerinden oluşan bir gruptur.
Gerçek dünyadaki Chrome kullanımının özet histogramını bins
dizisi olarak, belirli yüzdelik verileri (ör. p75) veya etiketli kesirleri içerebilir.
{
"histogram": [
{
object (Bin)
}
],
"percentiles": {
object (Percentiles)
}
}
veya
{
"fractions": {
object (Fractions)
}
}
Alanlar | |
---|---|
histogram[] |
Bir metrik için kullanıcı deneyimlerinin histogrami. Histogramda en az bir kutu bulunur ve tüm kutuların yoğunlukları yaklaşık 1'e eşittir. |
percentiles |
Metrik için yaygın olarak kullanılan yüzdelik dilimler. Yüzdelik dilimlerin değer türü, histogram paketleri için verilen değer türleriyle aynı olur. |
fractions |
Bu nesne, toplamı yaklaşık 1 olan etiketli kesirler içerir. Kesirler 4 ondalık basamak olacak şekilde yuvarlanır. |
Bölme
bin
, başlangıçtan sona kadar veya bitiş belirtilmemişse başlangıçtan pozitif sonsuzluk değerine kadar olan verilerin ayrık bir bölümüdür.
Bir grubun başlangıç ve bitiş değerleri, temsil ettiği metriğin değer türünde verilir. Örneğin, ilk zengin içerikli boyama milisaniye cinsinden ölçülür ve tam sayı olarak gösterilir. Bu nedenle, metrik kapsayıcılarında başlangıç ve bitiş türleri için int32 kullanılır. Ancak kümülatif düzen kayması, birimsiz ondalık sayılarla ölçülür ve dize olarak kodlanmış bir ondalık sayı olarak gösterilir. Bu nedenle, metrik kapları değer türü için dizeler kullanır.
{
"start": value,
"end": value,
"density": number
}
Alanlar | |
---|---|
start |
Başlangıç, veri grubunun başlangıcıdır. |
end |
Bitiş, veri grubunun sonudur. end doldurulmamışsa bin'in bitiş değeri yoktur ve başlangıçtan +inf değerine kadar geçerlidir. |
density |
Belirtilen metrik için bu grubun değerini deneyimleyen kullanıcıların oranı. Yoğunluklar 4 ondalık basamağa yuvarlanır. |
Yüzdelik dilim
Percentiles
, belirli bir istatistiksel yüzdelik dilimdeki bir metriğin sentetik değerlerini içerir. Bunlar, bir metriğin değerini toplam kullanıcı sayısı içindeki kullanıcı yüzdesinin deneyimlediği şekilde tahmin etmek için kullanılır.
{
"P75": value
}
Alanlar | |
---|---|
p75 |
Sayfa yüklemelerinin% 75'inde, belirli metrik bu değerde veya bu değerin altındaydı. |
Kesirler
Fractions
, toplamı yaklaşık 1 olan etiketli kesirler içerir. Her etiket bir sayfa yüklemesini bir şekilde tanımlar. Bu nedenle, bu şekilde temsil edilen metriklerin sayısal değerler yerine farklı değerler ürettiği düşünülebilir. Kesirler ise belirli bir farklı değerin ne sıklıkta ölçüldüğünü ifade eder.
{
"label_1": fraction,
"label_2": fraction,
...
"label_n": fraction
}
Histogram kaplarındaki yoğunluk değerlerine benzer şekilde, her fraction
bir sayı 0.0 <= value <= 1.0
'dır ve toplamları yaklaşık 1, 0'dur.
UrlNormalization
Daha yüksek bir başarılı arama şansı elde etmek için bir URL'yi normalleştirmek üzere gerçekleştirilen normalleştirme işlemlerini temsil eden nesne. Bunlar, sağlanan url_pattern
başarısız olduğunda yapılacak basit otomatik değişikliklerdir. Yönlendirmeleri takip etme gibi karmaşık işlemler ele alınmaz.
{
"originalUrl": string,
"normalizedUrl": string
}
Alanlar | |
---|---|
originalUrl |
Normalleştirme işlemleri yapılmadan önce istenen orijinal URL. |
normalizedUrl |
Normalleştirme işlemlerinden sonraki URL. Bu, makul bir şekilde aranabilecek geçerli bir kullanıcı deneyimi URL'sidir. |
Hız sınırları
CrUX API, Google Cloud projesi başına dakika başına 150 sorgu ile sınırlıdır ve ücretsiz olarak sunulur. Bu sınırı ve mevcut kullanımınızı Google Cloud Console'da görebilirsiniz. Bu geniş kota, kullanım alanlarının büyük çoğunluğu için yeterli olacaktır. Daha yüksek kota için ödeme yapmak mümkün değildir.