Event Tracking в мобилните приложения: какво е, типове събития и как да настроим

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

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

Основни точки

  • Event Tracking — събиране на данни за действията на потребителя, всяко действие се описва с име на събитие и параметри.
  • Типове събития се делят на автоматични (SDK), персонализирани (разработчик) и приходни събития.
  • Именуване на събития трябва да следва единен стандарт — 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 позволява да разберем от кой екран потребителят е направил абонамента — onboarding, настройки или paywall.

User Properties и Super Properties

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

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

Приходни събития

Приходните събития — отделен клас за записване на транзакции. Те съдържат сума, валута и тип покупка (абонамент, еднократна покупка, възстановяване). MMP платформите (AppsFlyer, Adjust) изискват приходни събития за изчисляване на ROAS.

Според данни на Branch (2024), приложенията, които правилно предават приходни събития на MMP, получават 25% по-точни данни за атрибуция и могат да оптимизират кампании на база LTV, а не CPI.

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

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

Етап 1: Проектиране на схема от събития

Създайте Event Taxonomy — документ, в който е описано всяко събитие: име, параметри, тригер за изпращане, собственик. Пример за електронна търговия: 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 — следващото ниво на качество. Добавете скрипт към pipeline, който проверява дали всяко събитие от схемата е изпратено поне веднъж по време на тестовото изпълнение. Това предотвратява пускането на версии с липсващи събития и спестява време на QA инженерите.

Най-добри практики за именуване на събития

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

Стандарт Object + Action

Използвайте модела object_action (малки букви, snake_case): product_added, cart_opened, payment_failed, subscription_cancelled. Обект — единица, действие — глагол в минало време. Чете се като изречение: „продукт добавен", „количка отворена".

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

Забранени модели

НЕ използвайте интервали („Add to Cart"), CamelCase („AddToCart"), точка („add.to.cart"), тире („add-to-cart"). Повечето SDK препоръчват snake_case. НЕ използвайте имена на UI елементи („btn_submit_clicked") — събитието трябва да е бизнес, не техническо.

За префикс добавете име на функционалност или екран: 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 USD/мес.)

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

Segment (от 120 USD/мес.)

Segment — middleware за управление на събития. Изпращате събития на Segment, а той ги разпределя към 300+ инструмента. Полезен в enterprise, където едновременно се използват Firebase, Amplitude, Mixpanel, Braze и Salesforce.

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

PostHog — open-source платформа за продуктова аналитика със собствен Event Tracking. Поддържа автоматично улавяне на събития, запис на сесии и feature flags. Разгръща се на собствен сървър, което е критично за проекти с GDPR или поверителни данни. Предлага API, съвместим с Python, за 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 събития в минута на устройство. Повече — риск от загуба на данни при лоша връзка. Пикове (например зареждане на ниво) не са критични.

Трябва ли да се изпращат събития в офлайн режим?

Да, съвременните SDK запазват събития в локално хранилище при липса на мрежа. При възстановяване на връзката те се изпращат с правилния времеви отпечатък. Firebase съхранява до 7 дни офлайн събития, Amplitude — до 30 дни.

Как да преименуваме събитие в вече пуснато приложение?

Ново събитие се създава с нов event_name, старото остава за исторически данни. Създайте картографиране в BI слоя (SQL CASE или dashboard) за слепване на данни. Никога не променяйте името на съществуващо събитие — ще развалите историята.

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

Да, Event Tracking е основата на персонализацията. Събитията се филтрират в реално време: ако потребител е изпратил product_viewed 3 пъти без покупка, покажете изскачащ прозорец с отстъпка. Amplitude и Braze поддържат тригери, базирани на събития.

Обобщение

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

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

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също