BigQuery-Dataset für CrUX-Nutzer verwenden

Die Rohdaten des UX-Berichts für Chrome (CrUX) sind in BigQuery verfügbar, einer Datenbank in Google Cloud. Für die Verwendung von BigQuery sind ein GCP-Projekt und Grundkenntnisse in SQL erforderlich.

In diesem Leitfaden erfahren Sie, wie Sie mit BigQuery Abfragen für das CrUX-Dataset schreiben, um aussagekräftige Ergebnisse zum Status der Nutzererfahrung im Web zu erhalten:

  • Verstehen, wie die Daten organisiert sind
  • Einfache Abfrage schreiben, um die Leistung eines Ursprungs zu bewerten
  • Eine erweiterte Abfrage schreiben, um die Leistung im Zeitverlauf zu verfolgen

Datenorganisation

Sehen Sie sich zunächst 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 klicken Sie auf „Ausführen“.

Diese Abfrage besteht aus zwei Teilen:

  • SELECT COUNT(DISTINCT origin) bedeutet, die Anzahl der Ursprünge in der Tabelle abzufragen. Vermutlich 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. Sie besteht aus drei Teilen:

    • Der Cloud-Projektname chrome-ux-report, in dem alle CrUX-Daten organisiert sind
    • Das Dataset all für Daten aus allen Ländern
    • Die Tabelle 202206, das Jahr und der Monat der Daten im Format JJJJMM

Außerdem gibt es Datasets für jedes Land. Beispielsweise repräsentiert chrome-ux-report.country_ca.202206 nur die Daten zur Nutzererfahrung aus Kanada.

Jedes Dataset enthält Tabellen für jeden Monat seit 201710. Neue Tabellen für den vorherigen Kalendermonat werden regelmäßig veröffentlicht.

Die Struktur der Datentabellen (auch als Schema bezeichnet) enthält:

  • Der Ursprung, z. B. origin = 'https://www.example.com', der die aggregierte Verteilung der Nutzererfahrung für alle Seiten der Website darstellt
  • Die Verbindungsgeschwindigkeit beim Seitenaufbau, z. B. effective_connection_type.name = '4G'
  • Der Gerätetyp, z. B. form_factor.name = 'desktop'
  • Die UX-Messwerte selbst
    • first_paint (FP)
    • first_contentful_paint (FCP)
    • dom_content_loading (DCL)
    • Onload (OL)
    • experimentell.first_input_delay (FID)

Die Daten für jeden Messwert sind in Form eines Arrays mit Objekten organisiert. In JSON-Notation sieht first_contentful_paint.histogram.bin etwa so aus:

[
    {"start": 0, "end": 100, "density": 0.1234},
    {"start": 100, "end": 200, "density": 0.0123},
    ...
]

Jeder Container enthält eine Start- und eine Endzeit in Millisekunden und eine Dichte, die den Prozentsatz der Nutzererfahrung in diesem Zeitraum angibt. Das bedeutet, dass 12, 34% der FCP-Werte für diesen hypothetischen Ursprung, die Verbindungsgeschwindigkeit und den Gerätetyp unter 100 ms liegen. Die Summe aller Bin-Dichten beträgt 100%.

Struktur der Tabellen in BigQuery durchsehen.

Leistung auswerten

Wir können unser Wissen über das Tabellenschema nutzen, um eine Abfrage zu schreiben, mit der diese Leistungsdaten extrahiert werden.

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

CrUX FCP in BigQuery abfragen

Das Ergebnis ist 0.01115, was bedeutet, dass 1,115% der Nutzererfahrung bei diesem Ursprung zwischen 0 und 100 ms bei 4G und auf einem Smartphone liegen. Wenn wir unsere Abfrage auf eine beliebige Verbindung und jeden Gerätetyp verallgemeinern möchten, können wir sie aus der WHERE-Klausel entfernen und die Aggregatorfunktion SUM verwenden, um alle jeweiligen Bin-Dichten zusammenzuzählen:

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, was 5,355% für alle Geräte und Verbindungstypen ist. Wir können die Abfrage geringfügig ändern und die Dichten für alle Container addieren, die sich im „schnellen“ FCP-Bereich zwischen 0 und 1.000 ms befinden:

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

Schnelles FCP in BigQuery abfragen

Dadurch erhalten wir 0.6977. Das bedeutet, dass 69,77% der FCP-Nutzererfahrungen auf web.dev gemäß der Definition des FCP-Bereichs als „schnell“ eingestuft werden.

Leistungserfassung

Nachdem wir nun Leistungsdaten über einen Ursprung extrahiert haben, können wir sie mit den Verlaufsdaten vergleichen, die in älteren Tabellen verfügbar sind. Dazu könnten wir die Tabellenadresse in einen früheren Monat umschreiben 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 von CrUX FCP in BigQuery abfragen

Hier sehen wir, dass der Prozentsatz der schnellen FCP-Nutzung jeden Monat um einige Prozentpunkte variiert.

jjjjmm 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 Verfahren können Sie die Leistung für einen Ursprung ermitteln, den Prozentsatz der schnellen Zugriffe berechnen und sie im Zeitverlauf verfolgen. Versuchen Sie als Nächstes, zwei oder mehr Ursprünge abzufragen und ihre Leistung zu vergleichen.

Häufig gestellte Fragen

Im Folgenden finden Sie einige der häufig gestellten Fragen zum BigQuery-Dataset für CrUX:

Wann sollte ich BigQuery anstelle anderer Tools verwenden?

BigQuery wird nur benötigt, wenn Sie die gleichen Informationen nicht von anderen Tools wie dem CrUX-Dashboard und PageSpeed Insights erhalten können. Mit BigQuery können Sie die Daten beispielsweise aussagekräftig segmentieren und mit anderen öffentlichen Datasets wie dem HTTP-Archiv zusammenführen, um erweitertes Data-Mining durchzuführen.

Gibt es Einschränkungen bei der Verwendung von BigQuery?

Ja. Die wichtigste Einschränkung besteht darin, dass Nutzer standardmäßig nur 1 TB Daten pro Monat abfragen können. Danach gilt der Standardpreis von 5 $/TB.

Wo kann ich mehr über BigQuery erfahren?

Weitere Informationen finden Sie in der BigQuery-Dokumentation.