Измеряйте Core Web Vitals с помощью PSI API и CrUX API

1. Прежде чем начать

В этой лабораторной работе вы узнаете, как измерить основные веб-жизненные показатели веб-страницы с помощью API PageSpeed ​​Insights (PSI) и API Chrome UX Report (CrUX).

Оба API возвращают идентичные данные Core Web Vitals, но каждый API предлагает свои преимущества. В дополнение к полевым данным CrUX API PSI также предоставляет данные от Lighthouse — автоматизированного инструмента Google с открытым исходным кодом, который проверяет веб-страницы и дает рекомендации по их улучшению. API CrUX не предоставляет данные Lighthouse, поэтому выполняется быстрее.

Google рекомендует измерять Core Web Vitals на мобильных и настольных устройствах. Core Web Vitals включает эти три показателя, которые применяются ко всем веб-страницам и дают вам критическое представление о пользовательском опыте:

  • Самая большая содержательная краска (LCP). Измеряет производительность загрузки и должно происходить в течение 2,5 секунд после начала загрузки страницы.
  • Задержка первого ввода (FID). Измеряет интерактивность и должно происходить в течение 100 миллисекунд.
  • Совокупный сдвиг макета (CLS). Измеряет визуальную стабильность и должен быть в пределах 0,1.

Предпосылки

Что ты будешь делать

  • Измеряйте Core Web Vitals веб-страницы с помощью PSI API.
  • Измеряйте Core Web Vitals веб-страницы с помощью CrUX API.

Что вам понадобится

  • Аккаунт Google
  • Доступ к командной строке
  • Текстовый редактор на ваш выбор
  • Веб-браузер на ваш выбор
  • URL-адрес по вашему выбору (в этой лаборатории кода используется https://developers.google.com .)

2. Измеряйте Core Web Vitals с помощью PSI API

  1. Если вам нужны данные о производительности для настольной версии URL-адреса, запустите эту команду curl , чтобы запросить данные из API PageSpeed ​​Insights и сохранить их в файле response.txt :
curl -o response.txt "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=YOUR_URL&strategy=desktop"

Замените заполнитель YOUR_URL своим URL-адресом.

  1. Если вам нужны данные о производительности для мобильной версии URL-адреса, задайте для параметра запроса strategy значение для mobile в конце строки API в команде, представленной на предыдущем шаге:
curl -o response.txt "https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=YOUR_URL&strategy=mobile"

Замените заполнитель YOUR_URL своим URL-адресом.

  1. В текстовом редакторе откройте файл response.txt и найдите свойство loadingExperience :

ответ.txt

   "loadingExperience": {
    "id": "https://developers.google.com/",
    "metrics": {
      "LARGEST_CONTENTFUL_PAINT_MS": {
        "percentile": 1714,
        "distributions": [
          {
            "min": 0,
            "max": 1000,
            "proportion": 0.49701860391159164
          },
          {
            "min": 1000,
            "max": 3000,
            "proportion": 0.40071951025600261
          },
          {
            "min": 3000,
            "proportion": 0.10226188583240581
          }
        ],
        "category": "AVERAGE"
      },
  },

Свойство loadingExperience сообщает эту информацию для каждого из Core Web Vitals на основе URL-адреса и типа устройства, указанных в запросе API:

  • Свойство percentile указывает 75-й процентиль для каждой метрики.
  • Свойство distributions указывает процент просмотров страниц, которые были хорошими , нуждаются в улучшении или плохими для каждой метрики.
  • Свойство category классифицирует производительность каждой метрики как медленную, среднюю или быструю.

Если содержимое свойства loadingExperience пусто, для URL-адреса недостаточно доступных данных о производительности. Эта проблема обычно возникает при тестировании веб-страниц с низким трафиком.

  1. Найдите свойство originLoadingExperience :

ответ.txt

  "originLoadingExperience": {
    "id": "https://developers.google.com",
    "metrics": {
      "LARGEST_CONTENTFUL_PAINT_MS": {
        "percentile": 1649,
        "distributions": [
          {
            "min": 0,
            "max": 1000,
            "proportion": 0.488838781075378
          },
          {
            "min": 1000,
            "max": 3000,
            "proportion": 0.42709617576692827
          },
          {
            "min": 3000,
            "proportion": 0.084065043157693739
          }
        ],
        "category": "AVERAGE"
      },
  },

Свойство originLoadingExperience сообщает об объединенных возможностях для всего источника, а не только для URL-адреса. Он предоставляет ту же информацию для каждого из Core Web Vitals, что и в предыдущем шаге.

3. Измеряйте Core Web Vitals с помощью CrUX API

Получить API-ключ

  1. В Google Cloud Console найдите Chrome UX , а затем выберите Chrome UX Report API в раскрывающемся меню.
  2. На странице Chrome UX Report API нажмите « Включить », а затем подождите, пока кнопка « Включить » не изменится на кнопку « Управление », и выберите « Управление» .
  3. В меню навигации нажмите « Учетные данные », затем выберите « Создать учетные данные» > «Ключ API» и скопируйте ключ API.

Сделать запрос

  1. Из командной строки запросите данные о производительности для вашего URL-адреса из CrUX API и сохраните их в файле response.txt :
curl -o response.txt 'https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=YOUR_API_KEY' 'Content-Type: application/json' --data '{"url":"YOUR_URL"}'

Замените заполнитель YOUR_API_KEY своим ключом API, а затем замените заполнитель YOUR_URL своим URL-адресом.

  1. В текстовом редакторе откройте файл response.txt :

ответ.txt

{
  "record": {
    "key": {
      "url": "https://developers.google.com/"
    },
    "metrics": {
      "cumulative_layout_shift": {
        "histogram": [
          {
            "start": "0.00",
            "end": "0.10",
            "density": 0.47784335300590036
          },
          {
            "start": "0.10",
            "end": "0.25",
            "density": 0.32379713914174157
          },
          {
            "start": "0.25",
            "density": 0.19835950785235579
          }
        ],
        "percentiles": {
          "p75": "0.23"
        }
      },
    }
  },
}

Ответ CrUX API предоставляет следующую информацию для каждого из основных веб-показателей:

  • Свойство histogram указывает процент пользователей, которые работали медленно, в среднем или быстро для данной метрики.
  • Свойство percentiles указывает наблюдение 75-го процентиля для данной метрики.

Если вы видите сообщение об ошибке, в котором говорится, что данные не найдены, для данного URL-адреса недостаточно данных о производительности. Эта проблема обычно возникает при тестировании веб-страниц с низким трафиком.

4. Поздравления

Поздравляем! Вы измерили Core Web Vitals веб-страницы с помощью PSI API и CrUX API.

Узнать больше