Retentioneering: как мы open-source инструменты для продуктовой аналитики на Python и Pandas написали

    Привет, Хабр. Эта статья посвящена итогам четырехлетней разработки набора методов и инструментов обработки траекторий движения пользователей в приложении или на сайте. Автор разработки — Максим Годзи, который стоит во главе команды создателей продукта, он же — автор статьи. Сам продукт получил название Retentioneering, сейчас он преобразован в open-source библиотеку и размещен на Github, чтобы любой желающий мог им воспользоваться. Все это может быть интересно тем, кто связан с продуктовым и маркетинговым анализом, продвижением и развитием продукта. Кстати, на Хабре уже публиковалась статья об одном из кейсов работы с Retentioneering. В новом материале рассказывается о том, на что способен продукт и как его можно использовать.

    Прочитав статью, вы сами сможете написать свой Retentioneering, им может стать любой стандартизованный метод обработки траекторий пользователей в приложении и за его пределами, позволяющий позволяющий увидеть детально особенности поведения и извлечь из этого инсайты для роста бизнес-метрик.

    Что такое Retentioneering и зачем это нужно?


    Изначально нашей целью было перевести Growth Hacking из мира «цифрового знахарства» в мир цифр, аналитики и прогнозов. Как следствие — сведение продуктовой аналитики к чистой математике и программированию для тех, кто вместо фантастических историй предпочитает цифры, а формулы — умным словечкам вроде «ребрендинг», «репозиционирование» и т.п., которые красиво звучат, но на практике помогают мало.

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

    Retentioneering — метод и аналитические программные инструменты, которые можно адаптировать и интегрировать в любой цифровой (и не только) продукт.

    Мы начали работу над продуктом в 2015 году. Сейчас это уже готовый, хотя пока что и не идеальный набор инструментов на Python и Pandas для работы с данными, модели машинного обучения с sklearn-like api, инструменты интерпретации результатов моделей машинного обучения eli5 и shap.

    Все это завернуто в удобную open-source библиотеку в открытом репозитории Github — retentioneering-tools. Использовать библиотеку несложно, практически любой человек, который любит продуктовую аналитику, но не писал раньше код, может применить наши методы аналитики к своим данным самостоятельно и без значительных затрат времени.

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

    Траектория пользователя как базовый элемент анализа и методы ее обработки


    Траектория пользователя — последовательность состояний пользователя в определенных временных точках. Причем события могут быть из разных источников данных, как в онлайне, так и оффлайне. События, случившиеся с пользователем — часть его траектории. Примеры:
    • нажал на кнопку
    • увидел картинку
    • попал на экран
    • получил мейл
    • посоветовал продукт другу
    • заполнил форму
    • тапнул экран
    • проскролил
    • подошел к кассе
    • заказал буррито
    • съел буррито
    • отравился съеденным буррито
    • зашел в кафе с черного входа
    • зашел с парадного входа
    • свернул приложение
    • получил пуш уведомление
    • тупил в экране дольше времени Х
    • оплатил заказ
    • выкупил заказ
    • получил отказ в кредите

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



    «Траектория» очень удобное понятие — она содержит детальную информацию обо всех действиях пользователя, с возможностью добавления любых дополнительных данных в описание этих действий. Это делает ее универсальным объектом. Если у вас есть красивые и удобные инструменты, которые позволяют работать с траекториями, то можно находить подобия, сегментировать их.

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

    Как оказалось, можно превращать траекторию в точку с помощью непрерывных представлений, например, TF-IDF. После преобразования траектория становится точкой в пространстве, где по осям отложена нормированная встречаемость в траектории различных событий и переходов между ними. Эту штуку из огромного тысяче- и более мерного пространства (dimS=sum(event types)+sum(ngrams_2 types)), можно спроецировать на плоскость с помощью TSNE. TSNE — преобразование, снижает размерность пространства до 2 осей и по возможности сохраняет относительные расстояния между точками. Соответственно, становится возможным на плоской карте, образной проекционной карте траекторий, изучать как располагались между собой точки разных траекторий. Анализируется, насколько они были близки или различны между собой, образовывали ли кластеры или рассеивались по карте и т.д.:



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

    Говоря про стандартные методы обработки траектории, подразумеваются три основных инструмента, которые мы реализовали в Retentioneering — графы, step матрицы и карты проекций траекторий.

    Работа с Google Analytics, Firebase и подобными системами аналитики достаточно сложная и не на 100% эффективная. Проблема в ряде ограничений для пользователя, в результате чего работа аналитика упирается в таких системах в клики мышкой и выбор срезов. Retentioneering дает возможность работать с траекториями пользователей, а не только с воронками, как в Google Analytics, где уровень детализации часто сводится к воронке, пусть и построенной для какого-то сегмента.

    Retentioneering и кейсы


    В качестве примера использования разработанного инструмента можно привести кейс крупного нишевого сервиса в России. У этой компании есть мобильное приложение для Android, которое пользуется популярностью у клиентов. Ежегодный оборот с мобильного приложения составлял около 7 млн руб., сезонные флуктуации в рамках 60-130 тыс. У этой же компании есть и приложение для iOS, и средний чек пользователя «яблочного» приложения был выше среднего чека клиента, использующего Android-приложение — 1080 руб. против 1300 руб.

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



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

    Как работать с Retentioneering?


    Первые шаги достаточно простые — загружаем библиотеку командой pip install retentioneering. В самом репозитории лежат готовые примеры и кейсы обработки данных для некоторых задач продуктовой аналитики. Набор постоянно пополняется, пока его достаточно для первого знакомства. Каждый может взять готовые модули и сразу применить к своим задачам — это позволяет сходу настроить процесс более детального анализа и оптимизации пользовательских траекторий максимально быстро и эффективно. Все это дает возможность находить паттерны использования приложения через понятный код и передавать этот опыт коллегам.

    Retentioneering — инструмент, который стоит использовать на протяжении всего срока жизни приложения, и вот почему:
    • Retentioneering эффективен для отслеживания и непрерывной оптимизации пользовательских траекторий и улучшения бизнес-показателей. Так, в ecommerce приложения часто добавляются новые функции, влияние которых на продукт не всегда можно предсказать правильно. В некоторых случаях возникают проблемы совместимости новых и старых функций — например, новые “каннибализируют” уже существующие. И в этой ситуации как раз и нужен постоянный анализ траекторий.
    • Аналогичная ситуация и в работе с рекламными каналами: постоянно тестируются новые источники трафика и рекламные креативы, необходимо отслеживать сезонность, тренды и влияние других событий, что приводит к появлению все новых классов проблем. Тут тоже требуется постоянное отслеживание и интерпретация пользовательских механик.
    • Есть целый ряд факторов, которые постоянно влияют на работу приложения. К примеру, новые релизы от разработчиков: закрывая актуальную проблему, они невольно возвращают старую или создают совершенно новую. Со временем число новых релизов растет, и процесс отслеживания ошибок необходимо автоматизировать — в том числе, с помощью анализа траекторий пользователей.

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

    Дополнительная информация об инструментах Retentioneering:
    • +10
    • 1.9k
    • 2
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 2

    Only users with full accounts can post comments. Log in, please.