Отслеживание прокрутки фиксирует достигнутую позицию страницы. Оно не доказывает чтение, понимание или внимание. Нужно определить порог, измеренную область и знаменатель.
Автоматические и собственные пороги
Улучшенная статистика GA4 отправляет scroll, когда впервые становится видимой вертикальная глубина 90%. Пороги 25%, 50% и 75% автоматически не предоставляются. Нужны отдельная настройка измерений и удаление дублей. Документировать изменения высоты, отложенную загрузку и динамическую навигацию.
Интерпретировать относительно задачи
Быстрая прокрутка или якорная ссылка может привести вниз без последовательного чтения. Ответ может находиться наверху. Сравнивать сходные структуры и учитывать выполнение задачи, ошибки и отзывы. События, просмотры страниц и пользователи — разные единицы.
Ограничить сбор
Во Франции CNIL описывает исключения из согласия для некоторых средств измерения аудитории при строгих условиях. Информирование или агрегация сами по себе не подтверждают исключение. Документировать цели, доступ и хранение; неизмеренные посещения не являются отрицательными наблюдениями.
Вымышленный пример: доля только в измеренной области
| Показатель | Значение | Интерпретация |
|---|---|---|
| Измеренные просмотры страниц | 100 | Только охваченная и допустимая область измерений. |
| Просмотры с достижением 90% | 60 | Без повторного счёта в пределах просмотра. |
| Доля в этой области | 60 / 100 = 60% | не уникальные пользователи и не доля прочитавших. |
Источники
- Google Analytics · Enhanced measurement events
- Google Analytics · Sessions and user engagement
- CNIL · Cookies et autres traceurs · FAQ
Редакционная проверка: 1 ноября 2026 года.
Глубина прокрутки — это знакомство с материалом, а не его понимание.
Достижение определенной глубины страницы не гарантирует внимания или понимания. Сигнал более полезен, если он связан с длиной контента, доступным временем и последующим действием.
- Определите, применяется ли пороговое значение ко всему документу или к видимой части.
- Протестируйте короткие страницы, задержку загрузки, мобильные устройства и повторные посещения.
- Представляйте сигнал как индикатор пути пользователя, а не как доказательство завершения чтения.
Первичный источник: Google Analytics — Set up events. Связанный метод: прочитать практическое руководство.
Целостность соединений данных
Соединение таблиц может размножить строки и исказить суммы.
- Строка заказов означает заказ, а строка позиций — товар в нём. До объединения проверьте повторяющиеся и пустые ключи.
- Сгруппируйте позиции по ключу заказа. Соединение с этим результатом не повторяет сумму заказа для каждой позиции. Сверьте сумму с исходной таблицей заказов.
- LEFT JOIN сохраняет заказы без позиций, но WHERE по правой таблице может их удалить. Отсутствие соответствия не означает нулевую сумму.
Воспроизводимый приёмочный случай
Вымышленный пример: данные не описывают клиента или наблюдаемый результат.
Посмотреть данные случая
{
"orders": [
{
"id": 1,
"total": 100
},
{
"id": 2,
"total": 200
}
],
"line_order_ids": [
1,
1,
2
],
"sum_before": 300,
"sum_after_raw_join": 400
}Ожидаемое решение
400 дважды учитывает заказ. Сначала сгруппируйте строки по заказу, чтобы получить 300. Проверить также два вымышленных заказа по 100: сумма 200. SUM(DISTINCT total) вернёт 100, удалив допустимое значение. Проверять идентификаторы и кардинальность соединения, а не устранять повторы сумм.
Воспроизводимые SQL-запросы
Вымышленный пример: заказы на 100 и 200 и три позиции для 1, 1 и 2. Запросы используют только VALUES; выполняйте их в тестовой среде.
WITH orders(id, total) AS (VALUES (1, 100), (2, 200)),
lines(order_id) AS (VALUES (1), (1), (2))
SELECT COUNT(*) AS rows, SUM(o.total) AS total
FROM orders o JOIN lines l ON l.order_id = o.id;WITH orders(id, total) AS (VALUES (1, 100), (2, 200)),
lines(order_id) AS (VALUES (1), (1), (2)),
per_order AS (
SELECT order_id, COUNT(*) AS line_count
FROM lines GROUP BY order_id
)
SELECT COUNT(*) AS orders, SUM(o.total) AS total
FROM orders o LEFT JOIN per_order l ON l.order_id = o.id;Прямое соединение даёт три строки и 400. Предварительная агрегация возвращает два заказа и 300.
WITH orders(id, total) AS (VALUES (1, 100), (2, 100))
SELECT SUM(total) AS correct_total,
SUM(DISTINCT total) AS distinct_total
FROM orders;При суммах 100 и 100 правильный итог — 200; SUM(DISTINCT total) даёт 100.
Процедура проверки
- Определите детализацию заказов и строк.
- Соедините заказ с двумя строками.
- Сохраните ключи, количества и сверенные суммы.
Достаточно SUM(DISTINCT total)?
Нет. Два заказа по 100 дают 200, а SUM(DISTINCT total) возвращает 100. Исправляйте связь ключей, а не удаляйте равные суммы.
Первичный источник: PostgreSQL — Table expressions and joins. Связанный метод: прочитать практическое руководство.
Доступные таблицы данных
Связи ячеек должны оставаться понятными на мобильном устройстве.
- Назовите таблицу через caption и выделите заголовки через th. В простой таблице scope="row" и scope="col" задают направление; сохраняйте единицу и период рядом со значениями.
- Сделайте горизонтально прокручиваемую область доступной с клавиатуры и сохраните все столбцы. При преобразовании строк в карточки повторяйте подписи и единицы, не удаляя данные для сравнения.
- Попросите найти ячейку, строку, столбец и единицу клавиатурой и экранным диктором. Повторите после сортировки и фильтра; правильный вид не подтверждает объявленные связи.
Воспроизводимый приёмочный случай
Вымышленный пример: данные не описывают клиента или наблюдаемый результат.
Посмотреть данные случая
{
"column_headers": [
"2025",
"2026"
],
"row_headers": [
"A",
"B"
],
"cell": {
"row": "B",
"column": "2026",
"value": 42
},
"layout": "mobile"
}Ожидаемое решение
Значение 42 должно оставаться связано с B и 2026, в том числе на мобильном устройстве.
Процедура проверки
- Определите заголовки строк, столбцов и единицы.
- Прочитайте ячейку клавиатурой и вспомогательной технологией.
- Сохраните связи после мобильной адаптации и увеличения. Для значимой ячейки после прокрутки найдите строку, столбец и единицу: читаемое значение без заголовка может поменять смысл.
Первичный источник: W3C WAI — Tables tutorial. Связанный метод: прочитать практическое руководство.
