Метрика — это числовой показатель, который вычисляется по собранным данным за выбранный период и отвечает на вопрос «сколько?»: сколько было визитов, какая доля визитов закончилась заказом, сколько в среднем стоит заказ. Метрика всегда состоит из формулы (что делим на что), единицы подсчета (визит, пользователь, заказ) и периода.
Содержание
Рядом с метрикой всегда стоит параметр (в Яндекс Метрике — группировка, в Google Analytics 4 — dimension): признак, по которому данные делят на срезы, например источник трафика, город или устройство. Параметр отвечает на вопрос «в каком разрезе?». Ниже — словарь терминов, ключевые метрики сайта и интернет-магазина с формулами, расчет на Python и типичные ошибки подсчета.
Метрика, параметр, событие и KPI
Эти четыре слова в отчетах стоят рядом, и их часто смешивают.
| Термин | Что это | Пример |
|---|---|---|
| Событие | Одно зафиксированное действие пользователя, сырые данные | Просмотр карточки товара, добавление в корзину, оплата |
| Метрика | Число, посчитанное по событиям за период | Визиты, конверсия, средний чек |
| Параметр (группировка, dimension) | Признак, по которому режут метрику | Источник трафика, устройство, категория товара |
| KPI | Метрика, выбранная целью, с целевым значением и сроком | Конверсия в заказ 3% к концу квартала |
Проще всего увидеть разницу в строке отчета: «Источник: поиск | Визиты: 4 | Конверсия: 50%». Слева параметр, он текстовый и группирует строки. Справа метрики, они числовые, и их можно суммировать или усреднять по правилам формулы. Любой KPI — это метрика, но не любая метрика — KPI: большинство показателей в отчетах служат для диагностики, а не для оценки работы.
Из чего состоит метрика
Одно и то же название может скрывать разные числа. Чтобы два отчета совпали, у метрики должны совпадать четыре части:
- Формула. Конверсия — это заказы / визиты или заказы / посетители? Результаты различаются, если один человек заходит несколько раз.
- Единица подсчета. Визит (сессия), уникальный посетитель, заказ, товар в заказе.
- Период и часовой пояс. Сутки по Москве и сутки по UTC дают разные «вчера».
- Фильтры. Учтены ли роботы, внутренний трафик сотрудников, отмененные заказы.
Отсюда частая ситуация: число визитов в Яндекс Метрике и число сессий в 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%» от посетителей — разные числа. В отчете для команды формулу стоит писать рядом с названием метрики.
Как выбрать метрики для своего сайта
Метрик легко набрать десятки, и большая часть из них не поможет принять ни одного решения. Рабочий порядок такой:
- Цель бизнеса. Для магазина — выручка или прибыль, для сервиса по подписке — удержание платящих клиентов, для медиа — вовлеченные читатели.
- Главная метрика. Одна, которая ближе всего к цели и на которую команда может влиять: например, доход на визит.
- Метрики-составляющие. То, из чего складывается главная: конверсия, средний чек, брошенные корзины по шагам воронки.
- Сдерживающие метрики. То, что не должно ухудшиться, пока растет главная: доля возвратов, скорость загрузки, жалобы в поддержку.
Отдельно стоит отличать «метрики тщеславия»: общее число просмотров или подписчиков растет почти всегда и приятно выглядит в отчете, но не подсказывает, что делать дальше. Проверочный вопрос для любой метрики: какое решение я приму, если она вырастет или упадет?
Выводы
- Метрика — числовой показатель за период с формулой, единицей подсчета и фильтрами; параметр (группировка) — признак, по которому метрику режут на срезы.
- KPI — это метрика с целевым значением и сроком; событие — сырое действие, из которого метрики считаются.
- Одно название метрики в разных системах может означать разные формулы: отказы в Яндекс Метрике и в GA4 определяются по-разному.
- Доли считают из сумм за период, а не усредняют; уникальных посетителей не складывают по дням.
- Набор метрик строят от цели: одна главная метрика, ее составляющие и сдерживающие показатели.
Где применяется / связь с практикой
Освойте тему на практике
Метрики — рабочий язык продуктовой команды: по ним выбирают, какую гипотезу проверять, оценивают результаты A/B-тестов и решают, в какой канал вкладывать бюджет. Выстраивать систему метрик продукта, считать воронки, удержание и юнит-экономику учат на курсе «Продуктовая аналитика». Посмотреть на задачи аналитика вживую можно на открытых уроках Otus.
FAQ
Метрика и Яндекс Метрика — это одно и то же?
Нет. Яндекс Метрика — сервис веб-аналитики, который собирает данные о посещениях сайта и считает по ним метрики. Сама метрика — это показатель, и те же визиты или конверсию считают в GA4, в CRM или в собственной базе данных.
Что называют метрикой вне веб-аналитики?
В математике метрика — функция расстояния между двумя элементами множества, которая неотрицательна, симметрична и удовлетворяет неравенству треугольника. В разработке и эксплуатации метриками называют технические показатели системы: время ответа, долю ошибок, загрузку процессора.
Сколько метрик нужно отслеживать?
Универсального числа нет. Практический ориентир — одна главная метрика на цель, несколько ее составляющих и две-три сдерживающие; остальное смотрят по мере необходимости для диагностики.



