Год назад мы отказались от всех публичных счетчиков в пользу закрытых сервисов и собственной инфраструктуры обработки данных. Собирая на Олимпиаде по 10 млн. хитов в сутки, мы нащупали предел доброты Google Analytics, за которым бесплатное обслуживание уже не возможно. Но теперь у нас есть свой лунапарк со сверткой и графиками, поэтому мы можем легко снизить интенсивность использования GA, сохранив за ним только аудиторские функции. О том, как мы собираем данные и как используем их в своей работе – в простыне с веселыми картинками внутри.
«Я вообще не замечаю код. Я вижу блондинок, брюнеток, рыженьких. Кстати, ты… выпить хочешь?»
Нельзя сказать, что мы знали, что делаем в начале пути. Мы предполагали, что данные добавят нашему интуитивному творчеству чуть больше смысла. И нам очень хотелось много красивых графиков и больше понимания, чем живут наши пользователи. Мы совсем не ожидали, что за год построим систему полного цикла обработки данных, а компания начнет дышать в ритме Data Driven.
И нам действительно было где развернуться: каждый день на сайтах Sports.ru и Tribuna.com появляется 700 новостей и 500 текстов (из которых 97% — пользовательские), а под ними возникает 30 тысяч комментариев, 120 тысяч оценок и 2 тысячи статусов. Весь этот вал контента оседает не только на сайтах с их 750 тысячами уников и 5 миллионами хитов в сутки, но и разлетается через 100 тысяч тегов по 160 мобильным приложениям (где 200 тысяч уников совершают 8 миллионов хитов за сутки) и по 1200 тематическим группам в соцсетях.
Так вот, это наши нормальные цифры. Паранормальными цифры становятся в плотные дни спортивных событий, как сейчас происходят в Сочи. Каждый олимпийский день мы пробиваем отметку в 1 миллион уников. Мгновенный трафик может подскакивать в 10 раз, а итоговый объем хитов за день вырастает в 1,5-2 раза.
Мы знали, что данных обрабатывать придется много: за первые месяцы эксплуатации инфраструктуры обработки данных у нас накопилось 500 гигабайт сырого материала и агрегатов. Но сразу вписываться в свой Hadoop-кластер или вычислительный комбайн было бы слишком рисковано, да у нас и не было такой возможности — так что мы выкручивались.
В начале прошлого года мы не знали и половины слов на этой схеме
Мы сделали все просто: данные о показах страниц собираются с помощью опенсорсного счетчика Piwik, точнее с помощью его фронтендовой части — на бэкенде у нас кластер nginx, ноды которых ведут access.log обращений от этого счетчика. Сырые данные из логов пакетами загружаются через Amazon S3 в Amazon Redshift, где из хитов ClickStream вычисляются клиентские сессии. Дополнительно в Redshift выгружаются данные из SQL-хранилища сайта, необходимые для обогощения создаваемых структур. Над созданными структурами разработан план SQL-запросов, который используется для формирования графиков и отчетов в Chart.io, а так же для Adhoc-анализа данных.
Кроме того, мы регистрируем отдельные действия пользователей в NoSQL-хранилище для быстрого расчета матрицы рекомендаций для наших пользователей, обрабатываем access.log обращений к страницам сайта с помощью агентов Okmeter, их же используем для анализа пользовательского контента из SQL-хранилищ. В итоге, всю сложную часть BigData (хранение данных, сложные вычисления, построение графиков и отчетов) мы не стали делать в виде собственной фермы оборудования и коллекции ПО, а полностью вынесли ее в SaaS. Себе мы оставили только сбор сырых данных и конечное потребление агрегатов.
Детали технической реализации всей аналитической инфраструктуры мы надеемся рассказать в отдельном посте, сейчас же мы хотим поделиться с вами, как нам удалось улучшить свой продукт и бизнес, добавив лишь небольшую порцию данных.
Рекомендации для пользователей
Мы знаем теперь очень многое о наших читателях и не только то, что они нам рассказывают при регистрации—какие команды и спортсмены нравятся или не нравятся — но и то, что мы узнаем о них из поведенческого профиля: с каких фанатских сайтов или поисковых запросов пользователи приходят на Sports.ru и Tribuna.com, новости с какими тегами читают и комментируют, какие посты и комментарии плюсуют, а какие — минусуют, что интересно друзьям. Формируя матрицу предпочтений каждого посетителя, мы накладываем на нее матрицу рекомендаций и даем каждому релевантные подсказки.
Мониторинг бизнес-метрик
Сделать большой ЦУП с мониторами, графиками и славными бородатыми парнями — самое очевидное, что приходит в голову после запуска инфраструктуры обработки данных. Графики мы сделали, а вот мониторы и бородачей привлекать не стали: группы оперативного реагирования на инциденты нам точно не требуются.
Но мы повесили на некоторые бизнес-метрики алерты с помощью Okmeter. Хоть этот сервис предназачен в большей степени для мониторинга технических метрик (аптайм, трафик, системные показатели и т.п.), его функциональность позволяет строить метрики из любых данных из любого SQL-хранилища. За полгода эксплуатации сервис дважды оповещал нас о том, что на сайте перестали появляться комментарии: в новогоднюю ночь и когда на сайте появился кривой баннер, блокирующий Javascript на страницах.
Но самое крутое в Okmeter — это режим Play, в котором можно работать с графиком (добавлять метрики, функции над данными, менять параметры отображения) в режиме реального времени.
Сервис делают отличные парни из России, пока что он закрыт для регистрации, но инвайт можно попросить на сайте okmetric.com
Дистрибуция и производство контента
Мы, конечно же, подглядываем за тем, что пишут наши пользователи, как они реагируют на материалы, новости, ищем популярные комментарии и фотографии, а самое лучшее — забираем в работу редакции. Сообщество пользователей, в каком-то смысле, является чашкой Петри, в которой зарождаются крутые шутки и хлесткие реплики (мы замечаем эти факты по резкому всплеску плюсов или минусов), там же мы проверяем свои редакционные и социальные гипотезы, а самое лучшее распространяем по всем нашим каналам: приложениям, соцсетям, теговым потокам.
На первый взгляд, эта деятельность похожа на наглую эксплуатацию населения и непрекрытый краудсорсинг, и это действительно так. Но! Этот же механизм позволяет молодым и неизвестным авторам Трибуны становится популярными. Мы замечаем действительно ярких персонажей и берем их в оборот в социальной редакции: выносим посты на главную, раскидываем ссылки по потокам, даем им советы по оформлению и подаче.
Adhoc-анализ
Веселых картинок про аналитику у нас не очень немного, поэтому мы начинаем постить котов
С инфраструктурой BigData у нас наконец-то появился инструмент, с помощью которого мы можем достоверно отвечать на вопросы: “Почему произошло именно так?”, “Как можно улучшить продукт?”, “Какого цвета кнопка здесь лучше всего работает?” и т.п. Каждый день мы используем магию чисел для оценок, поиска зависимостей и корреляций.
Например, мы недавно запустили персонализированное принуждение к регистрации: разными способами мы узнаем о том, какой командой интересуется посетитель, выбираем из этой команды популярного игрока, вешаем фотку этого спортсмена на приглашение о регистрации и показываем этому посетителю специальный блок. Мы уже выяснили, что такое персонализированное обращение работает в разы эффективнее, чем милые котики или Гус Хиддинк. А вот выбрать текст для такого приглашения, мы решили простым ABCD-тестом. Так выглядят варианты теста на подопытном Александре Амисулашвили из “Крыльев Советов”:
Попробуйте сами угадать лучший вариант и сравните его с нашими результатами (делалась выборка на 100 000 показов).
Почтовые рассылки
Мерять эффективность email-рассылок можно и без специальных навыков и средств. Мы же используем инфраструктуру данных для кампейнинга: выборке пользователей для отправки им персонализированных сообщений. Мы выявляем пользователей, которые не заходили несколько недель на сайт, чтобы рассказать им через email, что интересного у нас появилось, пока их не было. Мы напоминаем игрокам об их Fantasy-команде или турнире прогнозов, которые они забросили. Мы приглашаем болельщиков в тематические форумы по интересам.
Бизнес-аналитика
Раз в неделю руководители всех отделов Sports.ru и Tribuna.com собираются для ретроспективы прошедшей недели и обсуждении планов на текущую. Каждый участник рассказывает о своей области деятельности, опираясь на данные в отчете, который формируется еженедельно из данных, собранных в нашей инфраструктуре. Мы обсуждаем структуру трафика, продажи, конкурентов и рынок в целом, деятельность редакции и SMM, разработку, продукт, финансы, ИТ. Ценность этих встреч исключительно в синхронизации знаний и приоритетов на уровне всей компании — никакой бюрократической отчетности под козырек.
… И это лишь малая часть того, что у нас уже есть в BigData. Мы показали вам нашу инфраструктуру сквозь замочную скважину с одной только целью — вдохновить вас на обработку данных в своем проекте. Это действительно не так страшно и дорого, как кажется на первый взгляд: мы обошлись без капитальных затрат в оборудование на старте, хоть и потратили 4 человеко-месяца разработки. На аренду серверов и оплату внешних сервисов мы тратим не более 60 тыс. рублей в месяц. И мы уверяем вас — прозрение стоит того.
Дерзайте!
Автор: subz