Come utilizzare il set di dati BigQuery CrUX

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 Google Cloud e una conoscenza di base di SQL.

In questa guida imparerai a utilizzare BigQuery per scrivere query sul set di dati CrUX al fine di estrarre risultati approfonditi sullo stato delle esperienze utente sul web:

  • Capire come sono organizzati i dati
  • Scrivere una query di base per valutare le prestazioni di un'origine
  • Scrivi una query avanzata per monitorare il rendimento nel tempo

Organizzazione dati

Per iniziare, osserva una query di base:

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

Per eseguire la query, inseriscila nell'editor di query e premi il pulsante "Esegui query" Pulsante:

Digita una semplice query nell'editor e premi Esegui.

Questa query è composta da due parti:

  • SELECT COUNT(DISTINCT origin) significa eseguire una query per il numero di origini nella tabella. In parole povere, due URL hanno la 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 CrUX
    • Il set di dati all, che rappresenta i dati di tutti i paesi
    • Tabella 202206, l'anno e il mese dei dati in formato AAAAMM

Esistono anche set di dati per ogni paese. Ad esempio, chrome-ux-report.country_ca.202206 rappresenta solo i dati relativi all'esperienza utente provenienti dal Canada.

All'interno di ogni set di dati sono presenti tabelle per ogni mese dal 2017 (10). Le nuove tabelle relative al mese di calendario precedente vengono pubblicate regolarmente.

La struttura delle tabelle di dati (nota anche come schema) contiene:

  • L'origine, ad esempio origin = 'https://www.example.com', che rappresenta la distribuzione dell'esperienza utente aggregata 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
    • first_paint (FP)
    • first_contentful_paint (FCP)
    • dom_content_load (DCL)
    • onload (OL)
    • sperimentale.first_input_delay (FID)

I dati di ogni metrica sono organizzati come 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 all'interno di quell'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 le nostre conoscenze dello schema della tabella 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

Esecuzione di query su CrUX FCP su BigQuery

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 per qualsiasi connessione e qualsiasi 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

Somma di CrUX FCP su BigQuery

Il risultato è 0.05355, ovvero 5,355% su tutti i dispositivi e i tipi di connessione. Possiamo modificare leggermente la query e sommare le densità di tutti i bin nel livello "rapido" Intervallo FCP compreso tra 0 e 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

Esecuzione rapida di query FCP su BigQuery

In questo modo ottieni 0.6977. In altre parole, il 69,77% delle esperienze utente FCP su web.dev è considerato "veloce" in base alla definizione dell'intervallo FCP.

Monitora le prestazioni

Ora che abbiamo estratto i dati sulle prestazioni di un'origine, possiamo confrontarli con i dati storici disponibili nelle tabelle precedenti. Per farlo, potremmo riscrivere l'indirizzo della tabella in un mese precedente oppure utilizzare la sintassi con caratteri jolly per eseguire query in 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

Esecuzione di query su una serie temporale di CrUX FCP su BigQuery

Qui vediamo che la percentuale di esperienze FCP rapide 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 per un'origine, calcolare la percentuale di esperienze veloci e tracciarle nel tempo. Come passaggio successivo, prova a eseguire query per due o più origini e a confrontarne le prestazioni.

Domande frequenti

Queste sono alcune delle domande frequenti sul set di dati BigQuery di CrUX:

Quando dovrei utilizzare BigQuery anziché altri strumenti?

BigQuery è necessario solo se non è possibile ottenere le stesse informazioni da altri strumenti come la dashboard di CrUX e PageSpeed Insights. Ad esempio, BigQuery ti consente di suddividere i dati in modo significativo e persino unirli ad altri set di dati pubblici come HTTP Archive per eseguire alcune attività di data mining avanzate.

Esistono limitazioni per l'utilizzo di BigQuery?

Sì, il limite più importante è che, per impostazione predefinita, gli utenti possono eseguire query solo per 1 TB di dati al mese. Oltre a questo, si applica la tariffa standard di 5 $/TB.

Dove posso trovare ulteriori informazioni su BigQuery?

Per saperne di più, consulta la documentazione di BigQuery.