I dati non elaborati del report sull'esperienza utente di Chrome (CrUX) sono disponibili in BigQuery, un database su Google Cloud. L'utilizzo di BigQuery richiede un progetto GCP e una conoscenza di base di SQL.
In questa guida scoprirai come usare BigQuery per scrivere query sul set di dati CrUX per estrarre risultati approfonditi sullo stato delle esperienze utente sul web:
- Comprendere come sono organizzati i dati
- Scrivi una query di base per valutare le prestazioni di un'origine
- Scrivi una query avanzata per monitorare le prestazioni nel tempo
Organizzazione dei dati
Inizia osservando una query di base:
SELECT COUNT(DISTINCT origin) FROM `chrome-ux-report.all.202206`
Per eseguire la query, inseriscila nell'editor query e premi il pulsante "Esegui query":
Questa query si compone di due parti:
SELECT COUNT(DISTINCT origin)
significa eseguire query per il numero di origini nella tabella. Approssimativamente, due URL fanno parte della stessa origine se hanno lo stesso schema, host e porta.FROM chrome-ux-report.all.202206
specifica l'indirizzo della tabella di origine, composta da tre parti:- Il nome del progetto cloud
chrome-ux-report
all'interno del quale sono organizzati tutti i dati di CrUX - Il set di dati
all
, che rappresenta i dati di tutti i paesi - Tabella
202206
con l'anno e il mese dei dati in formato AAAAMM
- Il nome del progetto cloud
Esistono anche set di dati per ogni paese. Ad esempio, chrome-ux-report.country_ca.202206
rappresenta solo i dati sull'esperienza utente provenienti dal Canada.
All'interno di ogni set di dati sono presenti tabelle per tutti i mesi a partire dal 2017.10 Le nuove tabelle relative al mese di calendario precedente vengono pubblicate regolarmente.
La struttura delle tabelle di dati (detta anche schema) contiene:
- L'origine, ad esempio
origin = 'https://www.example.com'
, che rappresenta la distribuzione aggregata dell'esperienza utente per tutte le pagine del sito web. - La velocità di connessione al momento del caricamento della pagina, ad esempio
effective_connection_type.name = '4G'
- Il tipo di dispositivo, ad esempio
form_factor.name = 'desktop'
- Le metriche UX stesse.
- first_paint (FP)
- first_contentful_paint (FCP)
- dom_content_load (DCL)
- onload (OL)
- sperimentali.first_input_delay (FID)
I dati per ogni metrica sono organizzati come un array di oggetti. In notazione JSON, first_contentful_paint.histogram.bin
sarebbe simile a questo:
[
{"start": 0, "end": 100, "density": 0.1234},
{"start": 100, "end": 200, "density": 0.0123},
...
]
Ogni bin contiene un'ora di inizio e di fine in millisecondi e una densità che rappresenta la percentuale di esperienze utente in questo intervallo di tempo. In altre parole, il 12, 34% delle esperienze FCP per questa ipotetica origine, velocità di connessione e tipo di dispositivo sono inferiori a 100 ms. La somma di tutte le densità bin è 100%.
Sfoglia la struttura delle tabelle in BigQuery.
Valutare il rendimento
Possiamo utilizzare la nostra conoscenza dello schema delle tabelle per scrivere una query che estragga questi dati sulle prestazioni.
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
Il risultato è 0.01115
, il che significa che l'1,115% delle esperienze utente su questa origine è compreso tra 0 e 100 ms su 4G e su uno smartphone. Se vogliamo generalizzare la query a qualsiasi connessione e tipo di dispositivo, possiamo ometterli dalla clausola WHERE
e utilizzare la funzione di aggregazione SUM
per sommare tutte le rispettive densità di bin:
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
Il risultato è 0.05355
, ovvero il 5,355% su tutti i dispositivi e i tipi di connessione. Possiamo modificare leggermente la query e sommare le densità per tutte le fasce che rientrano nell'intervallo FCP "rapido" di 0-1000 ms:
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
Questo ci dà 0.6977
. In altre parole, il 69,77% delle esperienze utente FCP su web.dev sono considerate "veloci" secondo la definizione dell'intervallo FCP.
Monitora le prestazioni
Ora che abbiamo estratto i dati sul rendimento di un'origine, possiamo confrontarli con i dati storici disponibili nelle tabelle precedenti. Per farlo, potremmo riscrivere l'indirizzo della tabella con un mese precedente o utilizzare la sintassi del carattere jolly per eseguire query su tutti i mesi:
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
Vediamo che la percentuale di esperienze FCP veloci varia di alcuni punti percentuali ogni mese.
aaaamm | fast_fcp |
---|---|
202206 | 69,77% |
202205 | 70,71% |
202204 | 69,04% |
202203 | 69,82% |
202202 | 67,75% |
202201 | 58,96% |
202112 | 41,69% |
... | ... |
Con queste tecniche, è possibile cercare le prestazioni di un'origine, calcolare la percentuale di esperienze veloci e monitorarla nel tempo. Come passaggio successivo, prova a eseguire query per due o più origini e a confrontarne il rendimento.
Domande frequenti
Ecco alcune delle domande frequenti sul set di dati BigQuery CrUX:
Quando è consigliabile utilizzare BigQuery rispetto ad altri strumenti?
BigQuery è necessario solo quando non puoi ottenere le stesse informazioni da altri strumenti come CrUX Dashboard e PageSpeed Insights. Ad esempio, BigQuery ti consente di suddividere i dati in modo significativo e persino di unirli ad altri set di dati pubblici come l'archivio HTTP per eseguire attività di data mining avanzate.
Esistono limitazioni all'utilizzo di BigQuery?
Sì, il limite più importante è che per impostazione predefinita gli utenti possono eseguire query solo su 1 TB di dati al mese. Inoltre, si applica la tariffa standard di 5 $/TB.
Dove posso trovare ulteriori informazioni su BigQuery?
Per saperne di più, consulta la documentazione di BigQuery.