Клієнтські системи аналітики

Уявіть, що ви початківець підприємець, який тільки-но зробив сайт і мобільний додаток (наприклад, для магазину пончиків). Ви хочете підключити аналітику користувача з невеликим бюджетом, але не знаєте як. Всі довкола користуються Mixpanel, Facebook analytics, Яндекс.Метрику та іншими системами, але незрозуміло, що вибрати і як користуватися.

Клієнтські системи аналітики

Що таке система аналітики?

Перш за все, потрібно сказати, що система користувача аналітики - це не система аналітики логів роботи самого сервісу. Моніторинг того, як працює сервіс, фокусується на стабільності та продуктивності, і ведеться розробниками окремо. Користувацька аналітика створена для того, щоб вивчати саме поведінку користувача: які дії він робить, як часто, як реагує на пуші або інші події в сервісі. Глобально у аналітики користувача є два напрямки: мобільна і веб-аналітика. Незважаючи на різні інтерфейси та можливості веб- та мобільних сервісів, робота з системою аналітики в обох напрямках відбувається приблизно однаково.

Навіщо це потрібно?

Користувацька аналітика потрібна:

  • щоб моніторити, що відбувається під час використання сервісу;
  • щоб змінювати контент, і розуміти, куди розвиватися, які фічі додавати/прибирати;
  • щоб знайти, що не подобається користувачам, і міняти це.

Як це працює?

Щоб вивчати поведінку користувачів, потрібно збирати історію цієї поведінки. Але що саме збирати? Це питання складає до 70% складності всього завдання. На нього повинні разом відповісти багато учасників продуктової команди: продакт менеджер, програмісти, аналітики. Будь-яка помилка на цьому кроці коштує дорого: можна не зібрати те, що потрібно, і зібрати те, що не дозволить зробити значних висновків.

Після того, як визначились, що збирати, потрібно продумати архітектуру того, як це збирати. Основний об'єкт, з яким працюють аналітичні системи, — це івент. Івент - це опис того, що сталося, яке відправляється в систему аналітики у відповідь на дію користувача. Як правило, для кожної з дій, вибраних для трекінгу на попередньому кроці, івент виглядає як JSON-пакет з полями, які описують досконалу дію.

Що це за JSON-пакет?

JSON пакет це текстовий файл, який описує, що сталося. Наприклад, JSON пакет може містити інформацію про те, що користувач Mary вчинив дію Started game в момент часу 23:00 15 листопада. Як описати кожну дію? Наприклад, користувач натискає кнопку. Які якості необхідно зібрати в цей момент? Вони поділяються на два види:

  • super properties — властивості, характерні для всіх івентів, які є завжди. Це час, девайс Айді, версія апі, версія аналітики, версія ОС;
  • event specific properties - ці властивості довільні і основна складність у тому, як їх підібрати. Наприклад, для кнопки "купити монетки" у грі такими властивостями будуть "скільки монеток купив користувач", "скільки коштували монетки".

Приклад JSON-пакету у сервісі з вивчення мов:
Клієнтські системи аналітики

Але чому б просто не збирати все поспіль?

Тому що всі івенти створюються вручну. У системах аналітики немає кнопки "зберегти все" (і це було б безглуздо). Збираються ті дії з логіки сервісу, які цікаві якийсь частини команди. Навіть на кожен стан кнопки чи віконця зазвичай цікавлять не всі івенти. Для тривалих процесів (наприклад, рівень гри) можуть бути важливими лише початок і кінець. Що відбувається всередині, при цьому може не збиратися.
Як правило, логіка сервісів складається з об'єктів – сутностей. Це може бути сутність «монетка», сутність «рівень». Тому можна складати івенти із сутностей, їх станів та дій. Приклади: "Рівень почався", "Рівень закінчився", "Рівень закінчився, причина - з'їдений драконом". Бажано, щоб усі сутності, які можуть бути відкриті, закривалися, щоб не порушувати логіку і не ускладнювати собі подальшу роботу з аналітикою.

Клієнтські системи аналітики

Скільки івентів у складній системі?

Складні системи можуть обробляти кілька сотень івентів, які зібрали з усіх замовників (продакт менеджера, програмістів, аналітиків) та акуратно (!) занесли в табличку, а потім у логіку сервісу. Підготовка івентів - це велика міждисциплінарна робота, яка вимагає від усіх розуміння того, що потрібно зібрати, уважності та акуратності.

Що далі?

Припустимо, ми вигадали всі цікаві івенти. Настав час їх збирати. Для цього необхідно підключити клієнтську аналітику. Заходимо в Гугл і шукаємо mobile analytics (або вибираємо з відомих: Mixpanel, Яндекс.Метрика, Google Analytics, Аналітика Facebook, Мелодія, Амплітуда). Беремо з сайту SDK і вбудовуємо в код свого сервісу (звідси ж назва «клієнтська» - тому що SDK вбудовується в клієнт).

І куди збирати івенти?

Усі JSON-пакети, які будуть створюватись, потрібно десь зберігати. Куди їх відправлятимуть і де вони збиратимуться? Що стосується клієнтської аналітичної системи, це відповідає вона сама. Ми не знаємо, де наші JSON-пакети, де їхнє сховище, скільки їх і як вони там зберігаються. Весь процес збору виконується системою і має значення для нас. У сервісі аналітики ми отримуємо доступ до особистого кабінету, де вже бачимо результати обробки вихідних поведінкових даних. Далі аналітики працюють із тим, що бачать в особистому кабінеті.

У безкоштовних версіях вихідні дані зазвичай не можна завантажити. У найдорожчій версії такі можливості є.

Скільки займе з'єднання?

Найпростішу аналітику можна підключити за годину: це буде App Metrika, яка покаже найпростіші речі без аналізу кастомних івентів. Час налаштування складнішої системи залежить від вибраних івентів. Виникають складнощі, які потребують додаткової розробки:

  • Чи є черга івентів? Наприклад, як зафіксувати, що один івент не може прийти раніше за інший?
  • Що робити, якщо користувач перевів час? Змінив часовий пояс?
  • Як бути, якщо немає інтернету?

В середньому налаштувати Mixpanel можна за пару днів. Коли заплановано збирання великої кількості специфічних івентів, може тривати й тиждень.

Клієнтські системи аналітики

Як вибрати, яка мені потрібна?

Загальна статистика у всіх аналітичних системах працює добре. Добре підходить для маркетологів та продажників: можна подивитися ретеншн, скільки користувачі провели у додатку, всі базові високорівневі метрики. Для найпростішої landing page буде достатньо Яндекс метрики.

Коли справа доходить до нестандартних завдань, вибір залежить від вашого сервісу, аналітичних завдань та івентів, які потрібно обробляти для їх вирішення.

  • У Mixpanel, наприклад, можна проводити A/B тести. Як це зробити? Створюєш експеримент, у якому буде кілька вибірок і робиш селекцію (відносиш до А таких-то користувачі, до B — інших). Для A кнопка буде зеленою, B — блакитною. Так як Mixpanel збирає всі дані, вона може знайти device id кожного користувача з A і B. У коді сервісу, використовуючи SDK, створюються tweaks - це місця, де щось може змінюватися для тестування. Для кожного користувача значення (у нашому випадку колір кнопки) підтягується з Mixpanel. Якщо підключення до Інтернету немає, буде вибрано дефолтний варіант.
  • Нерідко хочеться не просто складувати та вивчати івенти, а й агрегувати користувачів. Та ж Mixpanel робить це автоматично у вкладці Users. Там можна переглянути всі постійні user дані (ім'я, email, facebook профіль) та історію логів користувача. Можна подивитися на дані користувача як статистику: 100 разів з'їв дракон, купив 3 квіточки. У деяких системах можна завантажити агрегацію за користувачами.
  • У чому основна крутість Аналітика Facebook? Вона поєднує відвідувача сервісу з його фейсбук профілем. Тому можна дізнатися про свою аудиторію, а головне, потім конвертувати її в рекламну аудиторію. Наприклад, якщо я 1 раз зайшов на сайт і його власник включив рекламу (autofillable audience у фейсбук аналітиці) на відвідувачів, то в майбутньому я побачу у фейсбуці рекламу цього сайту. Для власника сайту це працює просто та зручно, потрібно лише не забути поставити daily cap на рекламний бюджет. Мінус фейсбук аналітики в тому, що вона не дуже зручна: досить складний, не відразу зрозумілий сайт, працює не дуже швидко.

Майже нічого не потрібно робити, і все працює! Мабуть, є й мінуси?

Так, і один із них у тому, що зазвичай, це дорого. Для стартапу може бути близько $50k на місяць. Але є й безкоштовні варіанти. Яндекс App Метрика безкоштовна і підходить для базових метрик.

Однак, якщо рішення недороге, то аналітика буде не докладною: можна буде подивитися тип девайса, ОС, але не конкретні івенти, і не можна буде створювати вирви. Mixpanel може коштувати 50к доларів на рік (наприклад, додаток з Ам Нямом може стільки з'їдати). Загалом у всіх доступ до даних досить часто обмежений. Свої моделі не придумаєш і не запускаєш. Оплата зазвичай проводиться помісячно/періодно.

Ще якісь?

Але найгірше, що навіть Мікспанель обсяги даних, властиві активному мобільному додатку, вважає як наближення (відкрито вказано у документації). Якщо порівняти результати із серверною аналітикою, значення будуть розходитися. (Про те, як створити власну серверну аналітику, читайте у нашій наступній статті!)

Великий мінус багатьох аналітичних систем у тому, що вони обмежують доступ до сирих логів. Так, запустити свою власну модель на, здавалося б, своїх даних не вийде. Наприклад, якщо дивитися на вирви в Мікспанелі, можна порахувати лише середній час між кроками. Складніші метрики, наприклад, медіанний час або перцентілі порахувати не вийде.

Також часто не вистачає можливості складних агрегацій і сегментацій. Наприклад, хитрий групбай "об'єднати користувачів, які народилися в 1990 році і купили не менше 50 пончиків кожен" може бути недоступний.

Facebook аналітика має дуже складний інтерфейс та працює повільно.

А якщо увімкну всі системи відразу?

Чудова ідея! Нерідко буває так, що у різних системах виходять різні результати. Різні числа. До того ж, у одних є один функціонал, по-друге — інший, треті безкоштовні.
Крім цього, кілька систем можна включити паралельно для тестування: наприклад, щоб ознайомитися з новою інтерфейсом і поступово перейти на неї. Як і в будь-якій справі, тут потрібно знати міру та підключати аналітику в такому обсязі, за яким можна буде встежити (і який не гальмуватиме мережевий коннекшн).

Ми всі підключили, а потім зарелізували нові фічі, як додати івенти?

Так само, як під час підключення аналітики з нуля: зібрати опис потрібних івентів і за допомогою SDK вставити в код клієнта.

Сподіваюся, що відповіді на часті запитання будуть вам корисні. Якщо вони допомогли вам зрозуміти, що клієнтські аналітики не підходять до вашої програми, радимо спробувати свою серверну аналітику. Про неї я розповім у наступній частині, а потім розповім і про те, як втілити це у своєму проекті.

Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.

Якими системами клієнтської аналітики ви користуєтесь?

  • Mixpanel

  • Analytics Analytics

  • Google Analytics

  • Яндекс Метрика

  • Іншими

  • Своєю системою

  • нічим

Проголосували 33 користувачів. Утрималися 15 користувачів.

Джерело: habr.com

Додати коментар або відгук