Семплирование трафика — это методика, позволяющая собирать и анализировать метрики производительности сайтов без необходимости обработки всех сессий пользователей. В контексте Web Vitals семплирование особенно важно, поскольку измеряемые показатели напрямую зависят от реального опыта пользователей на разных устройствах, сетях и географических регионах. Цель семплирования — сохранить точность метрик при уменьшении объема данных для анализа.
Семплирование делится на два основных типа: случайное (random) и стратифицированное (stratified).
Случайное семплирование При случайном семплировании каждый визит на сайт имеет одинаковую вероятность быть включённым в набор данных. Этот метод прост в реализации: достаточно подключить скрипт Web Vitals к случайно выбранному проценту пользователей. Преимущества:
Стратифицированное семплирование Позволяет гарантировать, что данные будут представлены пропорционально важным группам пользователей, например, по:
Для измерения Web Vitals на практике часто используют библиотеку web-vitals:
import { getCLS, getFID, getLCP } from 'web-vitals';
function sendToAnalytics(metric) {
const body = JSON.stringify(metric);
navigator.sendBeacon('/analytics', body);
}
const SAMPLE_RATE = 0.1; // 10% трафика
function shouldSample() {
return Math.random() < SAMPLE_RATE;
}
if (shouldSample()) {
getCLS(sendToAnalytics);
getFID(sendToAnalytics);
getLCP(sendToAnalytics);
}
В данном примере 10% всех пользователей будут участвовать в измерениях Core Web Vitals. Это обеспечивает баланс между нагрузкой на аналитическую систему и репрезентативностью данных.
Репрезентативность критически важна, чтобы метрики Core Web Vitals отражали реальный пользовательский опыт. Несоблюдение репрезентативности приводит к искажённым выводам, например:
Чтобы оценить репрезентативность, используют метод сравнения распределений: сверяют распределение сессий в выборке с полной популяцией пользователей по ключевым атрибутам (устройство, браузер, регион, скорость сети).
Для больших сайтов с миллионами пользователей используют динамическое семплирование, при котором процент охвата может изменяться в зависимости от времени суток или нагрузки сервера. Это позволяет:
При семплировании важно учитывать статистическую погрешность, которая увеличивается при уменьшении выборки. Для Core Web Vitals, таких как LCP, CLS и FID, погрешность можно приблизительно оценить через стандартную ошибку среднего:
[ SE = ]
где () — стандартное отклонение метрики, (n) — размер выборки. Малые выборки дают высокую стандартную ошибку, что делает данные менее надежными.
Семплирование трафика в Web Vitals обеспечивает баланс между точностью метрик и нагрузкой на систему аналитики. Правильная настройка выборки и контроль репрезентативности позволяют получать достоверные данные о пользовательском опыте.