Die Rohdaten des Chrome UX Report (CrUX) sind in BigQuery verfügbar, einer Datenbank in Google Cloud. Für die Verwendung von BigQuery ist ein GCP-Projekt und grundlegendes SQL-Wissen erforderlich.
In dieser Anleitung erfahren Sie, wie Sie mit BigQuery Abfragen für das CrUX-Dataset schreiben, um aussagekräftige Ergebnisse zum Zustand der Nutzerfreundlichkeit im Web zu erhalten:
- Datenorganisation
- Einfache Abfrage schreiben, um die Leistung eines Ursprungs zu bewerten
- Erweiterte Abfrage schreiben, um die Leistung im Zeitverlauf zu verfolgen
Datenorganisation
Sehen wir uns zuerst eine einfache Abfrage an:
SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`
Geben Sie die Abfrage in den Abfrageeditor ein und klicken Sie auf die Schaltfläche „Abfrage ausführen“:

Diese Abfrage besteht aus zwei Teilen:
SELECT COUNT(DISTINCT origin)bedeutet, dass die Anzahl der Ursprünge in der Tabelle abgefragt wird. Grob gesagt gehören zwei URLs zum selben Ursprung, wenn sie dasselbe Schema, denselben Host und denselben Port haben.FROM chrome-ux-report.all.202206gibt die Adresse der Quelltabelle an, die aus drei Teilen besteht:- Der Name des Cloud-Projekts
chrome-ux-report, in dem alle CrUX-Daten organisiert sind - Das Dataset
all, das Daten aus allen Ländern enthält - Die Tabelle
202206mit dem Jahr und Monat der Daten im Format YYYYMM
- Der Name des Cloud-Projekts
Es gibt auch Datasets für jedes Land. chrome-ux-report.country_ca.202206 enthält beispielsweise nur die Daten zur Nutzerfreundlichkeit aus Kanada.
In jedem Dataset gibt es Tabellen für jeden Monat seit 201710. Regelmäßig werden neue Tabellen für den vorherigen Kalendermonat veröffentlicht.
Die Struktur der Datentabellen (auch Schema genannt) enthält:
- Den Ursprung, z. B.
origin = 'https://www.example.com', der die aggregierte Verteilung der Nutzerfreundlichkeit für alle Seiten auf dieser Website darstellt - Die Verbindungsgeschwindigkeit zum Zeitpunkt des Seitenaufbaus, z. B.
effective_connection_type.name = '4G'(wird ab Februar 2025 entfernt) - Den Gerätetyp, z. B.
form_factor.name = 'desktop' - Die Messwerte zur Nutzerfreundlichkeit selbst
Die Daten für jeden Messwert sind als Array von Objekten organisiert. In der JSON-Notation würde first_contentful_paint.histogram.bin so aussehen:
[
{"start": 0, "end": 100, "density": 0.1234},
{"start": 100, "end": 200, "density": 0.0123},
...
]
Jeder Bin enthält eine Start- und eine Endzeit in Millisekunden sowie eine Dichte, die den Prozentsatz der Nutzerfreundlichkeit in diesem Zeitraum darstellt. Mit anderen Worten: 12,34% der FCP-Ergebnisse für diesen hypothetischen Ursprung, die Verbindungsgeschwindigkeit und den Gerätetyp liegen unter 100 ms. Die Summe aller Bin-Dichten beträgt 100%.
Sehen Sie sich die Struktur der Tabellen in BigQuery an.
Leistung auswerten
Mit unserem Wissen über das Tabellenschema können wir eine Abfrage schreiben, mit der diese Leistungsdaten extrahiert werden.
SELECT
fcp
FROM
`chrome-ux-report.all.202502`,
UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
origin = 'https://web.dev' AND
form_factor.name = 'phone' AND
fcp.start = 0

Das Ergebnis ist 0.01115.Das bedeutet, dass 1,115% der Nutzerfreundlichkeit für diesen Ursprung zwischen 0 und 100 ms bei 4G und auf einem Smartphone liegen. Wenn wir unsere Abfrage auf jede Verbindung und jeden Gerätetyp verallgemeinern möchten, können wir sie aus der WHERE-Klausel entfernen und die Aggregatfunktion SUM verwenden, um alle entsprechenden Bin-Dichten zu addieren:
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

Das Ergebnis ist 0.05355 oder 5, 355% für alle Geräte und Verbindungstypen. Wir können die Abfrage leicht ändern und die Dichten für alle Bins addieren, die im „schnellen“ FCP-Bereich von 0 bis 1.000 ms liegen:
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

Das Ergebnis ist 0.6977. Mit anderen Worten: 69, 77% der FCP-Nutzerfreundlichkeit auf web.dev werden gemäß der FCP-Bereichsdefinition als „schnell“ eingestuft.
Leistungserfassung
Nachdem wir Leistungsdaten zu einem Ursprung extrahiert haben, können wir sie mit den Verlaufsdaten in älteren Tabellen vergleichen. Dazu können wir die Tabellenadresse in einen früheren Monat ändern oder die Platzhaltersyntax verwenden, um alle Monate abzufragen:
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

Hier sehen wir, dass der Prozentsatz der schnellen FCP-Ergebnisse jeden Monat um einige Prozentpunkte variiert.
| yyyymm | fast_fcp |
|---|---|
| 202206 | 69,77% |
| 202205 | 70,71% |
| 202204 | 69,04% |
| 202203 | 69,82% |
| 202202 | 67,75% |
| 202201 | 58,96% |
| 202112 | 41,69% |
| ... | ... |
Mit diesen Techniken können Sie die Leistung für einen Ursprung ermitteln, den Prozentsatz der schnellen Ergebnisse berechnen und im Zeitverlauf verfolgen. Im nächsten Schritt können Sie zwei oder mehr Ursprünge abfragen und ihre Leistung vergleichen.
FAQ
Hier finden Sie einige häufig gestellte Fragen zum CrUX-BigQuery-Dataset:
Wann sollte ich BigQuery anstelle anderer Tools verwenden?
BigQuery ist nur erforderlich, wenn Sie dieselben Informationen nicht aus anderen Tools wie CrUX Vis und PageSpeed Insights abrufen können. Mit BigQuery können Sie die Daten beispielsweise auf aussagekräftige Weise aufteilen und sogar mit anderen öffentlichen Datasets wie dem HTTP Archive verknüpfen, um erweiterte Data-Mining-Analysen durchzuführen.
Gibt es Einschränkungen bei der Verwendung von BigQuery?
Ja. Die wichtigste Einschränkung besteht darin, dass Nutzer standardmäßig nur Daten im Wert von 1 TB pro Monat abfragen können. Danach gilt der Standardpreis von 5 $/TB.
Wo finde ich weitere Informationen zu BigQuery?
Weitere Informationen finden Sie in der BigQuery-Dokumentation.