Event Tracking в мобильных приложениях: что это, типы событий и как настроить

Автор: IT Sectr Опубликовано: 2026-04-21 Время чтения: 11 мин

Event Tracking — сбор и анализ событий о действиях пользователя внутри мобильного приложения, от нажатия кнопок до совершения покупок. Качественный event tracking — основа продуктовой аналитики, A/B-тестирования и персонализации. По данным Amplitude, 2024, команды с системным Event Tracking принимают продуктовые решения в 3 раза быстрее благодаря data-driven подходу. Без событий аналитика приложения слепа.

Главное

  • Event Tracking — сбор данных о действиях пользователя, каждое действие описывается именем события и параметрами.
  • Типы событий делятся на автоматические (SDK), кастомные (разработчик) и revenue-события.
  • Именование событий должно следовать единому стандарту — Object + Action (например, product_added_to_cart).
  • Параметры события содержат контекст: цена, категория товара, источник перехода.
  • Платформы для Event Tracking: Firebase Analytics, Amplitude, Mixpanel, Segment.

Что такое Event Tracking?

Event Tracking — это процесс сбора, хранения и анализа дискретных действий пользователя в приложении. Каждое событие состоит из имени (event_name) и набора параметров (event_params). Например, событие purchase имеет параметры price, currency, product_id, quantity.

В отличие от Screen View, который фиксирует факт открытия экрана, Event Tracking описывает, что именно пользователь делает на этом экране: нажал кнопку "Купить", открыл корзину, применил промокод. Без событий невозможно понять мотивацию и контекст действий пользователя.

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

Каждое Analytics Event содержит обязательные и опциональные поля. Обязательные: event_name, event_timestamp, user_id (или device_id). Опциональные: параметры, описание контекста.

ПолеОбязательноеПример
event_nameДа"purchase_completed"
event_timestampДа1719876543000
user_idДа"user_abc123"
session_idНет"session_456def"
revenueНет9.99
currencyНет"USD"

Параметр revenue особенно важен — он передаётся в MMP-платформы для автоматического расчёта ROAS и LTV.

Типы событий в мобильной аналитике

События классифицируются по происхождению и назначению. Разделение помогает организовать структуру данных и назначить права доступа для разных команд.

Автоматические события (SDK)

SDK аналитических платформ автоматически собирают базовые события: app_install, app_remove, session_start, screen_view. Firebase Analytics генерирует около 20 автоматических событий без единой строки кода. Эти события покрывают базовые метрики, но не дают понимания бизнес-логики.

Кастомные события (Custom Events)

Кастомные события — то, что делает Event Tracking ценным. Они описывают бизнес-действия: add_to_cart, start_subscription, level_complete, share_content, search_performed. Кастомные события требуют явной отправки из кода приложения.

kotlin
// Отправка кастомного события в Firebase
val bundle = Bundle().apply {
    putString(AnalyticsParam.ITEM_ID, "prod_789")
    putString(AnalyticsParam.ITEM_NAME, "Premium Subscription")
    putString(AnalyticsParam.CURRENCY, "USD")
    putDouble(AnalyticsParam.PRICE, 29.99)
    putString(AnalyticsParam.SOURCE, "onboarding_screen")
}
FirebaseAnalytics.getInstance(this)
    .logEvent("subscribe_premium", bundle)

В примере событие subscribe_premium содержит четыре параметра контекста. Параметр source позволяет понять, с какого экрана пользователь оформил подписку — онбординг, настройки или paywall.

User Properties и Super Properties

Помимо событий, Event Tracking включает User Properties — атрибуты, привязанные к пользователю: уровень подписки, страна, версия приложения. User Property отправляется один раз и применяется ко всем последующим событиям сессии. Это позволяет сегментировать аналитику без добавления параметров к каждому событию.

Super Properties (Amplitude) или Global Properties (Mixpanel) — атрибуты, привязанные к сессии, а не к пользователю. Используются для A/B-тестов: variant_id как Super Property добавляется ко всем событиям в сессии, и аналитик видит, к какой группе относится пользователь.

Revenue-события

Revenue-события — отдельный класс для фиксации транзакций. Они содержат сумму, валюту и тип покупки (подписка, разовая покупка, восстановление). MMP-платформы (AppsFlyer, Adjust) требуют revenue-события для расчёта ROAS.

По данным Branch (2024), приложения, корректно передающие revenue-события в MMP, получают на 25% более точные данные по атрибуции и могут оптимизировать кампании под LTV, а не под CPI.

Как настроить Event Tracking?

Настройка Event Tracking проходит в три этапа: планирование схемы событий, интеграция SDK, валидация данных.

Этап 1: Event Schema Design

Создайте Event Taxonomy — документ, где описано каждое событие: имя, параметры, триггер отправки, владелец. Пример для e-commerce: order_completed → параметры: order_id, total_price, items_count, payment_method, shipping_city.

  • Каждое событие отвечает на вопрос: что сделал пользователь?
  • Каждый параметр отвечает на вопрос: в каком контексте?
  • Избегайте событий без параметров — они бесполезны для анализа

Этап 2: Интеграция SDK

Подключите Analytics SDK к проекту. Firebase Analytics, Amplitude, Mixpanel — любой SDK требует инициализации в Application.onCreate(). Пример для Flutter:

dart
import 'package:firebase_analytics/firebase_analytics.dart';

class AnalyticsService {
  final _analytics = FirebaseAnalytics.instance();

  Future<void> logPurchase({
    required String productId,
    required double price,
    required String currency,
  }) async {
    await _analytics.logEvent(
      name: 'purchase_completed',
      parameters: {
        'product_id': productId,
        'price': price,
        'currency': currency,
        'timestamp': DateTime.now().millisecondsSinceEpoch,
      },
    );
  }
}

Класс AnalyticsService централизует отправку всех событий. Каждый метод соответствует бизнес-действию. Это упрощает поиск отправки — если событие не приходит, ищете по имени метода в коде. При масштабировании проекта количество методов может вырасти до 50–100, но структура остаётся читаемой за счёт группировки по фичам.

Этап 3: Валидация через DebugView

Firebase DebugView позволяет видеть события в реальном времени на устройстве разработчика. Включите режим: adb shell setprop debug.firebase.analytics.app your.package. Все события появятся в консоли Firebase с задержкой менее 5 секунд.

После включения DebugView откройте приложение и выполните тестовый сценарий — регистрацию, покупку, просмотр каталога. В консоли проверьте: все ли события отправились, правильные ли параметры переданы, нет ли дублирования. Amplitude предлагает аналогичный инструмент — Amplitude Debugger для iOS и Android.

Автоматическая валидация через CI/CD — следующий уровень качества. Добавьте в пайплайн скрипт, который проверяет, что каждое событие из схемы хотя бы раз отправилось за тестовый прогон. Это предотвращает выкатку версий с пропущенными событиями и экономит время QA-инженеров.

Лучшие практики именования событий

Именование событий — самый недооценённый аспект Event Tracking. Неправильное имя делает аналитику бесполезной, когда в проекте больше 50 событий.

Стандарт Object + Action

Используйте паттерн object_action (нижний регистр, snake_case): product_added, cart_opened, payment_failed, subscription_cancelled. Объект — сущность, действие — глагол в прошедшем времени. Это читается как предложение: "товар добавлен", "корзина открыта".

  • product_viewed, not "tap_on_product_card" (событие — результат, не действие)
  • order_completed, not "successful_payment_transaction" (коротко и ясно)
  • level_started, not "begin_level_with_parameters" (без лишних слов)

Запрещённые паттерны

НЕ используйте пробелы ("Add to Cart"), CamelCase ("AddToCart"), точку ("add.to.cart"), дефис ("add-to-cart"). Большинство SDK рекомендуют snake_case. НЕ используйте названия UI-элементов ("btn_submit_clicked") — событие должно быть бизнесовым, не техническим.

Для prefix добавляйте название фичи или экрана: onboarding_step_completed, checkout_payment_selected. Это позволяет фильтровать события по функциональности в отчётах.

Типы параметров событий

Параметры делятся на три типа: string (значение), number (число для агрегации), boolean (флаг). String-параметры содержат категориальные данные: страна, источник трафика, название товара. Number-параметры служат для метрик: цена, количество, длительность. Boolean-параметры отмечают состояние: is_trial, is_promo_applied.

Избегайте передачи объектов или массивов в одном параметре — аналитические платформы не умеют их парсить. Вместо JSON-строки в одном поле передайте несколько плоских параметров. Например, вместо items_count_total передайте отдельно items_count и total_price.

Платформы для Event Tracking

Выбор платформы Event Tracking зависит от масштаба проекта и команды. Рассмотрим три варианта разного уровня.

Firebase Analytics (бесплатно, до 500 событий)

Firebase — стандартный выбор для стартапов. Бесплатный лимит — 500 различных event_name, неограниченное число параметров. Интеграция с BigQuery для кастомной аналитики. Минусы: ограниченная сегментация, нет автоматического связывания событий в сессии.

Amplitude (Pro от $1,000/мес)

Amplitude — платформа для продуктовой аналитики. Поддерживает Behavioural Cohorts, Funnel Analysis, Pathfinder. Позволяет создавать виртуальные события из комбинации реальных. Интегрируется с 50+ инструментами через Segment.

Segment (от $120/мес)

Segment — middleware для управления событиями. Отправляете события в Segment, а он распределяет их по 300+ инструментам. Полезен в enterprise, где одновременно используют Firebase, Amplitude, Mixpanel, Braze и Salesforce.

PostHog (open-source альтернатива)

PostHog — open-source платформа продуктовой аналитики с собственным Event Tracking. Поддерживает автокаптур событий, session recording и feature flags. Развёртывается на собственном сервере, что критически важно для проектов с GDPR или конфиденциальными данными. Предоставляет Python-совместимый API для ETL-пайплайнов.

Для Flutter проектов рекомендуется flutterfire_analytics + Amplitude через плагин amplitude_flutter. Для React Native — react-native-firebase + mixpanel-react-native.

Часто задаваемые вопросы

Сколько событий нужно отслеживать в одном приложении?

Оптимальный диапазон — 50–150 событий на приложение. Меньше 50 — не хватает данных для анализа, больше 150 — падает качество (аналитики не успевают за всеми). Для MVP достаточно 20–30 ключевых событий.

Как часто можно отправлять события без вреда для производительности?

Средний мобильный SDK буферизует события и отправляет батчами каждые 5–30 секунд. Безопасный лимит — 100 событий в минуту на устройство. Больше — риск потери данных при плохом соединении. Всплески (например, загрузка уровня) не критичны.

Нужно ли отправлять события при offline-режиме?

Да, современные SDK сохраняют события в локальном хранилище при отсутствии сети. При восстановлении соединения они отправляются с правильной временной меткой. Firebase хранит до 7 дней офлайн-событий, Amplitude — до 30 дней.

Как переименовать событие в уже запущенном приложении?

Новое событие создаётся с новым event_name, старое — остаётся для исторических данных. Создайте mapping в BI-слое (SQL CASE или дашборд) для склейки данных. Никогда не меняйте имя существующего события — сломаете историю.

Можно ли использовать Event Tracking для персонализации?

Да, Event Tracking — основа персонализации. События фильтруются в real-time: если пользователь отправил product_viewed 3 раза без покупки, покажите скидочный попап. Amplitude и Braze поддерживают триггеры на основе событий.

Итоги

  • Event Tracking — сбор дискретных действий пользователя с контекстом (параметры, временная метка, user_id).
  • Типы событий: автоматические (SDK), кастомные (бизнес-логика), revenue (транзакции).
  • Именование — snake_case по стандарту Object + Action.
  • Настройка включает три этапа: схема событий, SDK, DebugView-валидация.
  • Платформы: Firebase (бесплатно), Amplitude (Pro), Segment (enterprise).
  • Оптимум — 50–150 событий на приложение.
  • Офлайн-события буферизуются SDK и отправляются при восстановлении соединения.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также