Что такое метрика в веб-аналитике: определение, виды и формулы

Что такое метрика в веб-аналитике: определение, виды и формулы Полезное

Метрика — это числовой показатель, который вычисляется по собранным данным за выбранный период и отвечает на вопрос «сколько?»: сколько было визитов, какая доля визитов закончилась заказом, сколько в среднем стоит заказ. Метрика всегда состоит из формулы (что делим на что), единицы подсчета (визит, пользователь, заказ) и периода.

Рядом с метрикой всегда стоит параметр (в Яндекс Метрике — группировка, в Google Analytics 4 — dimension): признак, по которому данные делят на срезы, например источник трафика, город или устройство. Параметр отвечает на вопрос «в каком разрезе?». Ниже — словарь терминов, ключевые метрики сайта и интернет-магазина с формулами, расчет на Python и типичные ошибки подсчета.

Метрика, параметр, событие и KPI

Эти четыре слова в отчетах стоят рядом, и их часто смешивают.

Термин Что это Пример
Событие Одно зафиксированное действие пользователя, сырые данные Просмотр карточки товара, добавление в корзину, оплата
Метрика Число, посчитанное по событиям за период Визиты, конверсия, средний чек
Параметр (группировка, dimension) Признак, по которому режут метрику Источник трафика, устройство, категория товара
KPI Метрика, выбранная целью, с целевым значением и сроком Конверсия в заказ 3% к концу квартала

Проще всего увидеть разницу в строке отчета: «Источник: поиск | Визиты: 4 | Конверсия: 50%». Слева параметр, он текстовый и группирует строки. Справа метрики, они числовые, и их можно суммировать или усреднять по правилам формулы. Любой KPI — это метрика, но не любая метрика — KPI: большинство показателей в отчетах служат для диагностики, а не для оценки работы.

Из чего состоит метрика

Одно и то же название может скрывать разные числа. Чтобы два отчета совпали, у метрики должны совпадать четыре части:

  1. Формула. Конверсия — это заказы / визиты или заказы / посетители? Результаты различаются, если один человек заходит несколько раз.
  2. Единица подсчета. Визит (сессия), уникальный посетитель, заказ, товар в заказе.
  3. Период и часовой пояс. Сутки по Москве и сутки по UTC дают разные «вчера».
  4. Фильтры. Учтены ли роботы, внутренний трафик сотрудников, отмененные заказы.

Отсюда частая ситуация: число визитов в Яндекс Метрике и число сессий в GA4 для одного сайта расходятся. Системы по-разному определяют окончание визита, фильтруют роботов и по-разному теряют данные при отказе от cookie. Сравнивать тренды между системами можно, требовать совпадения до единицы — нет.

Ключевые метрики сайта

Эти показатели есть почти в любой системе веб-аналитики, но точное определение нужно сверять с документацией конкретного сервиса.

Метрика Формула или смысл Что показывает
Визиты (сессии) Число сеансов взаимодействия с сайтом Объем трафика
Посетители (пользователи) Число уникальных идентификаторов (cookie, ID) Охват; один человек на двух устройствах считается дважды
Просмотры страниц Число загрузок страниц Нагрузку и интерес к контенту
Глубина просмотра Просмотры / визиты Сколько страниц видят за визит
Время на сайте Средняя длительность визита Вовлеченность, но с оговорками
Отказы Доля визитов, признанных отказными Кто ушел, не начав взаимодействие
Конверсия Визиты с целевым действием / все визиты x 100% Долю визитов, закончившихся целью

Отказ в разных системах определяется по-разному. В Яндекс Метрике отказ — визит, в котором одновременно не больше одного просмотра страницы, длительность меньше порога (по умолчанию 15 секунд, меняется в настройке счетчика) и не зафиксировано служебное событие «неотказ». В GA4 показатель отказов — доля сессий без вовлечения, а вовлеченной считается сессия дольше 10 секунд (порог по умолчанию), с ключевым событием или с двумя и более просмотрами. Поэтому «отказы 30%» без названия системы — неполная информация.

Время на сайте тоже требует осторожности: если после открытия страницы пользователь больше ничего не сделал, система не знает, когда он ушел. Длинная статья, которую прочитали целиком и закрыли, может дать короткое измеренное время.

Метрики интернет-магазина с формулами

Для магазина главный вопрос — не сколько людей пришло, а сколько денег принес трафик и где он теряется по пути к оплате.

Метрика Формула Пример расчета
Конверсия в заказ (CR) Заказы / визиты x 100% 30 / 1000 = 3%
Средний чек (AOV) Выручка / число заказов 150 000 / 30 = 5000 ₽
Доход на визит Выручка / визиты = CR x средний чек 150 000 / 1000 = 150 ₽
Брошенные корзины (Корзины без заказа) / все созданные корзины x 100% 70 / 100 = 70%
Доля повторных покупок Покупатели с 2+ заказами / все покупатели x 100% 120 / 800 = 15%
Стоимость заказа (CPO) Расходы на канал / заказы из канала 60 000 / 30 = 2000 ₽
ROMI (Валовая прибыль канала — расходы) / расходы x 100% (90 000 — 60 000) / 60 000 = 50%

Две оговорки к таблице. Для ROMI в числителе берут валовую прибыль (выручка минус себестоимость), а не выручку: иначе канал с убыточными продажами выглядит окупаемым. Доход на визит связывает конверсию и средний чек, поэтому им удобно сравнивать каналы, где эти две метрики тянут в разные стороны.

Считаем метрики на Python

Ниже минимальный рабочий пример: восемь визитов из двух источников, для каждого известны пользователь, число просмотров и сумма заказа (0 — заказа не было). Функция считает метрики, а параметр «источник» режет их на срезы.

from collections import defaultdict

# Каждая строка - один визит: источник, пользователь, просмотры, заказ и его сумма
visits = [
    {"source": "поиск",   "user": "u1", "pageviews": 5, "order": 3200},
    {"source": "поиск",   "user": "u2", "pageviews": 1, "order": 0},
    {"source": "поиск",   "user": "u1", "pageviews": 3, "order": 0},
    {"source": "поиск",   "user": "u3", "pageviews": 4, "order": 1800},
    {"source": "реклама", "user": "u4", "pageviews": 1, "order": 0},
    {"source": "реклама", "user": "u5", "pageviews": 2, "order": 0},
    {"source": "реклама", "user": "u6", "pageviews": 6, "order": 5400},
    {"source": "реклама", "user": "u7", "pageviews": 1, "order": 0},
]

def metrics(rows):
    n = len(rows)
    orders = [r["order"] for r in rows if r["order"] > 0]
    revenue = sum(orders)
    return {
        "визиты": n,
        "посетители": len({r["user"] for r in rows}),
        "глубина": round(sum(r["pageviews"] for r in rows) / n, 2),
        "конверсия, %": round(len(orders) / n * 100, 1),
        "средний чек": round(revenue / len(orders)) if orders else 0,
        "доход на визит": round(revenue / n),
    }

print("весь сайт:", metrics(visits))

# Параметр (группировка) "источник" режет те же метрики на срезы
by_source = defaultdict(list)
for r in visits:
    by_source[r["source"]].append(r)
for source, rows in by_source.items():
    print(f"{source}:", metrics(rows))

Вывод в Python 3.14:

весь сайт: {'визиты': 8, 'посетители': 7, 'глубина': 2.88, 'конверсия, %': 37.5, 'средний чек': 3467, 'доход на визит': 1300}
поиск: {'визиты': 4, 'посетители': 3, 'глубина': 3.25, 'конверсия, %': 50.0, 'средний чек': 2500, 'доход на визит': 1250}
реклама: {'визиты': 4, 'посетители': 4, 'глубина': 2.5, 'конверсия, %': 25.0, 'средний чек': 5400, 'доход на визит': 1350}

Что здесь видно. Визитов 8, а посетителей 7: пользователь u1 пришел дважды. Поиск конвертирует вдвое лучше рекламы (50% против 25%), но у рекламы выше средний чек, и доход на визит у нее больше: 1350 ₽ против 1250 ₽. Если бы решение принимали только по конверсии, рекламу сочли бы худшим каналом.

Граница примера: на восьми визитах разница между каналами — случайность, а не вывод. Сравнивать каналы по таким метрикам имеет смысл на объеме в сотни и тысячи визитов и с проверкой статистической значимости.

Типичные ошибки подсчета

Ошибка 1. Усреднять готовые доли. Нельзя брать среднее дневных конверсий, если дни различаются по трафику.

# Визиты и заказы по дням: будний день с большим трафиком и тихий выходной
days = [
    {"day": "пн", "visits": 1000, "orders": 20},
    {"day": "вс", "visits": 50,   "orders": 5},
]

# Неверно: среднее дневных конверсий
wrong = sum(d["orders"] / d["visits"] for d in days) / len(days) * 100
print(f"среднее конверсий: {wrong:.2f}%")

# Верно: сумма заказов / сумма визитов за период
right = sum(d["orders"] for d in days) / sum(d["visits"] for d in days) * 100
print(f"конверсия периода: {right:.2f}%")
среднее конверсий: 6.00%
конверсия периода: 2.38%

Выходной с 50 визитами и конверсией 10% весит в среднем столько же, сколько понедельник с 1000 визитов, и завышает результат в два с половиной раза. Исправление — всегда считать долю из сумм числителя и знаменателя за период.

Ошибка 2. Складывать уникальных посетителей по дням. Метрики-счетчики (визиты, заказы, выручка) складываются, а уникальные посетители — нет: один человек, зашедший в понедельник и во вторник, при сложении посчитается дважды.

# Уникальные посетители по дням (множества идентификаторов)
mon = {"u1", "u2", "u3"}
tue = {"u2", "u3", "u4"}

print("сумма по дням:", len(mon) + len(tue))   # неверно
print("за два дня:", len(mon | tue))           # верно
сумма по дням: 6
за два дня: 4

Исправление — строить отчет сразу за нужный период, а не складывать дневные строки. В системах аналитики число посетителей за месяц почти всегда меньше суммы по дням.

Ошибка 3. Не назвать знаменатель. «Конверсия 5%» от визитов и «конверсия 5%» от посетителей — разные числа. В отчете для команды формулу стоит писать рядом с названием метрики.

Как выбрать метрики для своего сайта

Метрик легко набрать десятки, и большая часть из них не поможет принять ни одного решения. Рабочий порядок такой:

  1. Цель бизнеса. Для магазина — выручка или прибыль, для сервиса по подписке — удержание платящих клиентов, для медиа — вовлеченные читатели.
  2. Главная метрика. Одна, которая ближе всего к цели и на которую команда может влиять: например, доход на визит.
  3. Метрики-составляющие. То, из чего складывается главная: конверсия, средний чек, брошенные корзины по шагам воронки.
  4. Сдерживающие метрики. То, что не должно ухудшиться, пока растет главная: доля возвратов, скорость загрузки, жалобы в поддержку.

Отдельно стоит отличать «метрики тщеславия»: общее число просмотров или подписчиков растет почти всегда и приятно выглядит в отчете, но не подсказывает, что делать дальше. Проверочный вопрос для любой метрики: какое решение я приму, если она вырастет или упадет?

Выводы

  • Метрика — числовой показатель за период с формулой, единицей подсчета и фильтрами; параметр (группировка) — признак, по которому метрику режут на срезы.
  • KPI — это метрика с целевым значением и сроком; событие — сырое действие, из которого метрики считаются.
  • Одно название метрики в разных системах может означать разные формулы: отказы в Яндекс Метрике и в GA4 определяются по-разному.
  • Доли считают из сумм за период, а не усредняют; уникальных посетителей не складывают по дням.
  • Набор метрик строят от цели: одна главная метрика, ее составляющие и сдерживающие показатели.

Где применяется / связь с практикой

Освойте тему на практике

Метрики — рабочий язык продуктовой команды: по ним выбирают, какую гипотезу проверять, оценивают результаты A/B-тестов и решают, в какой канал вкладывать бюджет. Выстраивать систему метрик продукта, считать воронки, удержание и юнит-экономику учат на курсе «Продуктовая аналитика». Посмотреть на задачи аналитика вживую можно на открытых уроках Otus.

FAQ

Метрика и Яндекс Метрика — это одно и то же?
Нет. Яндекс Метрика — сервис веб-аналитики, который собирает данные о посещениях сайта и считает по ним метрики. Сама метрика — это показатель, и те же визиты или конверсию считают в GA4, в CRM или в собственной базе данных.

Что называют метрикой вне веб-аналитики?
В математике метрика — функция расстояния между двумя элементами множества, которая неотрицательна, симметрична и удовлетворяет неравенству треугольника. В разработке и эксплуатации метриками называют технические показатели системы: время ответа, долю ошибок, загрузку процессора.

Сколько метрик нужно отслеживать?
Универсального числа нет. Практический ориентир — одна главная метрика на цель, несколько ее составляющих и две-три сдерживающие; остальное смотрят по мере необходимости для диагностики.

OTUS Журнал
Скидка 5% 14-20 сентября на курсы (popup)