Skip to content
PПромтбук
RUEN
01Аналитика

Таксономия событий

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

Спроектируй таксономию событий для {{product}}.

Принципы именования

  1. Object-Action: object.action или object_action

    • signup.completed, payment.succeeded, project.created
    • НЕ completed_signup (action_object) — менее читаемо
    • НЕ signed_up без объекта
  2. Прошедшее время для action: created, не create

    • "Что произошло" — естественно в past tense
  3. Без пробелов и регистра в смысле

    • snake_case или dot.case
    • НЕ Page Viewed (Mixpanel-style — устарело)
  4. Один глагол на событие

    • payment.succeeded
    • payment.created_and_succeeded

Структура события

event: object.action
properties:
  # Контекст
  page_url: ...
  page_title: ...
  source: ...

  # Объект
  object_id: ...
  object_type: ...

  # Действие
  action_method: ...  # клик / клавиатура / API
  action_duration_ms: ...

  # Пользователь
  user_id: ...        # анонимный или авторизованный
  user_role: ...

  # А/Б эксперименты
  experiments: { name: variant }

Что трекать (минимум)

  1. Лайфцикл сессии

    • session.started
    • page.viewed (с URL, referrer, utm)
    • session.ended
  2. Конверсии

    • signup.started / signup.completed
    • payment.started / payment.succeeded / payment.failed
    • trial.started / trial.converted / trial.cancelled
  3. Ключевые действия

    • feature.used (с feature_name)
    • item.created / item.deleted
    • search.performed (с query, results_count)
  4. Воронки Для каждой основной воронки трекать каждый шаг отдельно

  5. Ошибки и frustration

    • error.occurred
    • form.validation_failed (с field)
    • rage_click (несколько кликов в одну точку)

Анти-паттерны

button_clicked — какая кнопка? ✗ form_submitted — какая форма? ✗ Разные команды называют одно и то же по-разному (user_signed_up vs signup_completed) ✗ Изменение значений старого события без миграции аналитики ✗ Высоко-кардинальные свойства (URL c query-string как property) — взрыв уникальных значений

Версионирование схемы

event: signup.completed
version: 2
properties:
  method: email | google | github   # v2
  referral_source: ...               # v2 - new

При breaking change — новое имя или версия. Не молча менять.

Документация

Веди источник истины — Notion/spreadsheet с:

  • Имя события
  • Когда вызывается
  • Обязательные / опциональные свойства
  • Тип каждого
  • Дата добавления
  • Owner

Перед добавлением события в код — добавь в документацию. Иначе через год: "что это за btn_3 и кто его поставил?"

Тестирование

  • Debug mode в production
  • Browser extension для просмотра событий
  • Тест что событие отправлено: expect(track).toHaveBeenCalledWith('signup.completed', {...})
К подразделу «Аналитика»
Похожие промты