Files
obsidian-vault/personal/projects/psychologist-app/analytics.md
T
2026-05-30 10:03:30 +00:00

6.5 KiB
Raw Blame History

title, aliases, created, updated, tags, related
title aliases created updated tags related
Analytics — Privacy-First
Аналитика приватность
App Analytics
privacy analytics
2026-05-19 2026-05-24
project
app
psychology
analytics
privacy
personal/projects/psychologist-app/overview
personal/projects/psychologist-app/privacy-legal
personal/projects/psychologist-app/onboarding-ux

Analytics — Privacy-First

Stage 1: понять воронку и аудиторию без Google Analytics и без нарушения GDPR. Связан с: privacy-legal, onboarding-ux


Принципы

  1. Никакого Google Analytics — Google = третья сторона, data sharing, GDPR nightmare для mental health data
  2. Анонимность по умолчанию — никаких идентифицирующих данных в аналитике
  3. Прозрачность — пользователь видит что собирается, может отключить
  4. Self-hosted или privacy-first SaaS — данные не уходят в рекламные экосистемы

Что собирать (Stage 1)

Демография (при онбординге, анонимно)

Поле Формат GDPR
Пол male / female / other / prefer_not Не PII если без связки с ID
Возраст bucket: 18-24 / 25-34 / 35-44 / 45+ Не PII
Страна ISO код: RU / KZ / KG / US Не PII
Семейный статус single / relationship / married / other Не PII
Занятость employed / self / student / unemployed / other Не PII

Как сделать GDPR-совместимо:

  • Собирать как агрегированные bucket'ы, не точные значения
  • Хранить отдельно от user_id (разные таблицы, разные ключи)
  • Лучше: хранить только в агрегированных счётчиках — никакой строки на пользователя вообще
  • Указать в Privacy Policy и на экране онбординга

Продуктовые метрики (поведенческие, анонимные)

Воронка онбординга:

  • Установил → открыл анкету → завершил анкету → дошёл до диалога → зарегистрировался → подписался

Активность:

  • DAU / MAU (считать по анонимным session токенам, не user_id)
  • Среднее число сессий в неделю
  • Средняя длина сессии (в мин)
  • Churn: не открывал N дней (когортный анализ)
  • Retention D1, D7, D30

Сессии:

  • Завершена / брошена / частичная
  • На каком шаге бросают (без содержимого ответов — только step index)
  • Время между сессиями

Инструменты

Self-hosted (рекомендовано)

PostHog (self-hosted на Fly.io / VPS)

  • Open source, GDPR-friendly, EU data residency
  • Product analytics: фunnels, cohorts, retention, DAU/MAU
  • Feature flags (нужны будут для A/B)
  • Self-hosted = данные не уходят никуда
  • Fly.io: ~$5-10/мес за инстанс

Plausible (self-hosted или EU cloud, $9/мес)

  • Легче чем PostHog, только web/product metrics
  • Без cookies, GDPR-compliant by design
  • Если нужна только базовая воронка — достаточно

Privacy-first SaaS (если не хочется поднимать инфраструктуру)

Сервис Цена Плюсы
PostHog Cloud (EU) Бесплатно до 1M events EU серверы, GDPR, self-serve
Plausible Cloud $9/мес Простота, no cookies
Mixpanel Бесплатно до 20K users Мощный, но US-hosted — хуже для GDPR
Amplitude Бесплатно tier Хорош для cohorts, но US-hosted

Рекомендация Stage 1: PostHog Cloud EU (бесплатный tier) → при росте мигрировать на self-hosted.


Архитектура: как не нарушить GDPR

Разделение данных

user_id (UUID)         ← идентификатор, хранится в основной БД
     ↕  НЕТ связи
analytics_session_id   ← анонимный токен для аналитики

События аналитики отправляются с analytics_session_id, не с user_id. Демография (пол, возраст) — агрегируется при сборе, строки на пользователя не хранятся.

Что НЕ логировать никогда

  • Текст сообщений из сессий
  • Ответы на вопросы анкеты (только шаг завершён / нет)
  • IP-адрес в полном виде (только /24 префикс для гео)
  • Точный timestamp + user_id вместе (профилирование)

Воронка (что мерить в первую очередь)

Install
  └─ Open app                     ← install → open rate
       └─ Complete questionnaire   ← questionnaire completion
            └─ Complete session 1  ← session 1 completion (ключевой показатель)
                 └─ Register       ← registration rate
                      └─ Subscribe ← conversion rate
                           └─ D7 active ← early retention
                                └─ D30 active ← retention

Главный ранний индикатор здоровья продукта: Session 1 completion rate. Если меньше 50% — проблема в онбординге.


Открытые вопросы

  • PostHog self-hosted vs Cloud EU — решить до Stage 1 launch
  • Как считать DAU без user_id (anonymous session token lifecycle?)
  • A/B тесты онбординга — нужны feature flags (PostHog умеет)

Связанные заметки