Обновленная Яндекс.Метрика для приложений – дважды в реальном времени

30 октября 2014 года в конгресс-парке гостиницы «Рэдиссон-Ройял Москва» прошла пятая технологическая конференция Яндекса – Yet another Conference 2014.

По традиции, мероприятие началось с секретного доклада, посвященного новым разработкам Яндекса в области речевых технологий: голосовой активации, выделению смысловых объектов из текста и синтезу речи. Все эти три функции были объединены разработчиками под капотом нового мобильного приложения Яндекс.Диктовка.

Вторым секретным докладом стал доклад Александра Кочубея об обновленной Метрике для приложений.

Что такое статистика и аналитика аудитории? Это такая штука, которая постоянно требует ответов на все большее количество вопросов. И если сначала это довольно простые вопросы – «как?», «откуда?», «почему?», то со временем все упирается в сакраментальный вопрос «Что делать?». Докладчик уверен, что чем лучше мы понимаем нашу аудиторию, тем лучше со временем понимаем, как оптимизировать свои затраты и как увеличивать счастье пользователей.

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

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

С тех пор Метрика для приложений сильно выросла, и может даже поделиться с нами интересными данными:

Например, как оказалось, пользователи Windows Phone очень сильно отличаются от пользователей Android и iOS – большую часть времени они проводят в интернете через wi-fi. А вот пользователи Android и iOS активно используют wi-fi в выходные.

Александр отметил, что все, кто когда-нибудь пользовался хоть какой-то системой аналитики, обычно не были довольны скоростью обработки данных. Неудивительно, скорость обработки, большие объемы данных и актуальность всегда между собой плохо дружат. Это как сделать работу быстро, качественно и недорого – выбери любые два из трех. Яндекс.Метрика для приложений как раз и фокусируется на таких ключевых характеристиках как:

  • RealTime
  • скорость генерации отчетов независимо от объема данных
  • отчеты с любой комбинацией данных.

RealTime – это важно. Мобильный мир – это другая скорость, это устройство в движении, это очень часто меняющиеся данные, которых действительно много. RealTime – это способ успевать за этими изменениями. А здравые решения, чаще всего, основываются на аналитических отчетах, поэтому важно оперативно получать информацию, независимо от объема данных. И конечно же, всем всегда нужно как можно больше неожиданных комбинаций отчетов. Мобильная Метрика все это умеет.

На перечисленных характеристиках Метрике позволяет фокусироваться собственная, разработанная Яндексом, система управления базами данных ClickHouse. На сегодняшний день это одна из самых производительных в мире реляционных баз данных на аналитических запросах в реальном времени. Главная особенность ClickHouse в том, что это столбцовая СУБД. Что это значит?

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

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

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

При этом вся инфраструктура Метрики гарантирует актуальность – дважды в реальном времени. С одной стороны, данные от всех приложений поступают в real-time, с другой стороны отчеты по неагрегированным данным строятся онлайн при загрузке страницы.

Обновленная Метрика для приложений также характеризуется повышенной надежностью и отказоустойчивостью. Данные дублируются, и даже если какие-то сервера падают, запрос все равно будет обработан, а данные будут доступны.

В Метрике используется метод приближенного вывода – когда для расчета берется не вся выборка, а равномерно распределенная последовательность, проводится обработка и далее результат аппроксимируется на весь объем данных. Например, если есть сто миллионов исходных записей, можно сделать семплирование 10%, рассчитать и помножить результаты на 10. Теперь такая настройка доступна в интерфейсе Метрики и каждый может сам поиграться с настройками – точность против скорости.

Далее Александр рассказал, какой новый функционал необходим для мобильной аналитики. Как известно, в мире сайтов нет проблем с определением источников трафика (куки и реферы там помогают справиться с этой задачей), но в мобильном мире куки не работают, там есть своя специфика. Пользователи в основном ставят приложение из Сторов, а мобильные сайты приложений не могут просто так обмениваться данными, поэтому очень сложно без дополнительных усилий понять, откуда пришли пользователи. Поэтому в обновленной Метрике для приложений был реализован новый функционал – трекинг.

Трекинг поддерживает несколько способов связки клика и установки:

  • Связка по идентификатору устройства (Device identifier matching)
  • Связка по методу fingerprint (Device fingerprint matching)
  • Использование реферов в Google Play и Яндекс.Store

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

Также в обновленной Метрике для приложений был расширен функционал отправки событий. Отправка событий позволяет обвешивать счетчиками любые элементы интерфейса и действия пользователей, можно посчитать, например, сколько раз пользователи в день делают сэлфи, или сколько кликов делается на вон ту белую кнопку.

В завершение своего выступления Александр Кочубей сообщил, что прямо сейчас SDK Метрики с новым функционалом Трекинга доступен для всех трех мобильных платформ – iOS, Windows Phone и Android.

Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета. Языки: румынский, испанский. Кредо: Арфы нет, возьмите бубен.