[recovery mode] Как мы чуть не изобрели велосипед для подсчета просмотров видеотрансляций на выборах
Привет! Меня зовут Сергей, я руководитель B2G-направления в «Ростелеком ИТ». Я хотел бы рассказать про Яндекс.Метрику и то, как мы начали использовать её для организации видеонаблюдения на выборах: где нам пригодились стандартные отчеты, группировки, сегментирование и какие возможности открывает кастомизация этого сервиса.
Я пришел в «Ростелеком» в 2017 году. В то время функционировал портал видеонаблюдения, который разрабатывали еще к президентским выборам 2012 года. Да, портал постоянно совершенствовался, но к лету 2017 года мы окончательно поняли, что пора его менять, т.к. он мог уже не выдержать планируемую нагрузку на президентских выборах.
В итоге, у нас родилась концепция двух порталов: один открытый, с HLS-трансляцией в прямом эфире и который выдержит более миллиона единовременных посещений. Второй – закрытый, служебный портал с большим количеством статистики, выгрузками, просмотром архива для заказчиков: представителей ЦИК, избирательной комиссии субъектов РФ и других заинтересованных лиц.
Раньше мы пользовались двумя сервисами для сбора статистики. Первым был Openstat, ныне Спутник. Функциональность у него была беднее, чем у Метрики, но тем не менее его кастомизировали под наши запросы, за что нам, разумеется, приходилось платить. На тот момент нас удовлетворял Спутник, но из-за того, что нам нужно было разработать новые порталы с новыми функциональными возможностями, то нам пришлось бы и дорабатывать статистику. А за это, в свою очередь, потребовалось бы заплатить из бюджетных денег (т.е. денег налогоплательщиков), которые хотелось бы сэкономить.
Второй сервис мы делали сами. Он отправлял на почту статистику раз в час. Работать в таком формате со статистикой было не очень комфортно: её никак не агрегировать, сложно посмотреть историчность. Были и другие проблемы.
Так выглядела наша статистика и кастомизация в системе Спутника. Мы могли смотреть популярность УИКов – какие объекты самые просматриваемые на портале, длительность просмотров видео в минутах, каналы авторизации – через какие социальные сети пользователи заходили к нам.
Из-за того, что мы решили сделать новые порталы, нам бы пришлось в значительной степени дорабатывать существующую статистику. Мне очень не хотелось платить деньги и тратить время на то, что уже давно существует и этим можно пользоваться бесплатно. Я решил проанализировать, какие данные у нас есть и как их можно передать в бесплатные сервисы сбора статистики.
В процессе анализа я понял, что статистику видеонаблюдения на выборах можно разделить на два типа. Первый тип – это лайв статистика, которую заказчик хочет видеть непосредственно в момент проведения выборов. К ней относится ключевая статистика по количеству пользователей – сколько человек смотрят трансляцию с объектов, и статистика по полноте трансляции – информация о том, что сейчас происходит с камерами, где есть проблемы, где трансляции уже идут и тому подобное. Эту статистику мы успешно реализовали на служебном портале: вывели эти два раздела для заказчиков к президентским выборам в марте 2018 года.
Вторая часть данных – информация о результатах видеонаблюдения на проведенных выборах. Заказчикам она нужна было единоразово через некоторое время после окончания выборов. Например, какой УИК был самым популярным, сколько раз посмотрели видео, какие социальные сети чаще всего использовались для авторизации, как пользователи работали с разделом «Избранное» и сколько объектов в него добавляли, какая была скорость доступа у пользователей при проведении теста на нашем портале в специальном разделе, обращения по форме обратной связи. Как правило, все эти данные нужны для написания ревью.
Изучив рынок, я пришел к выводу, что всю эту информацию можно легко собирать с помощью Метрики. Почему не Google Analytics? Ну, тут всё достаточно просто – наш проект государственный, и любые санкции на использование зарубежных сервисов очень сильно могли повлиять на качество нашего сервиса.
Вся статистика, которую мы собираем, резервируется. И в крайнем случае мы можем её собрать, используя логи. Да, это будет долго и неудобно, но тем не менее, данные не потеряются. Но важно учитывать, что сервис предоставляется как есть, то есть в случае падения Яндекс не будет возмещать компенсацию.
Чтобы Метрика начала собирать данные, достаточно на странице вашего сайта добавить код-счетчик. У этого сервиса также есть демо-счетчик, расположенный на странице «О метрике», и часть примеров для статьи я взял оттуда. Про кастомизацию под портал выборов я тоже не забуду.
Вот так выглядит стандартный дашборд в Метрике, его можно кастомизировать и настраивать как угодно. Я решил остановиться на стандартных отчетах, потому что они сами по себе очень полезны, но если добавить группировки и сегментацию, они заиграют новыми красками.
Отчеты
В первую очередь хочу заострить внимание на тех отчетах, которыми пользуюсь сам.
Первый отчет – это посещаемость. Он находится в стандартных отчетах и показывает статистику о посещениях сайта — сколько всего было визитов, сколько пользователей. Детализацию можно выводить как по дням, так и по неделям. Есть подсказки, которые помогут разобраться в показателях.
Следующий отчет – источники. Показывает, откуда пришли пользователи: из каких поисковых систем, с каких сайтов они переходили, какие из них пользуются большей популярностью. Например, у нас во время выборов по большей части это новостные сайты.
Отчет по аудитории содержит много полезной информации для нас: география, пол, возраст и даже их интересы. И всё это видно на графике. Можно группировать по странам, по субъектам, региональному делению и по городам. Отчет по возрастам показывает нам не точный возраст, а основные возрастные группы, к которым относится аудитория. Этот отчет показателен сам по себе, но больше пользы из него можно извлечь, если накладывать на возраст какие-либо другие данные по иным метрикам.
В отчете по технологии можно посмотреть, какими браузерами каких версий пользуется аудитория, что у них с разрешением экрана. Этот отчет помогает ответить на вопросы, стоит ли поддерживать, например, версию сайта для Internet Explorer 11 или 10, нужно ли верстать сайт под 1024 или уже можно перейти на HD (1280 пикселей) и это никого не будет смущать. Отчет по операционным системам для нас один из самых важных. Мы часто его используем при принятии решений, потому что видео с избирательных участков транслируются через плеер, и у каждой операционной системы есть свои нюансы.
Группировка и сегментирование
Группировка позволяет получить некоторый срез данных, который нам позволит узко определить требования и параметры, которые нужны для улучшения сервиса в рамках сегмента целевой аудитории.
Они позволяют любой отчет обогатить данными. Например, если добавить к отчету по операционным системам возраст, увидим, что у нас группа 25-34 самая обширная и составляет примерно 34% от всех посетителей. И в этой группе преобладают мобильные устройства на базе ОС Android, а во второй по численности группе 18-24 у нас в отрыв уходит Windows.
Теперь о сегментировании. Немного забегу вперед и для примера возьму наши данные по обращениям в службу поддержки через форму на портале трансляций, а сегментирование поможет мне сравнить данные в зависимости от типа устройства – ПК или смартфон.
График в целом не очень показательный, отчет делится на две колонки. Переведем всё в проценты и сравним – вторая группа меньше первой более чем в 2,2 раза, во второй колонке это видно.
Идем дальше. Мы знаем, что пользователей на ПК и смартфонах у нас примерно поровну, а пользователи с ПК нам писали чаще, но есть темы, где в процентном соотношении видно, что со смартфонов приходило больше обращений. Например, на смартфонах у пользователей возникали проблемы с поиском объектов чаще чем у пользователей на ПК. Чаще писали и по ошибкам в адресах и названиях комиссий. Также есть и обратный пример – по ошибкам с видеоплеера к нам почти не обращались с мобильных устройств, что очень хорошо. Все эти данные позволяют понять с чем сталкиваются наши пользователи на каких платформах, и начать работать над улучшением сервиса. Также эти данные я могу сравнить от ивента к ивенту и понять, что стало лучше или хуже. Согласитесь, разработать новый сервис с аналогичным функционалом было бы затратно.
В общем, это примеры тех или иных данных, которые вы можете выводить и сравнивать, чтобы получать полезную статистику и улучшать свои сервисы, опираясь на реальные цифры. Сейчас же давайте о самом интересном – о кастомизации Метрики и что она дает.
Кастомизация Метрики
Есть два главных вида данных, которые Метрика агрегирует в себя для создания отчетов – это параметры посетителей и параметры визитов.
В «параметры посетителей» есть смысл передавать произвольный набор данных, которые относятся к пользователю, скажем, количество детей у этого пользователя, если такая информация доступна, или статус пользователя – физическое он лицо или представляет юридическое, если мы говорим про интернет-магазины.
А вот «параметры визитов» можно использовать и для A/B-тестов – какой кнопкой пользователи чаще пользуются, какой цвет этой кнопки им больше по душе. И через параметры визитов мы собираем в том числе и статистику по измерению теста скорости подключения пользователей, и длительность просмотров онлайн трансляций с объектов.
Они находятся в стандартных отчетах. Вот параметры визитов, а вот параметры посетителей. Параметры посетителей мы тут не используем, я покажу, что есть в тестовом доступе. Яндекс отслеживает залогиненных пользователей: на скриншоте ниже видно, что на страницу зашли 703 463 пользователей, которые были авторизованы в личном кабинете Яндекса.
Так вот, подробнее про параметры визитов. Видите, тут у нас на первом месте просмотры трансляции, запросы к плееру и работа с поиском. У нас есть поиск и мы хотим знать, что ищут пользователи, как часто вводят в поле спецсимволы или цифры, как часто меняют регион и прочее.
А вот раздел «Закладки» – смотрим, как часто пользователи используют закладки, как добавляют что-то нужное или убирают ненужное.
Важно сообщить Метрике, чтобы она отображала эти данные так, как нужно. Для этого надо разобраться с типами данных, с которыми работает Метрика.
Типы данных
Прежде всего, это объект. Когда мы передаем объект, создается ветвь дерева, это та самая вложенность для каждого из значений. Далее строка. Передадим строку – вычислим количество случаев, когда встречается каждое значение строки, и всё это тоже отобразится в отчете.
С числами интереснее – Метрика суммирует числа, то есть если мы передадим число, то Метрика его просуммирует, и в отчете мы получим среднее число и сумму значений всех чисел. Почему это полезно – именно так мы подсчитываем длительность просмотров видео
Запросы
Вот реальный запрос с портала в сторону Метрики, нас интересует его последняя часть.
Это самый обычный post-запрос, в котором содержится site info с данными для Метрики. Мы можем декодировать их при помощи онлайн-декодера и посмотреть, что внутри запроса передается json с объектами и числом. Посмотрим поближе.
Мы видим, что тут у нас три объекта:
-
просмотры трансляции Новосибирской области
-
УИК и его номер
-
число 0,25
Почему 0,25. Это четверть минуты. Мы передаем запрос каждые 15 секунд, то есть как только зритель открывает плеер, каждые 15 секунд мы отправляем в браузере запрос со значением 0,25. Затем Метрика суммирует данные и выдает нам общую длительность просмотра этого видео.
Благодаря этим подсчетам мы и можем понять, какой объект у нас в итоге был самым популярным и просматриваемым, при необходимости сделав сортировку по значениям.
А вот пример со скоростью доступа и тестом скорости. Тут чисел уже нет, мы передаем только строку. Та же самая вложенность на 2 объекта и конкретные значения строки. По ним, как видно, уже не производится никаких суммирований, есть только количество. Мы видим, что в плане скорости доступа в Москве всё отлично, проблемы лишь у 123 пользователей, которые воспользовались сервисом измерения скорости на нашем портале.
Что делать с такими данными
Представьте, что вы собрали эти данные. Надо их для чего использовать. Кроме того, чтобы отдать это заказчику для написания какой-нибудь отчетной статьи.
Допустим, можно добавить группировку, чтобы посмотреть, с каких устройств и как смотрят видео. Понятно, что есть общий отчет по устройствам, но он просто показывает пользователей, заходящих на сайт с тех или иных девайсов. Но можно посмотреть ещё, как именно они смотрят видео.
Смотрите, мы добавили в группировках тип устройства и ОС и видим, что со смартфонов и ПК у нас почти одинаковое количество посетителей, 48,8% и 47%. Однако примечательно, что со смартфонов длительность просмотров в 2 раза ниже, а на ПК видео смотрят в среднем в 2 раза дольше.
То есть несмотря на то, что количество пользователей с мобильных устройств у нас примерно одинаковое, приоритетными пользователями, которые смотрят трансляции остаются посетители с ПК. Это очень важно, т.к. эта информация идет вразрез с современным трендом на увеличение доли пользователей со смартфонами. Получить аналогичную информацию без существенных затрат и не используя Метрику практически невозможно.
Итого
Все примеры выше – это именно наши примеры, полезные конкретно для наших задач. Вы же можете настроить себе любые отчеты, использовать абсолютно любые срезы, в общем, делать всё, что душе угодно.
Наши потребности в плане подобного анализа и отчетов по всему и вся Метрика полностью закрывает с 2017 года. Кстати, на старте, в 2017, мы использовали Метрику параллельно с Openstat, и поняли, что в принципе в ней можно полноценно работать, надо лишь настроить работу портала трансляций выборов с Метрикой. Точно такую же работу нам пришлось бы проделать при доработке Openstat и еще заплатить за доработку самого сервиса статистики, но мы обошлись без дополнительных затрат на улучшения стороннего сервиса.
В целом мы просто настроили отправку правильных сообщений в нужном направлении в нужный момент. Метрика же всё это сагрегировала, теперь мы активно используем её в работе. Не изобретайте велосипеды там, где они не нужны. Экономьте ресурсы и время.