Как работает Яндекс.Метрика

Россия+7 (495) 960-65-87
Шрифт:
3 14580

Команда Яндекса подготовила статью, где вы узнаете о технических аспектах работы Яндекс.Метрики. 

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

Системы веб-аналитики

Следить за посещаемостью сайта и оценивать качество его работы помогают системы веб-аналитики. Они различаются набором возможностей, скоростью обработки данных и, конечно, интерфейсами, но в целом устроены похожим образом. Обычно аналитические сервисы состоят из трех частей. Первая — счетчик. На сайте размещается специальный код, и каждый раз, когда страница загружается или пользователь совершает на ней какие-то действия, счетчик отправляет сообщение в базу данных системы. Это вторая часть сервиса, там информация систематизируется и обрабатывается. Третья часть — интерфейс, в котором представлены обработанные данные по тому или иному сайту и отчеты на основе этих данных — в виде таблиц и графиков.

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

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

Сбор данных

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

Пока посетитель находится на сайте, счетчик продолжает собирать статистику и отправлять ее Метрике. Каждый раз, когда человек открывает какую-нибудь страницу, счетчик регистрирует просмотр. Если он длится дольше 15 секунд, система снова получает сообщение — о том, что просмотр продолжается. Если же человек зашел только на одну страницу сайта и пробыл там меньше 15 секунд, счетчик отправляет сообщение об отказе. Процент отказов помогает владельцу сайта узнать, сколько посетителей не заинтересовались страницей или попали туда случайно.

Счетчик фиксирует прокручивание страницы, движения мыши и клики по кнопкам и ссылкам (отчет об этих действиях владелец сайта может посмотреть в отдельном разделе Метрики — Вебвизоре). Также он сообщает, совершил ли посетитель важные для владельца сайта действия — например, зарегистрировался на форуме, кликнул по рекламному баннеру или оформил заказ в интернет-магазине.

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

Отчеты

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

Например, чтобы понять, хорошо ли в целом сработала ваша рекламная кампания, можно посмотреть в Метрике общую информацию — увеличилось ли количество посещений, из каких источников приходили люди и как изменилась глубина просмотра. А можно углубиться в детали и попытаться ответить на более конкретный вопрос. Допустим, у вас есть сервис для молодых жителей Санкт-Петербурга и вы хотите проверить, удобен ли его новый мобильный интерфейс. Метрика позволяет узнать, много ли владельцев смартфонов в возрасте от 18 до 34 лет просмотрело больше двух страниц вашего сайта и много ли было отказов, а вам останется только сделать выводы.

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

1 яндекс.png

Хранение и обработка данных

Поскольку отчеты создаются в реальном времени, их структура становится известна только в тот момент, когда владелец сайта делает через интерфейс Метрики запрос для получения отчета. Структура отчета может быть практически любой, а составляется он за долю секунды. Чтобы владелец сайта получал актуальную и полную информацию, нужно постоянно собирать данные о посещаемости и уметь тут же их обрабатывать. Для этого в 2012 году Яндекс разработал свою систему управления базами данных (СУБД) — ClickHouse.

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

Существует два основных типа СУБД — строковые и столбцовые. Они отличаются организацией хранения данных на физическом уровне. Большинство известных СУБД строковые — в них данные, которые в таблице находятся в разных ячейках одной строки, хранятся рядом, друг за другом. Такие СУБД хорошо подходят, например, для обработки транзакций, так как позволяют быстро обновлять отдельные строки в базе данных. Для аналитических запросов, когда необходимы только данные из нескольких столбцов в большом массиве строк, строковые СУБД подходят хуже. При обработке таких запросов необходимо прочитать и отбросить значения всех остальных столбцов — в том числе в данном случае ненужных. На это уходит время.

2 яндекс.gif

В столбцовых СУБД, к которым как раз и относится ClickHouse, данные хранятся в порядке столбцов: значения, относящиеся к одному столбцу, расположены рядом. Яндекс.Метрика хранит события (визиты, просмотры и т. п.) в нескольких таблицах, где строки — это все те же события, а столбцы — их параметры. Такая структура СУБД позволяет увеличивать количество параметров событий без потери производительности. Например, если нужно получить отчет по количеству уникальных посетителей в разрезе регионов, достаточно прочитать с диска только два столбца.

3 яндекс.gif

В октябре 2015 года объем данных Метрики только для веб-сайтов составил 10,65 триллиона строк. В наиболее крупной таблице содержится 349 столбцов. Каждый раз, когда владелец сайта открывает страницу в Метрике, в ClickHouse отправляется несколько запросов. Всего база данных получает примерно 2000 запросов в секунду; пиковая скорость обработки данных превышает два терабайта в секунду.

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

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

Система ClickHouse, разработанная в команде Метрики и для ее нужд, оказалась полезна и для других задач Яндекса. В том числе СУБД используется в Маркете, рекламных технологиях, системе мониторинга серверов и внутренней бизнес-аналитике. ClickHouse сравнительно прост для изучения, так как для запросов используется язык SQL.

Оригинал статьи, опубликованный в блоге Яндекса

Читайте нас в Telegram - digital_bar

Есть о чем рассказать? Тогда присылайте свои материалы Даше Калинской


Новые 
Новые
Лучшие
Старые
Сообщество
Подписаться 
Подписаться на дискуссию:
E-mail:
ОК
Вы подписаны на комментарии
Ошибка. Пожалуйста, попробуйте ещё раз.
Отправить отзыв
  • Vitaly Baranov
    1
    комментарий
    0
    читателей
    Vitaly Baranov
    больше года назад
    Выражаю пожелание починить, наконец, отображение поискового трафика. По всем проектам, где есть Яндекс Маркет, часть трафика ЯМ идет в трафик из поисковых систем.
    Скрин clip2net.com/s/3rsWLR6
    Раньше хотя бы раз в месяц служба поддержки отвечала, что проблемой занимаются. Сейчас даже писать перестали.
    -
    0
    +
    Ответить
  • Омномном
    больше года назад
    Заполнили эфир... писать нечего.... омномномном
    -
    1
    +
    Ответить
  • Alex
    1
    комментарий
    0
    читателей
    Alex
    больше года назад
    Приятная, и интересная статья, но хотелось бы больше узнать о работе Вебвизора, сроках хранения данных, возможности их расширения. А также интересно как повлияет наличие API Яндекс метрики на продвижение англоязычного сайта. Если есть статьи содержащие ответы на мои вопросы с радостью бы их почитал.
    -
    1
    +
    Ответить
ПОПУЛЯРНЫЕ ОБСУЖДЕНИЯ НА SEONEWS
Рейтинг «Известность бренда SEO-компаний 2017»: народное голосование
Иван
1
комментарий
0
читателей
Полный профиль
Иван - 1) IT-Agency 2) Пиксели 3) 1ps 4) Ингейт 5) Нетпики
«Баден-Баден»: как выйти из-под фильтра
Сергей Дембицкий «Sima-Land.ru»
15
комментариев
0
читателей
Полный профиль
Сергей Дембицкий «Sima-Land.ru» - Скрины Метрики показывать не буду, но мы (sima-land.ru - 1,5 млн. стр. в поиске Яндекс) в сентябре загремели под ББ, в разгар сезона и вышли из-под фильтра, спустя 50 дней, удалив все тексты с сайта: категории + карточки товаров (описание). Трафик с Google только вырос. Тексты возвращать собираемся, но процесс будет длительный, тексты будем теперь писать исключительно полезные, т.к. было больно :-))
Второе дыхание ссылочного продвижения
Автопилот
14
комментариев
0
читателей
Полный профиль
Автопилот - Еще лучше, когда продвижение осуществляется комплексно :)
Кейс: продвигаем бизнес по продаже пластиковых окон в Москве
Иван Стороженко
5
комментариев
0
читателей
Полный профиль
Иван Стороженко - 1. По началу вообще не использовали, сейчас уже много каналов используется. 2. Все может быть, в принципе сайты должны быть удобны для пользователя, для этого и нужна схожесть между собой. Честно говоря старались брать все самое интересное у конкурентов + подкреплять своими идеями.
«Прямая линия» с Александром Алаевым («АлаичЪ и Ко»): отвечаем на вопросы
Александр Алаев
13
комментариев
0
читателей
Полный профиль
Александр Алаев - Роман. Тут ответ очень простой. Каждый запрос можно четко разделить на коммерческий или некоммерческий. "Купить слона" и его длинные хвосты - коммерческий. "Как выбрать слона" и подобные - информационные. Вот под коммерческие ключи должны быть страницы услуг или каталога товаров. А под информационку - блог. Очень важно не путать их, тем более несоответствующая коммерческим факторам страниц просто не продвинется, то есть по запросу с "купить" блог никогда не будет показываться в выдаче, так же как и страница услуги/товаров не покажется по "как выбрать". Понятно примерно?
Инфографика: самые распространенные SEO-ошибки Рунета
Dmitro Grunt
2
комментария
0
читателей
Полный профиль
Dmitro Grunt - Кстати, у проектов которые продвигает Нетпик все тайтлы не более 65 символов? Или вы надеетесь что кто то послушает советов и отдаст вам часть трафика? :-)
Google.ru внесли в реестр запрещенных сайтов
Гость
1
комментарий
0
читателей
Полный профиль
Гость - Гон, все работает и будет работать. Да и пусть банят, будет как с рутрекером.
Сердитый маркетолог: как вы сами хороните свой сайт, или 16 принципов, которые нужно усвоить заказчикам SEO
Анна Макарова
313
комментария
0
читателей
Полный профиль
Анна Макарова - Artem Sergeev, ваш комментарий удален за агрессивный настрой и безосновательные обвинения. Держите себя в руках!
«Прямая линия» с Артуром Латыповым: отвечаем на вопросы
God Koss
1
комментарий
0
читателей
Полный профиль
God Koss - Добрый день! Есть сайты одной компании продвигающиеся в разных странах. .ru .com .net. На российском сайте два языка ru и en, на остальных до 10 языков. Недавно сайт ru по основному брендовому запросу выпал из выдачи Яндекс но после апа вернулся на вторую позицию. На вопрос аффилирования в тех поддержку, получит ответ, что всё в порядке и сайт com не учавствует в выдаче. Но он есть и занимает 1 место. Как быть в данной ситуации? Так же, после возврата в топ 10 по этому запросу зашла еще одна внутренняя страница. Могло ли это случиться из-за каннибализации запроса? Немного изменил description на внутренней, исключил вхождения брендового запроса. Жду апа. Хотел бы услышать ваше мнение. Заранее благодарю!
Западные специалисты выяснили, как повысить позиции ресурса в выдаче Google
Serhii Diachenko
1
комментарий
0
читателей
Полный профиль
Serhii Diachenko - Спасибо Бернис!
ТОП КОММЕНТАТОРОВ
Комментариев
910
Комментариев
834
Комментариев
554
Комментариев
540
Комментариев
483
Комментариев
373
Комментариев
313
Комментариев
262
Комментариев
229
Комментариев
171
Комментариев
156
Комментариев
137
Комментариев
121
Комментариев
97
Комментариев
97
Комментариев
95
Комментариев
80
Комментариев
77
Комментариев
67
Комментариев
60
Комментариев
59
Комментариев
55
Комментариев
54
Комментариев
52
Комментариев
49

Отправьте отзыв!
Отправьте отзыв!