Como adicionar a magnitude da classificação ao relatório CrUX no BigQuery

A partir do conjunto de dados de fevereiro de 2021, estamos adicionando uma métrica experimental ao relatório CrUX no BigQuery que distingue a popularidade das origens por ordens de magnitude: as principais mil origens, as 10 mil principais, as 100 mil principais, os 1 milhão principais...

Vejamos como isso funciona na prática:

SELECT
  experimental.popularity.rank AS rank_magnitude,
  COUNT(DISTINCT origin) AS num_origins
FROM
  `chrome-ux-report.all.202102`
GROUP BY
  rank_magnitude
ORDER BY
  rank_magnitude
Linha rank_magnitude num_origins
1 1.000 1.000
2 10.000 9.000
3 100.000 90 mil
4 1.000.000 900.000
15 10.000.000 7.264.371

Para o conjunto de dados globais de fevereiro de 2021, temos cinco buckets. Como esperado, na linha 1, vemos que há 1.000 origens com magnitude de classificação 1.000, as mil origens mais populares pela nossa métrica. A linha 2 pode parecer surpreendente, indicando que há apenas 9 mil origens no conjunto de 10 mil. Isso ocorre porque as origens na linha 1 também fazem parte do conjunto de 10 mil. Para selecionar as 10 mil origens principais, é necessário especificar experimental.popularity.rank <= 10000 ao fazer a consulta.

O conjunto de dados também contém a magnitude da classificação específica do país. Por exemplo, esta consulta lista as 10 mil origens mais populares na Alemanha.

SELECT DISTINCT origin
FROM `chrome-ux-report.country_de.202102`
WHERE experimental.popularity.rank <= 10000

Para falar sobre o potencial da nossa nova métrica de popularidade, vamos ver como os segmentos de popularidade da Web diferem em relação à métrica de First Contentful Paint (FCP). Para esta consulta, consideramos que um segundo é uma experiência do usuário rápida.

SELECT
  SUM(fcp.density)/count(distinct origin)
FROM
  `chrome-ux-report.all.202102`,
  UNNEST(first_contentful_paint.histogram.bin) AS fcp
WHERE
  fcp.start < 1000 AND experimental.popularity.rank <= 1000

Para as origens com experimental.popularity.rank <= 1000, a consulta soma todas as densidades de bucket de histograma para valores de métrica de FCP menores que 1000ms e divide por esse número, ou seja, calcula a porcentagem média de cargas de FCP rápidas para as 1.000 origens mais populares. Nesta consulta, todas as origens têm o mesmo peso, então isso não é perfeito. Mas vamos conferir se o resultado é sensível a mudanças na magnitude da classificação, alterando a cláusula where para especificar experimental.popularity.rank <= 10000. Fazemos isso para 10 mil, 100 mil e assim por diante:

Classificar a magnitude das origens Porcentagem de FCP < 1s, média das origens
1.000  53,6%
10.000 49,6%
100.000 45,9%
1.000.000 43,2%
10.000.000 39,9%

Isso indica que uma experiência do usuário mais rápida na Web está relacionada à maior popularidade.

No conjunto de dados de outubro de 2022, isso foi dividido em etapas de meia classificação. Executar novamente a primeira consulta para esse conjunto de dados mostra as meias etapas e o número de origens em cada magnitude de classificação:

SELECT
  experimental.popularity.rank AS rank_magnitude,
  COUNT(DISTINCT origin) AS num_origins
FROM
  `chrome-ux-report.all.202210`
GROUP BY
  rank_magnitude
ORDER BY
  rank_magnitude
Linha rank_magnitude num_origins
1 1.000 1.000
2 5.000 4.000
3 10.000 5.000
4 50.000 40.000
5 100.000 50.000
6 500.000 400.000
7 1.000.000 500.000
8 5.000.000 4.000.000
9 10.000.000 5.000.000
10 50.000.000 7.637.195

Saiba mais sobre como usar o CrUX no BigQuery e navegue pelo Manual do CrUX para conferir mais exemplos de consultas. Se quiser, compartilhe suas dúvidas e nos conte o que encontrar.