BigQuery-Dataset für CrUX-Nutzer verwenden

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“:

Geben Sie eine einfache Abfrage in den Editor ein und drücken Sie auf „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.202206 gibt 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 202206 mit dem Jahr und Monat der Daten im Format YYYYMM

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
    • first_paint (FP)
    • first_contentful_paint (FCP)
    • largest_contentful_paint (LCP)
    • dom_content_loaded (DCL)
    • onload (OL)
    • layout_instability.cumulative_layout_shift (CLS)
    • interaction_to_next_paint (INP)

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

FCP-Daten aus CrUX in BigQuery abfragen

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

CrUX-FCP in BigQuery zusammenfassen

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

Schnellen FCP in BigQuery abfragen

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

Zeitreihe des CrUX-FCP in BigQuery abfragen

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.