Event Tracking — pagkolekta at pagsusuri ng mga kaganapan tungkol sa mga aksyon ng gumagamit sa loob ng mobile application, mula sa pagpindot ng mga button hanggang sa paggawa ng mga pagbili. Ang kalidad ng event tracking ay pundasyon ng product analytics, A/B testing, at personalization. Ayon sa datos ng Amplitude, 2024, ang mga team na may sistematikong Event Tracking ay gumagawa ng mga desisyon sa produkto nang 3 beses na mas mabilis dahil sa data-driven na diskarte. Kung walang mga kaganapan, bulag ang analytics ng application.
Mga pangunahing punto
Event Tracking — ay ang proseso ng pagkolekta, pag-iimbak, at pagsusuri ng mga discrete na aksyon ng gumagamit sa application. Ang bawat kaganapan ay binubuo ng isang pangalan (event_name) at isang set ng mga parameter (event_params). Halimbawa, ang kaganapang purchase ay may mga parameter na price, currency, product_id, quantity.
Hindi tulad ng Screen View, na nagtatala ng pagbubukas ng screen, inilalarawan ng Event Tracking kung ano mismo ang ginagawa ng gumagamit sa screen na iyon: pinindot ang button na “Bumili”, binuksan ang cart, nag-apply ng promo code. Kung walang mga kaganapan, imposibleng maunawaan ang motibasyon at konteksto ng mga aksyon ng gumagamit.
Bawat Analytics Event ay naglalaman ng mga mandatory at opsyonal na field. Mandatory: event_name, event_timestamp, user_id (o device_id). Opsyonal: mga parameter, paglalarawan ng konteksto.
| Field | Mandatory | Halimbawa |
|---|---|---|
| event_name | Oo | “purchase_completed” |
| event_timestamp | Oo | 1719876543000 |
| user_id | Oo | “user_abc123” |
| session_id | Hindi | “session_456def” |
| revenue | Hindi | 9.99 |
| currency | Hindi | “USD” |
Ang parameter na revenue ay lalong mahalaga — ito ay ipinapasa sa mga MMP platform para sa awtomatikong pagkalkula ng ROAS at LTV.
Mga kaganapan ay inuuri ayon sa pinagmulan at layunin. Ang paghahati ay tumutulong sa pag-oorganisa ng istraktura ng datos at pagtatalaga ng mga karapatan sa pag-access para sa iba't ibang team.
SDK ng mga analytics platform ay awtomatikong kumokolekta ng mga pangunahing kaganapan: app_install, app_remove, session_start, screen_view. Ang Firebase Analytics ay bumubuo ng humigit-kumulang 20 awtomatikong kaganapan nang walang kahit isang linya ng code. Ang mga kaganapang ito ay sumasaklaw sa mga pangunahing sukatan ngunit hindi nagbibigay ng pag-unawa sa lohika ng negosyo.
Kustom na mga kaganapan — ang nagpapahalaga sa Event Tracking. Inilalarawan nila ang mga aksyon sa negosyo: add_to_cart, start_subscription, level_complete, share_content, search_performed. Ang kustom na mga kaganapan ay nangangailangan ng tahasang pagpapadala mula sa code ng application.
// Pagpapadala ng kustom na kaganapan sa 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)
Sa halimbawa, ang kaganapang subscribe_premium ay naglalaman ng apat na parameter ng konteksto. Ang parameter na source ay nagbibigay-daan upang maunawaan kung saang screen nag-subscribe ang gumagamit — onboarding, setting, o paywall.
Bukod sa mga kaganapan, kasama sa Event Tracking ang User Properties — mga attribute na naka-attach sa gumagamit: antas ng subscription, bansa, bersyon ng application. Ang User Property ay ipinapadala nang isang beses at inilalapat sa lahat ng kasunod na kaganapan ng session. Ito ay nagbibigay-daan sa segmentation ng analytics nang hindi nagdaragdag ng mga parameter sa bawat kaganapan.
Super Properties (Amplitude) o Global Properties (Mixpanel) — mga attribute na naka-attach sa session, hindi sa gumagamit. Ginagamit para sa A/B testing: ang variant_id bilang Super Property ay idinaragdag sa lahat ng kaganapan sa session, at nakikita ng analyst kung saang grupo kabilang ang gumagamit.
Revenue na mga kaganapan — isang hiwalay na klase para sa pagtatala ng mga transaksyon. Naglalaman ang mga ito ng halaga, pera, at uri ng pagbili (subscription, isang beses na pagbili, pagpapanumbalik). Ang mga MMP platform (AppsFlyer, Adjust) ay nangangailangan ng revenue na mga kaganapan para sa pagkalkula ng ROAS.
Ayon sa datos ng Branch (2024), ang mga application na wastong nagpapadala ng revenue na mga kaganapan sa MMP ay tumatanggap ng 25% na mas tumpak na datos sa attribution at maaaring mag-optimize ng mga kampanya batay sa LTV, hindi CPI.
Pag-set up ng Event Tracking ay nagaganap sa tatlong yugto: pagpaplano ng scheme ng kaganapan, pagsasama ng SDK, pagpapatunay ng datos.
Lumikha ng Event Taxonomy — isang dokumento kung saan inilalarawan ang bawat kaganapan: pangalan, parameter, trigger ng pagpapadala, may-ari. Halimbawa para sa e-commerce: order_completed → parameter: order_id, total_price, items_count, payment_method, shipping_city.
Ikonekta ang Analytics SDK sa proyekto. Firebase Analytics, Amplitude, Mixpanel — bawat SDK ay nangangailangan ng initialisation sa Application.onCreate(). Halimbawa para sa Flutter:
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,
},
);
}
}
Ang klase na AnalyticsService ay nag-centralize ng pagpapadala ng lahat ng kaganapan. Bawat pamamaraan ay tumutugma sa isang aksyon sa negosyo. Pinapadali nito ang paghahanap ng pagpapadala — kung ang isang kaganapan ay hindi dumating, hahanapin mo ayon sa pangalan ng pamamaraan sa code. Sa pag-scale ng proyekto, ang bilang ng mga pamamaraan ay maaaring lumago sa 50–100, ngunit ang istraktura ay nananatiling nababasa dahil sa pag-grupo ayon sa feature.
Firebase DebugView ay nagbibigay-daan upang makita ang mga kaganapan sa real-time sa device ng developer. I-activate ang mode: adb shell setprop debug.firebase.analytics.app your.package. Lahat ng kaganapan ay lilitaw sa Firebase console nang wala pang 5 segundong pagkaantala.
Pagkatapos i-activate ang DebugView, buksan ang application at magsagawa ng test scenario — pagrehistro, pagbili, pagtingin sa catalog. Sa console suriin: lahat ba ng kaganapan ay naipadala, tama ba ang mga parameter, walang pagdoble. Nag-aalok ang Amplitude ng katulad na tool — Amplitude Debugger para sa iOS at Android.
Awtomatikong pagpapatunay sa pamamagitan ng CI/CD — susunod na antas ng kalidad. Magdagdag ng script sa pipeline na sumusuri kung ang bawat kaganapan mula sa scheme ay naipadala nang kahit isang beses sa panahon ng test run. Ito ay pumipigil sa paglabas ng mga bersyon na may nawawalang mga kaganapan at nakakatipid ng oras ng mga QA engineer.
Pagpapangalan ng kaganapan — ang pinaka-hindi pinapahalagahang aspeto ng Event Tracking. Ang maling pangalan ay gumagawa ng analytics na walang silbi kapag may higit sa 50 kaganapan sa proyekto.
Gamitin ang pattern na object_action (maliit na titik, snake_case): product_added, cart_opened, payment_failed, subscription_cancelled. Ang object — entity, ang aksyon — pandiwa sa nakaraang panahon. Ito ay binabasa bilang isang pangungusap: “produktong naidagdag”, “cart na binuksan”.
HUWAG gamitin ang mga espasyo (“Add to Cart”), CamelCase (“AddToCart”), tuldok (“add.to.cart”), gitling (“add-to-cart”). Karamihan sa SDK ay nagrerekomenda ng snake_case. HUWAG gumamit ng mga pangalan ng elemento ng UI (“btn_submit_clicked”) — ang kaganapan ay dapat pang-negosyo, hindi teknikal.
Para sa prefix magdagdag ng pangalan ng feature o screen: onboarding_step_completed, checkout_payment_selected. Ito ay nagbibigay-daan sa pag-filter ng mga kaganapan ayon sa functionality sa mga ulat.
Ang mga parameter ay nahahati sa tatlong uri: string (halaga), number (bilang para sa aggregation), boolean (bandila). String parameter ay naglalaman ng kategoryal na datos: bansa, pinagmulan ng trapiko, pangalan ng produkto. Number parameter ay nagsisilbi para sa mga sukatan: presyo, dami, tagal. Boolean parameter ay nagmamarka ng estado: is_trial, is_promo_applied.
Iwasan ang pagpapadala ng mga object o array sa isang parameter — hindi ma-parse ng mga analytics platform ang mga ito. Sa halip na JSON string sa isang field, magpadala ng ilang flat na parameter. Halimbawa, sa halip na items_count_total, magpadala nang hiwalay ng items_count at total_price.
Pagpili ng platform ng Event Tracking ay depende sa laki ng proyekto at team. Isaalang-alang natin ang tatlong variant ng iba't ibang antas.
Firebase — pamantayang pagpili para sa mga startup. Libreng limitasyon — 500 iba't ibang event_name, walang limitasyong bilang ng parameter. Pagsasama sa BigQuery para sa kustom na analytics. Mga kahinaan: limitadong segmentation, walang awtomatikong pag-uugnay ng mga kaganapan sa session.
Amplitude — platform para sa product analytics. Sinusuportahan ang Behavioural Cohorts, Funnel Analysis, Pathfinder. Nagbibigay-daan sa paglikha ng virtual na mga kaganapan mula sa kumbinasyon ng mga tunay. Sumasama sa 50+ na tool sa pamamagitan ng Segment.
Segment — middleware para sa pamamahala ng mga kaganapan. Ipinapadala mo ang mga kaganapan sa Segment, at ipinamahagi nito ang mga ito sa 300+ na tool. Kapaki-pakinabang sa enterprise kung saan sabay-sabay na ginagamit ang Firebase, Amplitude, Mixpanel, Braze, at Salesforce.
PostHog — open-source na platform ng product analytics na may sariling Event Tracking. Sinusuportahan ang awtomatikong pagkuha ng kaganapan, pag-record ng session, at feature flags. Deploy sa sariling server, na kritikal para sa mga proyektong may GDPR o kumpidensyal na datos. Nagbibigay ng Python-compatible na API para sa mga ETL pipeline.
Para sa mga proyektong Flutter inirerekomenda ang flutterfire_analytics + Amplitude sa pamamagitan ng plugin na amplitude_flutter. Para sa React Native — react-native-firebase + mixpanel-react-native.
Mga madalas itanong
Ang optimal na saklaw ay 50–150 kaganapan bawat application. Mas mababa sa 50 — hindi sapat ang datos para sa pagsusuri, higit sa 150 — bumababa ang kalidad (hindi kayang subaybayan ng mga analyst ang lahat). Para sa MVP, sapat na ang 20–30 pangunahing kaganapan.
Ang average na mobile SDK ay nagba-buffer ng mga kaganapan at nagpapadala sa mga batch tuwing 5–30 segundo. Ligtas na limitasyon — 100 kaganapan bawat minuto bawat device. Higit pa — panganib ng pagkawala ng datos sa mahinang koneksyon. Ang mga pagtaas (halimbawa, pag-load ng level) ay hindi kritikal.
Oo, ang modernong SDK ay nag-iimbak ng mga kaganapan sa lokal na storage kapag walang network. Kapag naibalik ang koneksyon, ipinapadala ang mga ito nang may tamang timestamp. Ang Firebase ay nag-iimbak ng hanggang 7 araw ng offline na mga kaganapan, Amplitude — hanggang 30 araw.
Ang bagong kaganapan ay nilikha gamit ang bagong event_name, ang luma ay nananatili para sa makasaysayang datos. Gumawa ng mapping sa BI layer (SQL CASE o dashboard) para sa pagsasama ng datos. Huwag kailanman baguhin ang pangalan ng umiiral na kaganapan — masisira mo ang kasaysayan.
Oo, Event Tracking ang pundasyon ng personalization. Ang mga kaganapan ay sinala sa real-time: kung ang gumagamit ay nagpadala ng product_viewed ng 3 beses nang walang pagbili, magpakita ng discount pop-up. Sinusuportahan ng Amplitude at Braze ang mga trigger na batay sa kaganapan.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din