Как проверить наличие счетчиков Google Analytics и Яндекс.Метрика на страницах сайта
#Системы аналитики #Проверка счетчиков
#124
Апрель’19
20
Апрель’19
20
Системы аналитики в наши дни обладают огромным функционалом — позволяют отслеживать трафик, тестировать новые предложения, формировать представление о своей целевой аудитории, и дают массу полезных функций. Поэтому проверка их корректной установки, как и проверка наличия на всех страницах, очень важна.
Как проверить работу счётчика
Чтобы узнать, правильно ли установлен Google Analytics, нужно авторизоваться в аккаунте аналитики, открыть представление ресурса и перейти в категорию «Отчеты» — «В режиме реального времени». Если в отчёте появились данные о вашем визите, значит счётчик работает.
Корректность работы Яндекс.Метрики проверяется специальным запросом. К адресу сайта добавляется специальный параметр ?_ym_debug=1 и загружается страница. После чего в консоли браузера, если счетчик работает, вы увидите его номер и данные, которые он отправляет.
Также корректность работы счетчика можно проверить по значку на странице с доступными счетчиками.
Но стоит отметить, что значок актуален только для одной страницы — той, которая указана на странице «Настройка».
Поэтому работу Метрики на каждой странице придется проверять другим методом. Необходимо зайти в уже знакомые вам инструменты разработчика на вкладку «Консоль», и ввести в строку служебное слово yaCounterID, где ID — идентификатор счетчика. Если счетчик установлен, вы увидите в консоли примерно вот такую запись:
Таким образом, вы сможете проверить работу систем аналитики на всех важных для вас страницах сайта.
Еще один способ, проверить наличие счетчика, это перейти в режим просмотра исходного кода страницы (Ctrl+U) и проверить там наличие соответствующего кода.
Проверка наличия счётчика с помощью программ
Проверять наличие метрик вручную это отличный экспресс-метод. Но если у вас на сайте очень много страниц, то такая проверка может сильно затянуться. Поэтому их наличие можно проверить с помощью специальных программ. Мы в своей работе отдаем предпочтение в пользу Screaming Frog SEO Spider.
Для начала необходимо настроить специальный фильтр, для этого переходим в «Configuration» — «Custom» — «Search»:
В параметрах фильтра указываем фрагмент кода системы аналитики, наличие которого мы хотим проверить. Например, Яндекс.Метрики:
После этого нажимаем «ОК» и запускам программу. По окончанию обхода на вкладке «Custom» будет список всех страниц, содержащих искомый фрагмент кода.
Наличие счетчика Google Analytics программа Screaming Frog SEO Spider способна проверять автоматически, без настройки фильтров, информация об этом находится на вкладке Analytics.
Также, наличие систем аналитики можно проверить при помощи специальных браузерных расширений. Одним их таких является Ghostery.
Похожее
Контент Параметры
Использование скрытого контента на сайте
Факторы ранжирования Поведенческие
Правильное оформление форм на сайте
Контент Параметры
#140
Использование скрытого контента на сайте
Август’19
1319
Факторы ранжирования Поведенческие
#139
Правильное оформление форм на сайте
Август’19
2524
1Факторы ранжирования Поведенческие
#138
Оформление 404 страницы
Август’19
1430
2Общие вопросы Продвижение сайта
#137
Как продвигать сайт визитку?
Август’19
1495
2Оптимизация сайта Внутренняя перелинковка
#136
Поиск 404 ошибок на сайте
Август’19
1540
Общие вопросы Продвижение сайта
#135
Почему у сайта разные позиции?
Июль’19
2052
#134
Циклические ссылки на сайте
Июль’19
7302
Оптимизация сайта Индексация
#133
Атрибут rel=canonical
Октябрь’22
10100
22Факторы ранжирования Коммерческие
#132
Как правильно оформить страницу «Контакты»
2348
10Общие вопросы Продвижение сайта
#131
Поиск поддоменов сайта
Июль’19
2061
10Общие вопросы Продвижение сайта
#130
Как вирусы влияют на позиции сайта
Июль’19
2462
Ключевые запросы Виды запросов
#129
Каннибализация запросов
Июль’19
7762
10Системы аналитики Яндекс Метрика
#128
Фильтрация визитов роботов на сайт
Июль’19
8685
12Общие вопросы Продвижение сайта
#127
Неактуальные страницы товаров на сайте – что делать
Июль’19
2318
11Системы аналитики Google Analytics
#126
(not set) и (not provided) в отчетах Google Analytics
Июль’19
3649
10Яндекс Метрика: пошаговая настройка | Blog Roistat
Содержание
- Как работает Яндекс. Метрика
- Яндекс.Метрика: как настроить
- 1. Регистрация
- 2. Создание счётчика
- 3. Настройка счётчика Яндекс.Метрики
- 4. Установка
- 5. Яндекс.Метрика: проверка установки счётчика
- Какие данные записывает Яндекс.Метрика и что с ними делать
- Популярные отчёты
- Социально-демографические данные
- Технологии
- Источники трафика
- Вебвизор
- Карта кликов
- Карта скроллинга
- Отчёт по e-commerce
- Как создать собственный отчёт
- Яндекс.Метрика: настройка целей
- Как анализировать цели
- Вывод
Яндекс.Метрика: полное руководство по работе с сервисом веб-аналитики.
Подпишись на Telegram
Подписаться
Как работает Яндекс.Метрика
Что такое Яндекс.Метрика — это сервис веб-аналитики, инструмент, с помощью которого можно собирать и анализировать данные о посетителях вашего сайта: откуда они приходят, сколько времени проводят на сайте, какие товары покупают или какие статьи читают.
Если совсем просто: вы устанавливаете на сайт специальный код, ещё его называют «счётчик». Каждый раз, когда к вам заходит посетитель, счётчик начинает собирать о нём данные: откуда он пришёл, какие страницы посмотрел и сколько времени провёл на сайте.
Онлайн-обзор платформы Roistat
В прямом эфире расскажем, как сделать маркетинг эффективным
Подключиться
Cчётчик умеет определять браузер, устройство, пол, возраст и интересы. Эти данные записываются и отправляются в специальную систему, где вы можете их смотреть, анализировать и принимать бизнес-решения.
Процесс сбора данных о посетителях напоминает паспортный контроль в самолёте — только код веб-аналитики работает незаметно и собирает обезличенные данные.
Обезличенные — значит, что вы не можете узнать фамилии и имена людей, только их характеристики и интересы. Когда этих данных много, они составляют точный портрет вашей аудитории.
Чтобы принимать эффективные решения, нужно собирать много данных. Поэтому бизнесу стоит подключить сервис сквозной аналитики и использовать его в связке с веб-аналитикой. Это поможет не только отключать убыточную рекламу или дорабатывать интерфейс, но проследить весь путь клиента от клика по объявлению до покупки.
Рассказали в блоге, почему использование одновременно сквозной и веб-аналитики поможет построить эффективный маркетинг.
Яндекс.Метрика: как настроить
1. Регистрация
Заходим на сайт Метрики — нажимаем кнопку «Перейти» и вводим логин и пароль аккаунта на Яндексе. Он у вас есть, если вы регистрировали email-почту на Яндексе. Если аккаунта нет, зарегистрируйтесь. Для удобства работы можно создавать разные почты под разные проекты.
Как начать работу с Яндекс.Метрикой2. Создание счётчика
Попадаем на страницу со списком счётчиков — пока она пуста. Кликните на кнопку «Добавить счётчик».
Добавления счётчика в Яндекс.МетрикеОткроется окно, где нужно задать настройки счётчика:
- Имя счётчика — это внутреннее название, его не увидят ваши посетители. Обычно сюда пишут название компании или сайта.
- Адрес сайта — напишите домен или адрес с http(s)://.
- Часовой пояс — укажите тот, в котором работаете.
- Почта для уведомлений — email для связи.
- Примите условия договора.
- Если хотите подключить вебвизор, карту скроллинга и аналитику форм, переведите ползунок на «Вкл». Рекомендуем так сделать — это полезные инструменты.
- Примите условия пользовательского соглашения.
- Нажмите «Создать счётчик».
3. Настройка счётчика Яндекс.Метрики
Подключаем два параметра:
- Электронная коммерция — нужна, если у вас интернет-магазин. Яндекс.Метрика будет собирать отчёты о том, какие товары пользователи чаще всего смотрят на вашем сайте, что добавляют в корзину и что покупают.
- Контентная аналитика — необходима, если на вашем сайте много текстов. С её помощью узнаете, какой контент нравится пользователям, что они читают, куда кликают.
Кликаем на «Дополнительные настройки» и выставляем параметры:
- Валюта — оставляйте в рублях, если работаете в России.
- Тайм-аут визита в минутах — это длительность бездействия пользователя на вашем сайте, по истечении которого визит считается завершённым. Оптимальное значение — 30 минут.
- Код счётчика — можно видоизменить для более удобной работы. Например, выбрать устаревший вариант или указывать в одну строку. Эту опцию можно оставить без изменений.
4. Установка
Настройка счетчика Метрики завершена — внизу на чёрном фоне указан код счётчика для вашего сайта. Чтобы он заработал, нужно установить его на сайт. Нажимаем «Скопировать».
Установка счётчикаДля каждого типа сайта — свой алгоритм действий. Расскажем, как установить счётчик на популярные конструкторы и HTML-сайт:
Tilda (нужен платный аккаунт):
- Откройте настройки → Analytics.
- Найдите пункт YANDEX.METRICA и нажмите Connect.
- В появившемся окне нажмите «Разрешить».
- Выберите счётчик из списка, сохраните.
- Переопубликуйте все страницы.
- Проверьте, появился ли счётчик: в Яндекс.Метрике рядом с названием счётчика есть кнопка проверки.
- Потестируйте работу счётчика. Для этого зайдите на сайт, чтобы счётчик записал ваш визит. Данные в Метрике должны появиться через 15-20 минут после посещения сайта.
CMS Битрикс:
- Откройте редактор шаблона сайта: Настройки → Настройки продукта → Сайты → Шаблоны сайта (шаблон нужного сайта) → Нажмите «Изменить».
- Скопируйте код счётчика на странице Метрики и вставьте в файл, который отвечает за генерацию заголовка (header) всех страниц сайта, сохраните. Нажмите кнопку «Начать пользоваться».
- Проведите тест работы счётчика.
WordPress:
- В панели управления перейдите в Плагины → Добавить новый.
- В поиске плагинов напишите «Insert Headers and Footers», установите и активируйте плагин.
- Обновите страницу и перейдите в Настройки → Insert Headers and Footers
- Скопируйте код счётчика из Яндекс. Метрики и вставьте в поле «Scripts in Header», сохраните.
- Протестируйте работу счётчика.
Как добавить счётчик Метрики в виде HTML-кода:
- Откройте шаблон, где отображается шапка сайта. Если у вас одностраничник — это может быть просто главная страница. Найдите закрывающийся тег и вставьте код счётчика перед ним.
- Сохраните файл.
- Протестируйте работу счётчика.
Если у вас большой самописный сайт и вы хотите отслеживать его показатели с помощью Метрики, счётчик в виде кода нужно добавить на все страницы сайта.
Важно: Чтобы данные в Метрике были точнее, нужно прекратить учитывать собственные визиты. Владельцы сайта могут проводить на нём много времени и смотреть много страниц — эти данные отправятся в Метрику и испортят статистику. Чтобы отключить собственные визиты в Метрике, откройте настройки счётчика, перейдите во вкладку «фильтры» и установите флажок «Не учитывать мои визиты».
5. Яндекс.
Метрика: проверка установки счётчикаУбедитесь, что счётчик корректно установлен и собирает данные. Откройте главное меню «Счётчики» в Яндекс.Метрике и посмотрите на кружок со стрелкой рядом с только что созданным счётчиком:
- если кружок зелёный — счётчик работает корректно;
- если жёлтый — идёт проверка счётчика;
- если красный — счётчик не работает, произошла ошибка.
Если вы всё делали по инструкции, а счётчик не работает, напишите в поддержку Яндекса.
Какие данные записывает Яндекс.Метрика и что с ними делать
Популярные отчёты
Посещаемость
Показывает сколько человек зашло на сайт. В отчёте посещаемости есть два показателя: уникальные посетители и визиты. Визитов обычно больше, чем уникальных посетителей, потому что один человек может зайти на сайт несколько раз.
Посещаемость в Яндекс.Метрике: Отчёты → Стандартные отчёты → Посещаемость.
Яндекс.Метрика: пример отчёта о посещаемостиВажно: Вы можете выбрать время, за которое отображать данные и сравнивать периоды — так можно сравнивать, например, посещаемость текущего и прошлого месяца.
Время на сайте
Показывает сколько в среднем пользователи проводят на вашем сайте. Если сайт нравится пользователям, они проводят на нём больше времени, потребляют больше контента и больше покупают.
В интернет-магазинах хороший показатель 9-10 минут, на информационных сайтах нормальное время — 3 минуты. Это наши субъективные оценки.
Время на сайте в Яндекс.Метрике: Отчёты → Стандартные отчёты → Аудитория → Время на сайте.
Яндекс.Метрика: пример отчёта о времени на сайтеГлубина просмотра
Это количество страниц, которое пользователь посмотрел за одно посещение.
На промо-сайтах и лендингах этот показатель не может быть высоким, но для интернет-магазинов и корпоративных сайтов — это важная метрика, которую нужно увеличивать: улучшать интерфейс, навигацию и контент.
Как сделать сайт удобным для пользователей, чтобы увеличить конверсию в покупку — рассказали в блоге Roistat.
Глубина просмотра в Яндекс. Метрике: Отчёты → Стандартные отчёты → Аудитория → Глубина просмотра.
Яндекс.Метрика: пример отчёта о глубине просмотраПоказатель отказов
Пользователь, который провёл на сайте меньше 15 секунд, записывается в «отказ». Логика такая: пользователь быстро закрыл сайт, значит не увидел в нём пользы.
Высокий процент отказов — плохой знак. Этот показатель косвенно влияет на SEO-позиции и на цену клика в рекламе.
Показатель отказов в Яндекс.Метрике: Сводка → Кликнуть на виджет «Отказы».
Яндекс.Метрика: пример отчёта по отказамСоциально-демографические данные
В этих отчётах не используются персональные данные. Их выдаёт большая нейросеть, которая анализирует поведение пользователя в интернете.
География
Показывает, из каких стран и городов пользователи заходят на сайт.
Посмотреть географию в Яндекс.Метрике: Отчёты → Стандартные отчёты → Аудитория → География.
Яндекс. Метрика: пример отчёта по географииПол
Отчёт показывает какого пола посетители. Можно узнать, кто больше проводит времени на сайте: мужчины или женщины, у кого больше глубина просмотра и кто чаще покупает.
Посмотреть пол в Яндекс.Метрике: Отчёты → Стандартные отчёты → Аудитория → Пол.
Яндекс.Метрика: пример отчёта по полуВозраст
Показывает сколько лет вашим посетителям. Яндекс.Метрика определяет возраст на основе данных, полученных с помощью технологии Крипта.
Посмотреть возраст в Яндекс.Метрике: Отчёты → Стандартные отчёты → Аудитория → Возраст.
Яндекс.Метрика: пример отчёта по возрастуИнтересы
Показывает, чем увлекаются ваши пользователи (например, бизнес, путешествия, сериалы). Системы веб-аналитики следят за тем, что читают ваши посетители, и знают, какие у них интересы.
Посмотреть интересы в Яндекс.Метрике: Отчёты → Стандартные отчёты → Аудитория → Долгосрочные интересы.
Яндекс.Метрика: пример отчёта по интересамТехнологии
Устройства
Статистика по моделям устройств, которые используют посетители: компьютер, смартфоны, планшеты или SmartTV.
Если в этом отчёте вы видите, что со смартфонов высокий показатель отказов — нужно проверить адаптивную версию сайта.
Посмотреть устройства в Яндекс.Метрике: Отчёты → Стандартные отчёты → Технологии → Устройства.
Яндекс.Метрика: пример отчёта по устройствамОперационные системы
Показывает с каких ОС заходят на ваш сайт. Включает десктопные и мобильные ОС.
Посмотреть операционные системы в Яндекс.Метрике: Отчёты → Стандартные отчёты → Технологии → Операционные системы.
Яндекс.Метрика: пример отчёта по ОСИсточники трафика
Важный набор отчётов. Показывает, откуда люди приходят на сайт и как себя ведут.
Яндекс.Метрика может отследить, с каких сайтов, поисковых систем, соцсетей и мессенджеров к вам идёт трафик. Отдельно есть интеграция с Яндекс.Директом — можно посмотреть сколько пришло людей с конкретных кампаний и объявлений.
Посмотреть источники трафика в Яндекс.Метрике: Отчёты → Стандартные отчёты → Источники.
Яндекс.Метрика: пример отчёта по источникам трафикаВебвизор
В декабре 2010 года Яндекс купил сервис Вебвизор — с его помощью владелец ресурса может увидеть все действия пользователя на сайте, как если бы он смотрел в его монитор. Сервис записывает экран пользователя на видео.
Вебвизор записывает экран пользователя на видеоКарта кликов
По ней можно понять, куда пользователи чаще всего кликают на странице — эти данные помогают улучшать интерфейс: например, дорабатывать навигацию.
Здесь карта кликов показывает как посетители жмут на кнопку «закрыть» у всплывающего окна справа внизу:
Пример карты кликовКарта скроллинга
Показывает, как пользователи читают сайт: на каких блоках заостряют внимание, а какие просто прокручивают.
С помощью карты скроллинга можно понять, в каком порядке лучше расставить блоки на лендинге. Те, на которых люди задерживаются, — цепляют аудиторию. По возможности их стоит поднять наверх.
Когда накопится достаточно данных, вы увидите, что некоторые разделы вообще не читают и проматывают. Их можно убрать или перекрасить, чтобы акцентировать внимание. Всё это — работа над повышением конверсии.
Пример карты скроллинга:
Пример карты скролловПервый экран всегда красный — его видят все. Если посмотреть на шкалу справа внизу, будет видно, что красный сменяется зелёным — всё меньше людей дочитывает до конца.
Отчёт по e-commerce
У Метрики есть функционал для интернет-магазинов, который позволяет видеть какие товары пользователи просматривают и покупают.
Можно отследить всю цепочку: Просмотр товара → Добавление / Удаление товара из корзины → Оплата. Как настроить электронную коммерцию — читайте в справках Яндекса.
Так выглядит отчёт по заказам в Метрике:
Пример отчёта по заказам в МетрикеКак создать собственный отчёт
Можно создавать свои отчёты: комбинировать разные показатели. Это удобно, потому что для каждого бизнеса список показателей, за которыми нужно следить, может быть разный.
Давайте для примера создадим отчёт в Яндекс.Метрике, где выведем график пользователей, которые перешли к нам из соцсетей и смотрят сайт с iPhone.
Открываем Отчёты → Стандартные отчёты → Источники → Социальные сети.
Как создать свой отчёт в Яндекс.МетрикеНайдите «Визиты в которых…» и нажмите «+».
Настройки пользовательского отчётаНужно добавить условие, по которому будем фильтровать аудиторию. Выберете Технологии → Устройство → Смартфоны → Apple → iPhone.
Настройки фильтра для отчётаТеперь отчёт нужно сохранить. Находим справа вверху кнопку «Сохранить», нажимаем на стрелку вниз и выбираем «Сохранить как». Вводим название отчёта, например, «Социальные сети / iPhone» и сохраняем.
Нужно сохранить пользовательский отчётГотово! Новый отчёт теперь будет доступен в разделе Отчёты → Мои отчёты, теперь им можно пользоваться постоянно.
Где найти пользовательский отчётЯндекс.
Метрика: настройка целейВ сервисе веб-аналитики можно отслеживать конкретные действия: например, оформление заказа, заявки, подписку на рассылку. Это можно сделать с помощью целей.
Мы заранее определяем, какие действия для нас важные и прописываем это в системе. Когда пользователь это действие совершит — аналитика это увидит и зафиксирует.
Яндекс.Метрика даёт возможность создать максимум 200 целей. Популярные варианты:
- Количество просмотренных страниц. Указываете, сколько страниц пользователь должен просмотреть, чтобы цель срабатывала.
- Посещение определённых страниц. Если человек посетит страницу с указанным адресом, цель сработает.
- Клик по email. Когда пользователь нажимает на написанный на сайте email, цель срабатывает.
- Клик по номеру телефона. Отслеживает клики по телефону в шапке сайта, на странице с контактами и других страницах, где есть возможность совершить вызов при клике на номер.
- Событие. Может быть отправкой формы, нажатием на кнопку или ссылку.
- Составные цели или последовательность событий. Например, последовательность может быть такая: «Добавить в корзину» → «Оформить заказ» → «Оплатить». Когда все шаги последовательности выполняются, цель срабатывает.
Пример: настроим цель «Посещение страницы» — самый простой способ отследить заявки.
Обычно, когда посетитель оставляет заявку, после заполнения формы его направляет на страницу «Спасибо». Представим, что у неё такой адрес: https://example.com/thank-you. Теперь создадим цель в Метрике, которая будет считать заявки.
Заходим в свой аккаунт на Яндекс.Метрике, открываем настройки, вкладку «Цели».
Настройка целиНажимаем «Добавить цель», указываем «Тип цели», выбираем «Посещение страниц» и выбираем «Условие». Из списка условий можно выбрать то, что удобнее, нам подойдёт «url:содержит:» и в поле вставляем адрес нашей страницы. Жмём «Добавить цель».
Как добавить цель в МетрикеТеперь Яндекс.Метрика будет отслеживать посещение этой страницы и записывать всех, кто там побывал.
Как анализировать цели
Можно посмотреть, какие пользователи чаще всего совершают конверсии. Например, если из соцсетей у вас покупают чаще, чем из контекстной рекламы, разумно будет увеличить бюджет на SMM. Но будьте внимательны! Такие выводы — очень опасны. Обычно перед покупкой люди узнают о компании из разных мест. Поэтому совсем отключать контекстную рекламу не стоит. Возможно, её нужно оптимизировать.
Часто бывает так: человек увидел баннер в контексте, кликнул, почитал и закрыл. Через день снова увидел рекламный пост, уже в Instagram, перешёл по ссылке и купил. Итог: вся слава и бонусы за заказ уходят в SMM-отдел, а специалист по контексту грустит, хотя его работа тоже повлияла на привлечение продажи. Чтобы так тонко анализировать рекламу и учитывать все источники трафика, нужна мультиканальная аналитика.
Рассказали, как работает мультиканальная аналитика Roistat, в блоге.
Посмотреть конверсию из разных источников трафика в Яндекс. Метрике: Перейдите в Отчёты → Стандартные отчёты → Источники → Источники, сводка.
Как посмотреть отчёты по целямСпуститесь к таблице, нажмите «Выбрать цель» и выберите нужную:
Пример выбранной цели в МетрикеТаблица перезагрузится, и вы увидите процент конверсии по источникам, количество конверсий, глубину просмотра и время на сайте.
Вывод
Настройка Яндекс.Метрики для сайта — первый шаг для получения данных об аудитории сайта. С их помощью можно улучшить интерфейс, доработать УТП и СТА, оценить качество и количество трафика с рекламных каналов.
Но для анализа бизнес-показателей Яндекс.Метрики недостаточно. Чтобы понять, как какая реклама приносит заявки и продажи, а какая — убытки, нужно подключить сквозную аналитику. Она отслеживает не только визиты и заявки на сайт, но также выручку и прибыль с рекламных кампаний.
Эффективнее использовать сквозную аналитику вместе с веб-аналитикой. Тогда у вас будет больше данных для анализа и для принятия оптимальных решений.
Подключите сквозную аналитику Roistat
Получайте больше клиентов, не увеличивая рекламный бюджет
Подключить
На нашем Telegram-канале делимся полезными материалами по маркетингу и аналитике, кейсами клиентов, собираем познавательные дайджесты и анонсируем бесплатные обучающие вебинары. Подписывайтесь, чтобы ничего не пропустить!
Топ-10 отчетов в Яндекс.Метрике для отслеживания посещаемости сайта
Вам, как директору важно знать, кто посещает ваш сайт. Для этого разработаны специальные сервисы аналитики – сегодня, мы остановимся на Яндекс Метрике.
Почему именно Метрика?
Так как Яндекс занимает главенствующую позицию среди поисковых систем Рунета, именно Метрика идеально подойдет для анализа статистики исходя из его данных. Плюс она довольно тесно связана с другими сервисами Яндекса – такими как Яндекс.Директ и Яндекс.Маркет. Интерфейс в Метрике простой и приятный в обращении, все наглядно и интуитивно понятно.
Во всех отчетах можно выбрать необходимый для анализа период и детализацию. В новой версии появилась полезная опция «Сегментировать». С ее помощью можно сравнить трафик в разрезе различных характеристик — по времени, по географии, по источникам. Также можно отфильтровать данные и анализировать только определенные визиты.
Каждый отчет можно самостоятельно донастроить и сохранить (или добавить в «Избранное»). Также можно удобно настроить область виджетов на главной странице, и сохранить там самые нужные отчеты.
Описание метрик можно прочитать в самом отчете, если навести курсор на знак «?» рядом с названием метрики.
1. Посещаемость
Где лежит: Отчеты -> Стандартные Отчеты -> Посещаемость.
Что смотреть: количество визитов (чем больше, тем лучше), отказы (чем меньше, тем лучше, в норме до 20%), глубину просмотра (чем больше, тем лучше), время на сайте (чем больше, тем лучше).
Общая картина посещаемости сайта по времени
2. Источники
Где лежит: Отчеты -> Стандартные Отчеты -> Источники -> Источники, сводка.
Что смотреть: источники трафика, количество визитов (чем больше, тем лучше), отказы (чем меньше, тем лучше, в норме до 20%).
Откуда именно пришел посетитель на сайт – пользователь набрал адрес сайта по памяти или с визитки, перешел из социальных сетей, из естественной выдачи поисковых систем или по рекламе.
Также в отчетах «Источники» можно выбрать модель атрибуции. Если вы выберите модель «Последний значимый переход», система не будет учитывать незначимые источники. Например, если пользователь несколько дней назад нашел ваш сайт из поисковой системы, а сегодня совершил прямой заход, система засчитает в качестве источника поисковую систему.
3. Конверсии
Где лежит: Отчеты -> Стандартные Отчеты -> Конверсии.
Что смотреть: процент конверсии и количество достижений цели.
Статистика для каждой цели за определенный временной промежуток. Достижением цели в Яндекс.Метрике называется выполнением пользователем определенных действий на сайте — отправка заявки, посещение страницы с контактами и других, необходимых вам. Опция «Сегментировать» тут тоже присутствует, что позволяет сделать отчет более детальным и подробным.
4. Поисковые запросы
Где лежит: Отчеты -> Стандартные Отчеты -> Поисковые запросы.
Что смотреть: фразы и количество визитов по ним
Фразы, по которым пользователи переходят на ваш сайт. Всегда гораздо эффективней увеличить существующий поток трафика, чем создавать новый. Для удобства график лучше скрыть.
5. Метки UTM
Где лежит: Отчеты -> Стандартные Отчеты -> Источники -> Метки UTM.
Что смотреть: список рекламных каналов, количество визитов (чем больше, тем лучше), отказы (чем меньше, тем лучше, в норме до 20%), время на сайте (чем больше, тем лучше).
Если ваши рекламные кампании правильно созданы и все объявления размечены UTM-метками, то из данного отчеты вы получите сводный график по эффективности трафика с каждой из рекламных площадок. Для удобства график лучше скрыть.
6. Долгосрочные интересы
Где лежит: Отчеты -> Стандартные Отчеты -> Аудитория -> Долгосрочные интересы.
Что смотреть: список интересов, аффинити-индекс (если больше 100%, значит достоверный интерес), отказы (чем меньше, тем лучше, в норме до 20%).
Данный отчет можно использовать для таргетинга по интересам медийной рекламы.
7. Устройства
Где лежит: Отчеты -> Стандартные Отчеты -> Технологии -> Устройства.
Что смотреть: количество визитов в % соотношении, отказы (чем меньше, тем лучше, в норме до 20%).
Хотите узнать нравится ли вашим посетителям мобильная версия вашего сайта? В этом отчете вы найдете ответ.
8. Результаты проверки
Где лежит: Отчеты -> Стандартные Отчеты -> Мониторинг -> Результаты проверки.
Что смотреть: интервал (если код ответа красный, то чем меньше интервал, тем лучше), код ответа (если красный, то плохо).
Круглосуточно ли работает ваш сайт? Проверьте в этом отчете
9. Вебвизор и 10. Карты
Отдельно стоит упомянуть отличительные инструменты Яндекс Метрики – Вебвизор, Карта кликов и Карта скроллинга. Вебвизор записывает все действия посетителей на сайте. С его помощью можно проанализировать с какими проблемами сталкивается посетитель, понять на каком этапе он ушел с сайта, что было неудобно и как можно улучшить сайт. Только необходимо помнить о некоторых ограничениях – Вебвизор записывает до 150 000 посещений в сутки, если пользователей было больше, то запись распределяется равномерно в течение всего дня. Хранятся записи всего 15 дней включая текущий.
Карты кликов и скроллинга покажут как просматривает ваш сайт большинство пользователей — на какие элементы сайта кликают и на каком блоке чаще останавливают внимание.
Благодаря такому удобному и полезному сервису можно оперативно замечать падение пользовательского интереса, эффективно развивать сайт в правильном направлении, выбирать нужные каналы рекламы. К тому же Метрика следит за корректностью работы сайта, и при проблемах с доступностью может уведомить об этом по почте или СМС. Если ваш сайт все еще не подключен к Яндекс.Метрике, мы рекомендуем незамедлительно это сделать.
Нужна помощь с Яндекс Метрикой?
Альтернативный аналитический инструмент для международных рекламодателей
В западном мире, где доминирует Google, большой процент международных рекламодателей используют аналитический инструмент, предоставляемый калифорнийским гигантом, для проверки эффективности своей деятельности в Интернете. Однако изучение альтернатив может предоставить вам другие мощные и бесплатные инструменты.
Одним из них является Яндекс Метрика — платформа онлайн-аналитики, разработанная Яндексом, ведущей поисковой системой России. Яндекс Метрика, согласно официальному определению, — это инструмент для измерения посещаемости сайта и анализа поведения посетителей.
Он имеет очень приятный для глаз пользовательский интерфейс и очень прост в использовании благодаря своим логическим меню, хорошо структурированным информационным панелям и всеобъемлющему веб-сайту поддержки — все доступно на английском языке.
Хотя этот инструмент в основном используется маркетологами для отслеживания эффективности российских веб-сайтов, он также может предоставлять ту же статистику для любого веб-сайта в мире, например, для нероссийских источников трафика, таких как западные социальные сети. -оценил.
1. Настройка аккаунта Метрики
Буквально пару минут. Для того, чтобы начать работать с инструментом, вам необходимо иметь адрес электронной почты Яндекса, который вы можете получить, зарегистрировавшись на mail. yandex.com. Затем вы входите, используя свои данные электронной почты, на metrica.yandex.com.
Чтобы начать просматривать статистику, относящуюся к вашему сайту, необходимо разместить на каждой странице веб-сайта отслеживающий HTML-код (называемый счетчиком), сгенерированный инструментом. Если вы заинтересованы в отслеживании конверсий, таких как отправка форм, вам также необходимо создать цели для каждого типа конверсии.
В Метрике доступно отслеживание четырех типов конверсий:
- Цели, связанные с отслеживанием переходов пользователей по определенному URL-адресу страницы
- Достижение определенного количества просмотров страниц
- События, такие как нажатия определенных кнопок
- Многошаговые цели, в которых можно объединить до 5 URL-адресов страниц или событий
Загрузите наше бесплатное руководство о том, как настроить учетную запись Метрики и ее цели.
Яндекс Метрика по умолчанию предлагает асинхронный код в настройках кода. Этот тип кода не блокирует и не влияет на скорость загрузки вашего сайта. Также не имеет значения, где находится код (например, в шапке, теле или футере), потому что даже если кто-то решит покинуть страницу до того, как она полностью загрузится, это все равно будет классифицироваться как «посещение».
Также важно помнить, что каждая система отслеживания определяет «посещения» по-разному, и данные о посещениях не будут совпадать в любых двух системах отслеживания, взятых вместе, из-за разных алгоритмов.
2. Отчеты Яндекс Метрики
Действия посетителей отражаются в отчетах Метрики в период от 30 секунд до 5 минут после совершения действий, тогда как вся остальная статистика обновляется каждые 30 секунд. Все данные отображаются в виде таблицы, а также в виде различных аккуратно представленных графиков.
В целом, доступную статистику можно разделить на следующие категории:
I) Отчеты о трафике и источниках
Этот раздел поможет вам понять:
а) Откуда приходит трафик – все источники посетителей делятся на следующие категории:
б) Некоторая стандартная информация о том, как ведет себя трафик на вашем сайте, например, количество просмотренных страниц, отказы рейтинг, время на сайте, коэффициенты конверсии и т. д.
Важное примечание! Показатель отказов рассчитывается по-разному в Google Analytics и Яндекс Метрике, и эти цифры будут значительно различаться при сравнении двух инструментов.
Яндекс классифицирует человека как «отказался» (то есть покинул сайт) только в том случае, если он провел на одной странице менее 15 секунд, прежде чем покинуть сайт. Однако, если пользователь совершает конверсию в течение этих 15 секунд, а затем покидает веб-сайт, это не будет считаться «отказом». Правило 15 секунд можно изменить в настройках Яндекса — чтобы узнать как нажмите здесь (Accurate TrackBounce).
Согласно разделу справки Google Analytics, показатель отказов рассчитывается этим инструментом как процент посещений, при которых пользователи просматривают только одну страницу вашего сайта, поэтому даже если посетитель проводит на вашем сайте 10 минут, читая статью, а затем покидает веб-сайт, он все равно будет считаться «отказом»!
c) Из какого региона приходят ваши посетители, а также их пол, возраст и коммерческие интересы
Интересы посетителей рассчитываются путем анализа их поведения в Интернете с использованием аналитической технологии под названием Crypta. Эта технология классифицирует веб-пользователей на основе их предыдущих действий в сети. Крипта основана на собственном методе машинного обучения Яндекса MatrixNet. Чтобы узнать больше о Crypta и о том, как она собирает данные, нажмите здесь.
г) Источники, которые приводят посетителей на сайт: реклама, поисковые запросы, социальные сети и т.д.
II) Отчеты о контенте
Показывает статистику взаимодействия посетителей с контентом сайта, такую как страницы входа и выхода, трафик по внешним ссылкам, загрузки файлов, заказы, сделанные посетителями, и их стоимость, а также настраиваемые параметры для посещений ( если вы модифицировали код счетчика на своем сайте, чтобы он передавал эти данные в Метрику). Он может предоставить владельцам интернет-магазинов подробную информацию о каждом заказе, размещенном в Интернете, как в примере, показанном ниже.
III) Отчеты о поведении
На сегодняшний день лучшая часть Метрики и то, что делает инструмент чрезвычайно интересным и ставит его намного выше других бесплатных инструментов! Вот что вы можете сделать в этом разделе:
ПОСМОТРЕТЬ ЗАПИСЬ ПОСЕЩЕНИЯ ПОЛЬЗОВАТЕЛЯ В ВИДЕОФОРМАТЕ
Мой абсолютный фаворит среди всех известных вариантов аналитики и шок, который я вижу поначалу! Вы когда-нибудь задумывались, как люди ведут себя, когда попадают на ваш сайт? Теперь с помощью Метрики вы можете увидеть запись каждого посещения (до 1000 в день)! Вы можете фильтровать и группировать пользователей по многим параметрам (например, по местоположению, операционным системам, браузерам и т. д.) и отслеживать, как они взаимодействуют с вашим сайтом. Чтобы увидеть пример и узнать больше о WebVisor, нажмите здесь.
Однажды я провёл целый вечер за просмотром этих видео, и я бы с таким же успехом ел с собой попкорн, ведь это был захватывающий фильм! Если вы считаете, что ваши посетители ведут себя рационально (или как вы хотели бы думать о рациональном путешествии), начните смотреть несколько видеороликов, и вы быстро измените свое мнение!
Есть компании, которые фокусируют все свое бизнес-предложение на предоставлении видеозаписей, подобных тем, которые доступны бесплатно в Метрике!
АНАЛИЗ ПОВЕДЕНИЯ ПОЛЬЗОВАТЕЛЯ ПРИ ЗАПОЛНЕНИИ ВЕБ-ФОРМ
Анализ форм — отличный инструмент для компаний, которые собирают данные о конверсиях через формы заказов или контактные формы. Это помогает понять, как именно пользователи сайта взаимодействуют с вашими формами.
Инструмент предоставляет информацию о количестве просмотров страницы с формой, количестве взаимодействий с формой, данные об отправленных формах, а также видеозаписи того, как люди вели себя при заполнении формы!
Для тех маркетологов, которые не уверены, что их форма слишком длинная, это отличный инструмент для определения того, какие поля мешают посетителям заполнить ее.
АНАЛИЗ ПУТИ НАЖИМАНИЯ
Показывает основные пути навигации пользователей на вашем сайте в виде графика.
АНАЛИЗ КАРТЫ ССЫЛОК
Инструмент для анализа статистики кликов по ссылкам для вашего сайта.
Ссылки выделяются на карте разными цветами в зависимости от их популярности. Теплые и яркие цвета используются для представления популярных ссылок на тепловой карте, а холодные и бледные цвета обозначают непопулярные ссылки. Если вы наведете указатель мыши на ссылку, вы увидите количество посещений по ссылке и процент посещений от общего числа для этой страницы.
ТЕПЛОВЫЕ КАРТЫ
В Метрике они называются «картами кликов», и они измеряют и отображают статистику кликов на вашем сайте. В отличие от карты ссылок, карта кликов показывает клики по всем элементам страницы, а не только по ссылкам.
Существует множество режимов отображения карты, например, монохромная, прозрачная карта, а также 3D-карта — для использования этой опции вам понадобятся 3D-очки.
SCROLL MAP
Это инструмент для анализа распределения внимания пользователей сайта между отдельными областями страницы. Используя карту прокрутки, можно узнать, как пользователи длинных сайтов просматривают различные элементы страницы. Эта информация помогает владельцам сайтов выбрать наилучшую длину страницы и разработать стратегию правильного размещения информации.
IV. Технология
Эта категория отчетов предоставляет статистику производительности по браузерам, операционным системам, устройствам, разрешению монитора, устройствам, Java, Silverlight и Flash.
V. Построитель отчетов
Позволяет создавать собственные отчеты из всей доступной статистики с различными фильтрами и вариантами сегментации на выбор.
VI. Мониторинг
Метрика может отслеживать, когда ваш сайт не работает, и предоставляет отчет по этим данным. Если вы подключите свою учетную запись к Яндекс Директ (рекламная учетная запись PPC), Метрика отключит вашу рекламу, чтобы предотвратить ненужные расходы, и отправит вам электронное письмо о том, что она это сделала — гениальная простота и экономия денег!
VII.
в-ваЭто последняя разработка от Яндекс. Острова — это интерактивные сниппеты с ответами в результатах поиска Яндекса — и Метрика предоставляет отчеты по этим «островам». Для получения дополнительной информации посмотрите следующее видео -> http://vimeo.com/66087548
3. Несколько других причин использовать Метрику
Если представленного выше обзора доступных отчетов недостаточно, чтобы убедить вас заглянуть в Метрику , вот еще несколько причин, почему вам стоит подумать об этом, особенно если вы размещаете рекламу в Яндекс Директ:
- Только через Яндекс Метрику вы можете правильно отслеживать конверсии из ваших платных кампаний, управляемых платформой Яндекс Директ PPC
- Только Метрика предоставляет вам отчеты по поисковым запросам из платных поисковых кампаний (Яндекс Директ не показывает эти данные)
- Как упоминалось выше, Метрика помогает вам сэкономить деньги, отключая рекламные кампании, когда ваш сайт не работает
- Большое разнообразие отчетов о поведении пользователей помогает получить информацию о том, как лучше всего оптимизировать целевые страницы
- Только через Метрику вы можете проверить показатель отказов и время пребывания на сайте — метрики, особенно важные для оценки ваших платных поисковых кампаний, если вы не отслеживаете какие-либо другие типы конверсий
- После привязки аккаунта Яндекс Директ к Метрике вы также сможете отслеживать звонки с сайта
Знание того, что альтернативы существуют, никому не вредит, а наоборот, расширяет спектр выбора.
Метрика — отличный вариант, особенно для тех, кто пользуется Яндекс Директ. Его следует изучить тем, кто заинтересован в мониторинге удобства использования своего веб-сайта, поскольку он может очень помочь в улучшении взаимодействия с пользователем и, в конечном итоге, в эффективности бизнеса.
альтернативный инструмент для анализа сети . Яндекс также широко представлен в Украине и Казахстане, предоставляя почти треть всех результатов поиска на этих рынках и 43% всех результатов поиска в Беларуси.
Яндекс Метрика
У самой популярной домашней страницы в России есть бесплатный инструмент для веб-анализа, как и у Google, который называется Яндекс Метрика. Пользоваться им очень просто, вам достаточно зарегистрироваться под учетной записью пользователя в Яндексе, а затем создать бухгалтерию для сети. Код, предоставленный страницей, вставляется в HTML-код анализируемого сайта, и, как и в случае с Google Analytics, рекомендуется делать это как можно выше, чтобы измерение было более точным. Сбор данных начнется автоматически. Если сайт на WordPress, вы можете использовать плагин для использования Яндекс Метрика.
С помощью этого инструмента вы можете просматривать действия отдельных пользователей, собирать статистику объявлений или просматривать коэффициенты конверсии. В некоторых отношениях он работает лучше, чем Google Analytics, например, он перестает считать отказ, когда пользователь проводит на странице более 15 секунд, а не 30, что делает его анализ гораздо более точным в этом аспекте.
По сравнению с другими инструментами измерения, Яндекс Метрика предоставляет больше информации в некоторых полях. Примером этого является то, что с Google Analytics вы не знаете, что делает пользователь после того, как он зашел на страницу или когда он ушел, но с Яндексом вы видите поведение этого с помощью его технологии WebVisor, с помощью которой вы можете воссоздать каждое действие пользователя, так как он записывает их. Таким образом, можно наблюдать, возникают ли проблемы в навигации и причину, которая заставляет их совершать каждое движение по сайту.
Яндекс предлагает нам множество вариантов просмотра поведения пользователя на странице:
- Карта кликов: Карта кликов измеряет и отображает статистику кликов, совершенных на сайте. Это помогает нам оценить общее удобство использования веб-сайта, определить наиболее популярные разделы и посмотреть, есть ли разделы, которые пользователи ошибочно принимают за ссылки. Элементы имеют цветовую кодировку, чтобы указать, как часто они используются. Таким образом, вы можете увидеть общее количество кликов на странице или процент кликов в определенной области. Можно использовать несколько режимов отображения карты:
- Тепловая карта. Теплые цвета соответствуют наиболее частым щелчкам, а холодные цвета соответствуют областям, на которые вы нажимаете несколько раз.
- Монохромная карта — чем плотнее цвет, тем выше частота кликов.
- Клики по ссылкам и кнопкам — на карте отображаются только клики по ссылкам и кнопкам. Он не показывает клики по другим элементам.
- Transparency map — Карта отображается как сквозь «туманную завесу»: через «туман» лучше всего видны элементы, по которым чаще всего нажимают.
- Карта элементов — на карте отображаются все элементы на странице.
- Карта ссылок: Это инструмент, который анализирует статистику переходов по ссылкам сайта, показывая разными цветами ссылки в зависимости от их популярности. Таким образом, вы можете увидеть количество кликов по ссылке или их процент.
- Карта прокрутки: Карта прокрутки анализирует, как пользователи сайта обращают внимание на определенные области страницы. Эта информация может помочь вам лучше выбрать длину страницы и оптимально отсортировать важную информацию. На карте показано общее время, которое пользователь тратит на просмотр страницы, и среднее время на просмотр определенной части страницы. Кроме того, можно использовать несколько режимов отображения либо с помощью тепловой карты, где изменения времени отображения отображаются цветами, либо с помощью карты прозрачности, где области страницы, на которые пользователь потратил меньше времени просмотра, обозначены более темными.
- Анализ форм: Этот инструмент предназначен для сайтов, которые активно используют формы, помогая понять, как пользователи сайта взаимодействуют с ними. Анализ формы доступен в двух видах визуализации данных:
- Курс конвертации формы , который позволяет просматривать:
- Количество просмотров страницы, содержащей форму.
- Количество взаимодействий с формой.
- Количество отправленных форм.
- Поля формы , которые содержат следующую информацию:
- Время, затрачиваемое на взаимодействие с каждым полем в форме.
- Пустые поля в форме.
- Поля, которые пользователи не заполняют перед уходом со страницы без ее отправки (то есть поля, при заполнении которых возникают трудности).
- Курс конвертации формы , который позволяет просматривать:
Отчеты, предлагаемые Яндекс Метрикой, очень просты для понимания и настраиваются , и вы также можете взаимодействовать с ними, если хотите подробнее изучить какой-либо аспект. Кроме того, фильтры и действия очень просты в настройке. Инструмент также позволяет нам сравнивать активность разных аудиторий по сегментам.
Каждый инструмент анализа имеет свои характеристики, которые работают лучше или хуже других, поэтому всегда целесообразно их комбинировать и получать максимально точные результаты каждого измерения. В этом контексте запись пользовательских сеансов Яндекс Метрики и тепловые карты идеально подходят для точного понимания того, как пользователь перемещается по сайту.
Эволюция структур данных в Яндекс.Метрике
Яндекс.Метрика — вторая по величине в мире система веб-аналитики. Метрика получает поток данных о событиях, которые произошли на сайтах или в приложениях. Наша задача состоит в том, чтобы обработать эти данные и представить их в анализируемом виде.
Обработка данных сама по себе не является проблемой. Настоящая трудность заключается в попытке определить, в какой форме следует сохранять обработанные результаты, чтобы с ними было удобно работать. В процессе разработки нам несколько раз приходилось полностью менять подход к организации хранения данных. Мы начали с таблиц MyISAM, затем использовали LSM-деревья и, в конце концов, придумали столбцовую базу данных ClickHouse. В этой статье я объясню, почему мы остановились на последнем варианте.
Яндекс.Метрика была запущена в 2008 году и работает уже более девяти лет. Каждый раз, когда мы меняли подход к хранению данных в прошлом, это происходило из-за того, что то или иное решение оказывалось неэффективным: либо был недостаточный запас производительности, либо решение было ненадежным, либо потребляло слишком много вычислительных ресурсов, либо просто не позволяло нам реализовать то, что нам нужно.
В старой Яндекс.Метрике для сайтов более 40 «фиксированных» типов отчетов (например, отчет по географии посетителей), несколько инструментов внутристраничной аналитики (например, карты кликов), Вебвизор (позволяет изучать действия отдельных пользователей в большая детализация), а также отдельный конструктор отчетов.
С новыми Metrica и Appmetrica вы можете настраивать каждый отчет вместо того, чтобы иметь дело с «фиксированными» типами. Вы можете добавить новые параметры (например, в отчете по поисковым запросам вы можете разбить данные по целевым страницам), сегментировать и сравнивать (скажем, между источниками трафика для всех посетителей и посетителей из Сан-Франциско), изменить свой набор метрик и т. д. Таким образом, новая система требует совершенно другого подхода к хранению данных, чем тот, который мы использовали ранее.
MyISAM
Метрика создавалась как ответвление сервиса поисковых объявлений Яндекс.Директ. Таблицы MySQL с движком MyISAM использовались в Директе для хранения статистики, с чего мы и начинали в Метрике. Мы использовали MyISAM для хранения «фиксированных» отчетов с 2008 по 2011 год.
Позвольте мне немного объяснить, какую структуру должны иметь таблицы отчетов, например, при работе с географией. Отчет формируется по конкретному сайту (точнее, по конкретному идентификатору счетчика Метрики). Это означает, что первичный ключ должен содержать CounterID. Пользователь может выбрать произвольный период отчета. Сохранение данных для каждой пары дат не имеет смысла, поэтому данные сохраняются для каждой даты, а затем суммируются по запросу для выбранного интервала. Следовательно, первичный ключ содержит дату.
Данные в отчете отображаются по регионам либо в виде списка, либо в виде дерева, состоящего из стран, регионов и городов. Таким образом, имеет смысл поместить RegionID в первичный ключ таблицы и собрать данные в дерево на стороне кода приложения, а не на стороне базы данных.
Допустим, мы также хотим учитывать среднюю продолжительность сеанса. Это означает, что столбцы таблицы должны содержать количество сеансов и общую продолжительность сеанса.
Таким образом, результирующая таблица будет иметь следующую структуру: CounterID, Date, RegionID -> Visits, SumVisitTime,… Теперь посмотрим, что происходит, когда мы запрашиваем отчет. Запрос SELECT выполняется с условиями, ГДЕ CounterID = AND Date BETWEEN min_date AND max_date. Другими словами, считывается диапазон первичного ключа.
Как на самом деле данные хранятся на диске?
Таблица MyISAM состоит из файла данных и индексного файла. Если из таблицы ничего не удалялось и длина строк при обновлении не менялась, то файл данных будет состоять из сериализованных строк, расположенных последовательно в том порядке, в котором они были вставлены. Индекс (включая первичный ключ) представляет собой B-дерево, листья которого содержат смещения в файле данных. Когда мы читаем данные диапазона индекса, набор смещений в файле данных извлекается из индекса. Затем файл данных считывается по этому набору смещений.
Рассмотрим реальную ситуацию, когда индекс находится в оперативной памяти (кэш ключей в MySQL или системный кеш страниц), но данные в нем не кэшируются. Предположим, что мы используем жесткие диски. Время, необходимое для чтения данных, зависит от объема данных, которые необходимо прочитать, и от того, сколько операций поиска необходимо выполнить. Количество операций поиска определяется расположением данных на диске.
События Метрики поступают практически в том же порядке, в котором они происходили на самом деле. В этом входящем потоке данные с разных счетчиков разбросаны совершенно хаотично. Другими словами, входящие данные являются локальными по времени, но не локальными по номеру счетчика. При записи в таблицу MyISAM данные с разных счетчиков также размещаются довольно хаотично. Это означает, что для чтения отчета с данными вам потребуется выполнить примерно столько случайных чтений, сколько строк в таблице нам нужно.
Типичный жесткий диск со скоростью вращения 7200 об/мин может выполнять от 100 до 200 случайных операций чтения в секунду. Массив RAID, при правильном использовании, может выполнять гораздо больше функций. Один семилетний SSD может выполнять 30 000 случайных операций чтения в секунду, но мы не можем позволить себе хранить наши данные на SSD. С этой системой, если бы нам нужно было прочитать 10 000 строк для отчета, это заняло бы более 10 секунд, что было бы совершенно неприемлемо.
InnoDB гораздо лучше подходит для чтения диапазонов первичных ключей, поскольку использует кластеризованный первичный ключ (т. е. данные хранятся упорядоченным образом в первичном ключе). Но InnoDB было невозможно использовать из-за низкой скорости записи. Если это напоминает вам о TokuDB, то читайте дальше.
Мы применили несколько трюков, чтобы MyISAM работал быстрее при выборе диапазона первичного ключа.
Таблица сортировки. Поскольку данные должны обновляться постепенно, недостаточно отсортировать таблицу один раз, но сортировать ее каждый раз невозможно. Тем не менее, это можно делать периодически для старых данных.
Разделение. Таблица делится на несколько меньших диапазонов первичных ключей. Это сделано в расчете на то, что данные из одного раздела будут храниться более-менее локально и запросы на диапазон первичного ключа будут обрабатываться быстрее. Этот метод можно отнести к ручной реализации кластеризованного первичного ключа. Это немного замедляет вставку данных. Однако при выборе количества разделов обычно удается достичь компромисса между скоростью вставки и скоростью чтения.
Разделение данных по поколениям. При одной схеме разбиения выборки могут сильно тормозить, при другой — скорость вставки. И оба тормозят при использовании промежуточного варианта. Решение этой проблемы состоит в том, чтобы разделить данные на несколько отдельных поколений. Например, первое поколение мы будем называть операционными данными; здесь разделение либо происходит по мере вставки данных (по времени), либо не происходит вообще. Мы будем называть архивные данные второго поколения; здесь происходит разбиение по мере чтения данных (по номеру счетчика). Данные передаются от поколения к поколению через скрипт, но не слишком часто (например, раз в день) и считываются сразу со всех поколений. Это помогает, но и создает массу трудностей.
Эти (и другие) уловки некоторое время использовались в Яндекс.Метрике, чтобы все работало.
Подытожим недостатки предыдущей системы:
- очень сложно поддерживать локальность данных на диске
- таблицы заблокированы во время INSERT
- репликация медленная; реплики часто отстают
- согласованность данных после аппаратного сбоя не гарантируется
- агрегатов, таких как количество уникальных пользователей, очень сложно подсчитать и сохранить
- сжатие данных сложно использовать и работает неэффективно
- индексы занимают много места и не помещаются в ОЗУ полностью
- данные должны быть сегментированы вручную
- многие вычисления должны быть выполнены на стороне кода приложения после SELECT
- сложный в обслуживании и эксплуатации
Изображение: расположение данных на диске (художественный рендеринг)
Таким образом, пользоваться MyISAM было крайне неудобно. В дневное время серверы работали со 100% нагрузкой на дисковые массивы (постоянное движение головок). В этих условиях диски выходят из строя чаще, чем обычно. Мы использовали дисковые полки на серверах. Другими словами, нам приходилось довольно часто восстанавливать RAID-массивы. Иногда реплики так сильно отставали, что нам приходилось их удалять и создавать заново. Переключение мастера репликации действительно неудобно.
Несмотря на недостатки, по состоянию на 2011 год мы хранили более 580 миллиардов строк в таблицах MyISAM. Потом все было переконвертировано в Metrage, удалено и в итоге освободилось много серверов.
Metrage и OLAPServer
Мы используем Metrage для хранения фиксированных отчетов с 2010 года. Предположим, у вас следующий сценарий:
- данные постоянно записываются в базу данных небольшими пакетами
- поток записи относительно большой (не менее нескольких сотен тысяч строк в секунду)
- сравнительно мало запросов на чтение (несколько тысяч запросов в секунду)
- все чтения диапазона первичного ключа (до миллионов строк на запрос)
- строк довольно короткие (около 100 байт без сжатия)
Довольно распространенная структура данных LSM Tree хорошо подходит для этого. Эта структура состоит из сравнительно небольшой группы «фрагментов» данных на диске, каждый из которых содержит данные, отсортированные по первичному ключу. Новые данные сначала помещаются в некую структуру данных ОЗУ (MemTable), а затем записываются на диск в новом отсортированном фрагменте. Периодически несколько отсортированных кусков будут уплотняться в один больший в фоновом режиме. Таким образом поддерживается относительно небольшой набор фрагментов.
Такие структуры данных используются в HBase и Cassandra. Среди встроенных структур данных LSM-Tree реализованы LevelDB и RocksDB. Впоследствии RocksDB используется в MyRocks, MongoRocks, TiDB, CockroachDB и многих других.
Metrage также является LSM-деревом. Произвольные структуры данных (зафиксированные во время компиляции) могут использоваться в нем как «строки». Каждая строка представляет собой пару ключ-значение. Ключ — это структура с операциями сравнения на равенство и неравенство. Значение представляет собой произвольную структуру с операциями обновления (добавления чего-либо) и слияния (агрегирования или объединения с другим значением). Короче говоря, это CRDT.
В качестве значений могут выступать как простые структуры (целочисленные кортежи), так и более сложные (например, хэш-таблицы для подсчета количества уникальных посетителей или структуры карты кликов). С помощью операций обновления и слияния постоянно осуществляется инкрементная агрегация данных в следующих точках:
- при вставке данных при формировании новых пакетов в ОЗУ
- во время фонового слияния
- во время запросов на чтение
Metrage также содержит необходимую нам логику предметной области, которая выполняется во время запросов. Например, для региональных отчетов ключ в таблице будет содержать идентификатор самого низкого региона (города, села) и, если нам нужен отчет по стране, данные по стране будут агрегироваться на стороне сервера базы данных.
Вот основные преимущества этой структуры данных:
- Данные достаточно локально расположены на жестком диске; чтение диапазона первичного ключа происходит быстро.
- Данные сжаты блоками. Поскольку данные хранятся упорядоченно, сжатие работает довольно хорошо при использовании алгоритмов быстрого сжатия (в 2010 году мы использовали QuickLZ, с 2011 года — LZ4).
- Хранение данных, отсортированных по первичному ключу, позволяет использовать разреженный индекс. Разреженный индекс — это массив значений первичного ключа для каждой N-й строки (порядка N тысяч). Этот индекс максимально компактен и всегда умещается в оперативной памяти.
Поскольку чтение выполняется не очень часто (даже несмотря на то, что при этом считывается много строк), увеличение задержки из-за большого количества фрагментов и распаковки блоков данных не имеет значения. Чтение дополнительных строк из-за разреженности индекса также не имеет значения.
Записанные фрагменты данных не изменяются. Это позволяет читать и писать без блокировки — для чтения делается снимок данных. Используется простой и унифицированный код, но мы можем легко реализовать всю необходимую предметно-ориентированную логику.
Нам пришлось написать Metrage вместо изменения существующего решения, потому что его на самом деле не было. В 2010 году LevelDB не существовало, а TokuDB в то время была собственностью.
Все системы, реализующие LSM-Tree, подходили для хранения неструктурированных данных и карт из BLOB в BLOB с небольшими вариациями. Но чтобы адаптировать этот тип системы для работы с произвольным CRDT, потребовалось бы гораздо больше времени, чем для разработки Metrage.
Конвертация данных из MySQL в Metrage заняла довольно много времени: если на работу программы конвертации ушло всего около недели, то на основную ее часть ушло около двух месяцев.
После передачи отчетов в Метраж мы сразу увидели увеличение скорости интерфейса Метрики. Мы используем Metrage уже пять лет, и это решение оказалось надежным. За это время было всего несколько мелких поломок. Его преимущества заключаются в простоте и эффективности, что делает его гораздо лучшим выбором для хранения данных, чем MyISAM.
По состоянию на 2015 год мы хранили 3,37 триллиона строк в Metrage и использовали для этого 39 * 2 серверов. Потом мы отошли от хранения данных в Metrage и удалили большую часть таблиц. У системы есть свои недостатки; он действительно эффективно работает только с фиксированными отчетами. Metrage агрегирует данные и сохраняет агрегированные данные. Но для этого вы должны заранее перечислить все способы, которыми вы хотите агрегировать данные. То есть, если мы делаем это 40 разными способами, значит, Метрика будет содержать 40 типов отчетов и не более.
Чтобы смягчить это, нам пришлось какое-то время сохранять отдельное хранилище для мастера настраиваемых отчетов под названием OLAPServer. Это простая и очень ограниченная реализация столбцовой базы данных. Он поддерживает только один набор таблиц во время компиляции — таблицу сеансов. В отличие от Metrage, данные обновляются не в режиме реального времени, а несколько раз в день. Единственный поддерживаемый тип данных — это числа фиксированной длины от 1 до 8 байт, поэтому он не подходил для отчетов с другими видами данных, например URL-адресами.
ClickHouse
С помощью OLAPServer мы поняли, насколько хорошо СУБД, ориентированные на столбцы, справляются с задачами специальной аналитики с неагрегированными данными. Если вы можете получить любой отчет из неагрегированных данных, то возникает вопрос, нужно ли данные вообще агрегировать заранее, как мы сделали с Metrage.
Изображение: обработка запросов в столбцовой базе данных
С одной стороны, предварительное агрегирование данных может уменьшить объем данных, которые используются в момент загрузки страницы отчета. С другой стороны, однако, агрегированные данные не решают всего. Вот почему:
- вам нужно заранее составить список отчетов, которые нужны вашим пользователям
- другими словами, пользователь не может составить пользовательский отчет
- при агрегации большого количества ключей объем данных не уменьшается и агрегация бесполезна
- при большом количестве отчетов слишком много вариантов агрегирования (комбинаторный взрыв)
- при агрегировании ключей высокой мощности (например, URL) количество данных уменьшается ненамного (менее чем вдвое)
- за счет этого объем данных может не уменьшаться, а фактически расти при агрегации
- пользователи не будут просматривать все отчеты, которые мы для них рассчитываем (другими словами, многие расчеты оказываются бесполезными)
- трудно поддерживать логическую согласованность при хранении большого количества различных агрегатов
Как видите, если ничего не агрегировать и работать с неагрегированными данными, то возможно объем вычислений даже сократится. Но только работа с неагрегированными данными предъявляет очень высокие требования к эффективности системы, выполняющей запросы.
Значит, если мы агрегируем данные заранее, то делать это нужно постоянно (в реальном времени), но асинхронно по отношению к запросам пользователей. Мы действительно должны просто агрегировать данные в режиме реального времени; большая часть получаемого отчета должна состоять из подготовленных данных.
Если данные не агрегируются заранее, вся работа должна выполняться в момент запроса пользователем (т. е. в ожидании загрузки страницы отчета). Это означает, что в ответ на запрос пользователя необходимо обработать многие миллиарды строк; чем быстрее это можно сделать, тем лучше.
Для этого нужна хорошая столбцовая СУБД. На рынке не было колоночно-ориентированных СУБД, которые достаточно хорошо справлялись бы с задачами интернет-аналитики в масштабах Рунета (российского интернета) и не требовали бы запредельно дорогих лицензий.
В последнее время в качестве альтернативы коммерческим столбцовым СУБД стали появляться решения для эффективной оперативной аналитики данных в распределенных вычислительных системах: Cloudera Impala, Spark SQL, Presto и Apache Drill. Хотя такие системы могут эффективно работать с запросами для внутренних аналитических задач, их сложно представить в качестве бэкэнда для веб-интерфейса аналитической системы, доступного внешним пользователям.
В Яндексе мы разработали, а затем выложили в открытый доступ собственную колоночно-ориентированную СУБД — ClickHouse. Давайте рассмотрим основные требования, которые мы имели в виду, прежде чем приступить к разработке.
Возможность работы с большими наборами данных. В текущей Яндекс.Метрике для сайтов ClickHouse используется для хранения всех данных для отчетов. По состоянию на сентябрь 2017 года база данных состоит из 25,1 трлн строк. Он состоит из неагрегированных данных, которые используются для получения отчетов в режиме реального времени. Каждая строка в самой большой таблице содержит более 500 столбцов.
Система должна масштабироваться линейно. ClickHouse позволяет увеличивать размер кластера, добавляя новые серверы по мере необходимости. Например, основной кластер Яндекс. Метрики за три года увеличился с 60 до 426 серверов. В целях отказоустойчивости наши серверы разбросаны по разным дата-центрам. ClickHouse может использовать все аппаратные ресурсы для обработки одного запроса. Таким образом можно обрабатывать более 2 терабайт в секунду.
Высокая эффективность. Мы действительно фокусируемся на высокой производительности нашей базы данных. По результатам внутренних тестов ClickHouse обрабатывает запросы быстрее, чем любая другая система, которую мы могли бы приобрести. Например, ClickHouse работает в среднем в 2,8-3,4 раза быстрее на запросах веб-аналитики, чем одна из самых эффективных коммерческих столбцовых СУБД (назовем ее DBMS-V).
Функциональных возможностей должно быть достаточно для инструментов веб-аналитики. База данных поддерживает диалект языка SQL, подзапросы и соединения (локальные и распределенные). Существует множество расширений SQL: функции для веб-аналитики, массивы и вложенные структуры данных, функции высшего порядка, агрегатные функции для приближенных расчетов с помощью скетчинга и т. д.
ClickHouse изначально разрабатывался командой Яндекс.Метрики. Кроме того, нам удалось сделать систему достаточно гибкой и расширяемой, чтобы ее можно было успешно использовать для решения различных задач. Хотя база данных может работать на больших кластерах, ее можно установить на один сервер или даже на виртуальную машину.
ClickHouse хорошо оснащен для создания всевозможных аналитических инструментов. Только подумайте: если система справится с задачами Яндекс.Метрики, можете быть уверены, что ClickHouse справится с остальными задачами с большим запасом производительности.
ClickHouse хорошо работает в качестве базы данных временных рядов; в Яндексе он обычно используется в качестве бэкенда для Graphite вместо Ceres/Whisper. Это позволяет нам работать с более чем триллионом показателей на одном сервере.
ClickHouse используется аналитикой для внутренних задач. Исходя из нашего опыта в Яндексе, ClickHouse работает примерно на три порядка выше, чем древние методы обработки данных (скрипты на MapReduce). Но это не просто количественная разница. В том-то и дело, что имея такую высокую скорость вычислений, можно позволить себе применять кардинально разные методы решения задач.
Если аналитик должен составить отчет, и он компетентен в своей работе, он не будет просто строить один отчет. Скорее, они начнут с поиска десятков других отчетов, чтобы лучше понять природу данных и проверить различные гипотезы. Часто бывает полезно посмотреть на данные под разными углами, чтобы выдвинуть и проверить новые гипотезы, даже если у вас нет четкой цели.
Это возможно только в том случае, если скорость анализа данных позволяет проводить мгновенные исследования. Чем быстрее выполняются запросы, тем больше гипотез можно проверить. Работая с ClickHouse, даже возникает ощущение, что они способны думать быстрее.
Образно говоря, в традиционных системах данные подобны мертвому грузу. Манипулировать им можно, но это занимает много времени и неудобно. Однако если ваши данные находятся в ClickHouse, они гораздо более податливы: вы можете изучать их в разных срезах и детализировать до отдельных строк данных.
Спустя год с открытым исходным кодом ClickHouse теперь используется сотнями компаний по всему миру. Например, CloudFlare использует ClickHouse для аналитики DNS-трафика, ежедневно получая около 75 миллиардов событий. Другой пример — Vertamedia (платформа SSP для видео), которая ежедневно обрабатывает 200 миллиардов событий в ClickHouse со скоростью обработки около 3 миллионов строк в секунду.
Выводы
Яндекс.Метрика стала второй по величине системой веб-аналитики в мире. Объем данных, которые принимает Метрика, вырос с 200 миллионов событий в день в 2009 году до более чем 25 миллиардов в 2017 году. постоянно модифицировать наш подход к хранению данных.
Эффективное использование оборудования очень важно для нас. По нашему опыту, когда у вас есть большой объем данных, лучше не беспокоиться о том, насколько хорошо масштабируется система, а вместо этого сосредоточиться на том, насколько эффективно используется каждая аппаратная единица: каждое ядро процессора, диск и твердотельный накопитель, ОЗУ и сеть.