BigQuery-Dataset für CrUX-Nutzer verwenden

Die Rohdaten des Chrome UX-Berichts (CrUX) sind in BigQuery, einer Datenbank in Google Cloud, verfügbar. Für die Verwendung von BigQuery benötigen Sie ein GCP-Projekt und grundlegende Kenntnisse von SQL.

In diesem Leitfaden erfahren Sie, wie Sie mit BigQuery Abfragen für das CrUX-Dataset schreiben und aufschlussreiche Ergebnisse zur Nutzererfahrung im Web extrahieren:

  • Datenorganisation
  • Grundlegende Abfrage zum Bewerten der Leistung eines Ursprungs erstellen
  • Erweiterte Abfrage zum Überwachen der Leistung im Zeitverlauf schreiben

Datenorganisation

Sehen wir uns zuerst eine einfache Abfrage an:

SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`

Um die Abfrage auszuführen, geben Sie sie 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, dass nach der Anzahl der Ursprünge in der Tabelle gefragt wird. Grob gesagt gehören zwei URLs zur selben Quelle, 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
    • Der Datensatz all mit Daten für alle Länder
    • Die Tabelle 202206, das Jahr und der Monat der Daten im Format JJJJMM

Es gibt auch Datensätze für jedes Land. chrome-ux-report.country_ca.202206 steht beispielsweise nur für 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 zusammengefasste Verteilung der Nutzerfreundlichkeit für alle Seiten auf dieser Website darstellt
  • Die Verbindungsgeschwindigkeit zum Zeitpunkt des Seitenaufbaus, z. B. effective_connection_type.name = '4G'
  • Der Gerätetyp, z. B. form_factor.name = 'desktop'
  • Die UX-Messwerte
    • 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 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 Container enthält eine Start- und eine Endzeit in Millisekunden sowie eine Dichte, die den Prozentsatz der Nutzererfahrungen innerhalb dieses Zeitraums angibt. Mit anderen Worten: Bei 12,34% der FCP-Erfahrungen für diesen hypothetischen Ursprung, diese Verbindungsgeschwindigkeit und diesen Gerätetyp liegt die Latenz unter 100 ms. Die Summe aller Bin-Dichten beträgt 100%.

Die Struktur der Tabellen in BigQuery ansehen

Leistung auswerten

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

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.Das bedeutet, dass 1,115% der Nutzererfahrungen an diesem 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 auslassen und die SUM-Aggregationsfunktion verwenden, um alle entsprechenden 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 summieren

Das Ergebnis ist 0.05355, also 5,355% auf allen Geräten und Verbindungstypen. Wir können die Abfrage leicht ändern und die Dichten für alle Bins im Bereich „schnell“ (0–1.000 ms) addieren:

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

Schnelle FCP-Abfragen in BigQuery

Das ergibt 0.6977. Mit anderen Worten: 69, 77% der FCP-Nutzererfahrungen auf web.dev gelten gemäß der Definition des FCP-Bereichs als „schnell“.

Leistungserfassung

Nachdem Sie nun die Leistungsdaten zu einem Ursprung extrahiert haben, können wir sie mit den Verlaufsdaten aus älteren Tabellen vergleichen. Dazu können wir die Tabellenadresse auf 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

Zeitreihen von CrUX-FCP in BigQuery abfragen

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

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 abrufen, den Prozentsatz der schnellen Tests berechnen und sie im Zeitverlauf verfolgen. Versuchen Sie als Nächstes, nach zwei oder mehr Ursprüngen zu fragen und ihre Leistung zu vergleichen.

FAQ

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

Wann sollte ich BigQuery anstelle anderer Tools verwenden?

BigQuery ist nur dann erforderlich, wenn Sie dieselben Informationen nicht mit anderen Tools wie dem CrUX-Dashboard und PageSpeed Insights erhalten können. Mit BigQuery können Sie die Daten beispielsweise sinnvoll segmentieren und sogar mit anderen öffentlichen Datasets wie dem HTTP-Archiv für erweitertes Data Mining zusammenführen.

Gibt es Einschränkungen bei der Verwendung von BigQuery?

Ja, die wichtigste Einschränkung ist, dass Nutzer standardmäßig nur Daten im Umfang von 1 TB pro Monat abfragen können. Darüber hinaus gilt der Standardpreis von 5 $/TB.

Wo erhalte ich weitere Informationen zu BigQuery?

Weitere Informationen finden Sie in der BigQuery-Dokumentation.