Отчёт показывает рост с нуля, а выросло только измерение
Ноль в отчёте бывает двух видов: «не было» и «не измеряли». Разбираем, как их различить одним запросом, и почему сравнение периодов врёт после каждой настройки счётчика.
Я собирал раздел с кейсами и полез в свою аналитику за трёхмесячной динамикой. Получилось прекрасно: у одного инструмента поисковый трафик вырос с нуля до 109 706 за три месяца, у второго с нуля до 100 547. Такие числа хочется поставить на страницу немедленно.
Вместо этого я пошёл проверять нули. Оказалось, что визиты в первом месяце были: 82 541 у одного и 49 220 у второго. То есть люди на сайт ходили, а поисковый трафик записан нулём. Дальше стало ясно, почему:
май, визиты 1892 | поиск 0 прямые 0 реклама 0 соцсети 0
июнь, визиты 3557 | поиск 0 прямые 0 реклама 0 соцсети 0
июль, визиты 6028 | поиск 3779 прямые 1539 реклама 8 соцсети 5
Разбивка по источникам обнулена целиком, а не в одной строке. Это не сайт без поискового трафика, это два месяца, когда источники просто не собирались. Сбор включился в июле, и весь мой «рост с нуля» был ростом измерения.
Ноль бывает двух видов
Вся ловушка в том, что в отчёте они выглядят одинаково: пустая ячейка или нуль. Но означают противоположное.
- Ноль-правда. Измеряли, и не было. Полезный факт: значит канал не работает, и это повод что-то делать.
- Ноль-пробел. Не измеряли. Про сам канал не говорит ничего, а в сравнении периодов превращается в рост, которого не было.
Признак, по которому они различаются, простой и его хватает в большинстве случаев: сложите все каналы за тот же день и сравните с общим числом визитов. Сумма примерно равна визитам, значит разбивка есть и ноль в одном канале это правда. Сумма равна нулю при непустых визитах, значит сбора не было.
Почему это происходит и будет происходить
Пробел появляется не от небрежности, а от нормальных событий: счётчик поставили позже, чем сайт запустили; включили новую цель или новый отчёт; поменяли интеграцию, через которую данные выгружаются; сменили сам счётчик. После каждого такого события у ваших рядов есть дата, левее которой часть показателей не существует.
Отсюда практическое правило, которое я теперь применяю ко всем сравнениям: у каждого показателя своя дата начала, и она не совпадает с датой запуска сайта. Сравнивать периоды можно только внутри того окна, где показатель собирался непрерывно. У нас визиты писались с середины мая, а источники с июля, поэтому кейсы посчитаны по визитам, и на странице кейсов эта причина названа прямо.
Чем это дороже обычной ошибки в цифре
Опубликованный рост с нуля проверяется одним запросом любым, кто умеет открывать отчёты. Причём проверяющий увидит не «человек ошибся», а «человек показывает рост, которого не было» — и будет прав, потому что снаружи это неотличимо. Одно такое число обесценивает все остальные на странице, включая верные.
Проверьте свой ноль
Возьмите день, где показатель нулевой, и введите четыре числа. Считает браузер, введённое никуда не отправляется.
Ноль у вас пробел или правда
Числа за ОДИН день, в котором показатель нулевой. Считает браузер, введённое никуда не отправляется.
Читать дальше
-
Ответ 200, а внутри ошибка: как это ломает интеграции
Проверка «status === 200» пропускает отказы. У нас на этом стояли два сайта и один виджет, и в журнале был ложный диагноз.
-
Зелёный набор тестов ничего не обещает
Все проверки ручки били в отказы: нет токена, чужой источник, слишком длинный вход. Удачный путь не проверял никто, и дефект уехал на бой при зелёном наборе.
Если вы готовите отчёт о росте и не уверены, с какой даты каждый показатель собирался непрерывно, это проверяется быстрее, чем кажется. Мы делаем такую сверку перед любыми выводами о динамике: у каждого показателя своя дата начала.