De ruwe data van het Chrome UX Report ( CrUX ) is beschikbaar op BigQuery , een database op Google Cloud. Om BigQuery te gebruiken, heb je een GCP-project en basiskennis van SQL nodig.
In deze handleiding leert u hoe u BigQuery kunt gebruiken om query's uit te voeren op de CruX-dataset en zo waardevolle inzichten te verkrijgen in de staat van de gebruikerservaring op het web:
- Begrijp hoe de gegevens georganiseerd zijn.
- Schrijf een eenvoudige query om de prestaties van een server te evalueren.
- Schrijf een geavanceerde query om de prestaties in de loop van de tijd te volgen.
Gegevensorganisatie
Begin met een eenvoudige zoekopdracht:
SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`
Om de query uit te voeren, voert u deze in de query-editor in en drukt u op de knop "Query uitvoeren":

Deze vraag bestaat uit twee delen:
SELECT COUNT(DISTINCT origin)betekent dat er wordt gezocht naar het aantal origins in de tabel. Grofweg gezegd, twee URL's behoren tot dezelfde origin als ze hetzelfde schema, host en poort hebben.FROM chrome-ux-report.all.202206specificeert het adres van de brontabel, die uit drie delen bestaat:- Het cloudproject met de naam
chrome-ux-reportis de locatie waarbinnen alle CruX-gegevens worden georganiseerd. - De dataset
allbevat gegevens uit alle landen. - De tabel
202206, het jaar en de maand van de gegevens in het formaat JJJJMM.
- Het cloudproject met de naam
Er zijn ook datasets voor elk land. Zo bevat chrome-ux-report.country_ca.202206 alleen de gebruikerservaringgegevens afkomstig uit Canada.
Elke dataset bevat tabellen voor elke maand sinds oktober 2017. Nieuwe tabellen voor de voorgaande kalendermaand worden regelmatig gepubliceerd.
De structuur van de gegevenstabellen (ook wel het schema genoemd) bevat:
- De oorsprong, bijvoorbeeld
origin = 'https://www.example.com', vertegenwoordigt de totale gebruikerservaring voor alle pagina's op die website. - De verbindingssnelheid op het moment dat de pagina wordt geladen, bijvoorbeeld
effective_connection_type.name = '4G'( verwijderd vanaf februari 2025 ) - Het apparaattype, bijvoorbeeld
form_factor.name = 'desktop' - De UX-statistieken zelf
De gegevens voor elke metriek zijn georganiseerd als een array van objecten. In JSON-notatie zou first_contentful_paint.histogram.bin er ongeveer zo uitzien:
[
{"start": 0, "end": 100, "density": 0.1234},
{"start": 100, "end": 200, "density": 0.0123},
...
]
Elke bin bevat een begin- en eindtijd in milliseconden en een dichtheid die het percentage gebruikerservaringen binnen dat tijdsbereik weergeeft. Met andere woorden, 12,34% van de FCP-ervaringen voor deze hypothetische herkomst, verbindingssnelheid en apparaattype zijn korter dan 100 ms. De som van alle bindichtheden is 100%.
Bekijk de structuur van de tabellen in BigQuery.
Evalueer de prestaties
We kunnen onze kennis van het tabelschema gebruiken om een query te schrijven die deze prestatiegegevens extraheert.
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

Het resultaat is 0.01115 , wat betekent dat 1,115% van de gebruikerservaringen op deze oorsprong tussen 0 en 100 ms liggen op 4G en op een telefoon. Als we onze query willen generaliseren naar elke verbinding en elk apparaattype, kunnen we deze weglaten uit de WHERE clausule en de aggregatiefunctie SUM gebruiken om alle respectievelijke bin-dichtheden op te tellen:
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

Het resultaat is 0.05355 , oftewel 5,355% over alle apparaten en verbindingstypen. We kunnen de query iets aanpassen en de dichtheden optellen voor alle bins die zich in het "snelle" FCP-bereik van 0-1000 ms bevinden:
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

Dit geeft ons 0.6977 . Met andere woorden, 69,77% van de FCP-gebruikerservaringen op web.dev wordt als "snel" beschouwd volgens de FCP-bereikdefinitie.
Trackprestaties
Nu we prestatiegegevens over een bepaalde herkomst hebben verzameld, kunnen we deze vergelijken met de historische gegevens in oudere tabellen. Hiervoor kunnen we het tabeladres aanpassen naar een eerdere maand, of we kunnen de wildcard-syntaxis gebruiken om alle maanden op te vragen:
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

Hieruit blijkt dat het percentage snelle FCP-ervaringen maandelijks met een paar procentpunten varieert.
| jjjjmm | fast_fcp |
|---|---|
| 202206 | 69,77% |
| 202205 | 70,71% |
| 202204 | 69,04% |
| 202203 | 69,82% |
| 202202 | 67,75% |
| 202201 | 58,96% |
| 202112 | 41,69% |
| ... | ... |
Met deze technieken kunt u de prestaties van een specifieke bron opzoeken, het percentage snelle ervaringen berekenen en dit in de loop van de tijd volgen. Probeer vervolgens de prestaties van twee of meer bronnen te vergelijken.
Veelgestelde vragen
Dit zijn enkele veelgestelde vragen over de CruX BigQuery-dataset:
Wanneer zou ik BigQuery gebruiken in plaats van andere tools?
BigQuery is alleen nodig als je dezelfde informatie niet kunt verkrijgen met andere tools zoals CruX Vis en PageSpeed Insights. Met BigQuery kun je bijvoorbeeld de data op zinvolle manieren filteren en zelfs combineren met andere openbare datasets zoals het HTTP Archive om geavanceerde data-analyse uit te voeren.
Zijn er beperkingen aan het gebruik van BigQuery?
Ja, de belangrijkste beperking is dat gebruikers standaard slechts 1 TB aan data per maand kunnen opvragen. Daarboven geldt het standaardtarief van $5 per TB.
Waar kan ik meer leren over BigQuery?
Raadpleeg de BigQuery-documentatie voor meer informatie.