Mục 4

📊 Events

App gửi những event nào lên hệ thống báo cáo, bắn vào lúc nào, kèm thông tin gì. Dùng để đọc báo cáo, so sánh trước — sau khi đổi cấu hình, và để QA kiểm xem app đo đúng chưa.

Chốt theo code ngày 06/08/2026. Toàn bộ tên event trong bảng lấy trực tiếp từ AnalyticsEvents.kt / AnalyticsScreens.kt / AppsflyerTracker.kt (nhánh feat/execute_plan_ios_ui). Phải rà lại khi dev thêm event mới. Bảng cũ để đối chiếu: bản event cũ.
Mục lục trang

1 Event là gì, xem ở đâu

Mỗi lần người dùng làm một việc đáng quan tâm, app gửi lên một "event". Ghép các event lại thành báo cáo.

Firebase Analytics

Báo cáo chính: bao nhiêu người dùng, làm gì trong app, ads show bao nhiêu lần.

App gửi gần như mọi event ở mục 4 sang đây (FirebaseModule.analytics) — đây là nguồn số liệu chính cho mọi câu hỏi trong tài liệu này: tỉ lệ đặt app làm màn hình chính, ads show bao nhiêu, người dùng dùng tính năng nào nhiều.

  • Xem realtime (test ngay lập tức): DebugView — cách bật ở mục 6.
  • Xem báo cáo chính thức: Explore → Free form — số liệu trễ khoảng 24–48 giờ so với lúc app gửi.
  • Thông tin chi tiết kèm event (param) chỉ hiện trong report sau khi khai báo Custom definitions — xem mục 5.

Vào console.firebase.google.com → chọn project chứa app Android com.hp.theme.homescreen.smart → mục Analytics. Chưa thấy project trong danh sách thì nhờ dev cấp quyền cho email của bạn.

AppsFlyer

Đo hiệu quả chiến dịch cài đặt: người dùng đến từ chiến dịch nào.

App khởi tạo AppsFlyer SDK (AppsflyerTracker.init) ngay khi mở app lần đầu, chạy song song với Firebase — nhiều event bắn sang cả hai nơi cùng lúc, nhưng AppsFlyer có thêm một bộ tên riêng (tiền tố af_) chuyên để nuôi thuật toán tối ưu chiến dịch cài app + đo doanh thu ads/mua hàng theo từng nguồn cài đặt.

  • Funnel ads trong app (request → available → displayed) cho inter ads / reward ads / native ads — xem nhóm Ads ở mục 3–4.
  • af_default_launcher — mỗi lần người dùng đặt app làm màn hình chính mặc định (dùng để tối ưu chiến dịch nhắm đúng đối tượng dễ đặt default).
  • af_purchase — mua gói Premium / gói xu, kèm doanh thu thật (đã trừ phần chiết khấu store).
  • Doanh thu ads (logAdRevenue) — mọi ad trả tiền đều gửi 1 bản sang AppsFlyer song song với Firebase.

Vào hq1.appsflyer.com → chọn app → báo cáo hay dùng nhất là Overview (số cài theo nguồn) và Cohort (doanh thu theo nguồn). Chưa có quyền thì nhờ người quản trị AppsFlyer thêm email của bạn.

🧭 Hai câu hỏi tài liệu này phải trả lời được
  • Bao nhiêu phần trăm người dùng chọn app làm màn hình chính mặc định?
  • Ads show bao nhiêu lần, ở đâu, có tương ứng doanh thu không?

2 Quy ước đặt tên

Biết quy ước thì nhìn tên là đoán được event thuộc nhóm nào, đỡ phải tra bảng.

📐 Quy tắc chung
Tên event toàn chữ thường, nối bằng dấu _ (snake_case), tối đa 40 ký tự — giới hạn kỹ thuật của Firebase, không phải lựa chọn thẩm mỹ. Mọi giá trị dạng chữ (tên item, tên màn…) cũng bị cắt bớt còn tối đa 40 ký tự nếu dài hơn — QA thấy chữ bị cụt trong DebugView thì đây là lý do, không phải lỗi.
Tiền tốKhu vựcVí dụ
ad_Vòng đời ads dùng chung cho mọi loại (request/load/show/click)ad_displayed, ad_clicked
không tiền tố3 event show ads tách riêng theo loại, để đếm native ads / inter ads / reward ads độc lậpnative_show, inter_show, reward_show
af_Chỉ gửi sang AppsFlyer (không phải Firebase) — nuôi thuật toán tối ưu chiến dịchaf_inters_displayed, af_purchase
default_launcher_ / set_launcher_ / launcher_change_Bộ 9 event đo việc đặt app làm màn hình chính — cố ý tách nhiều tên vì mỗi tên trả lời 1 câu hỏi khác nhau (xem mục 3)default_launcher_confirmed
theme_store_Mọi thao tác trong Theme Storetheme_store_wallpaper_apply
coin_Nền kinh tế xu (kiếm xu / tiêu xu)coin_earn_ad
notify_Thông báo kéo người dùng quay lại app (retention push) — chỉ 3 tên cố định, mã chiến dịch đi kèm như thông tin bên trong chứ không ghép vào tênnotify_clicked
sub_Funnel mua gói Premium (paywall → thanh toán)sub_purchase_success
clock_ / weather_ / calc_ / gallery_ / chat_Từng app con — trùng tên app cho dễ đoánclock_alarm_created
cc_Trung tâm điều khiển (Control Center)cc_tile_tap
widget_Thao tác với widget trên màn hình chínhwidget_added
không tiền tốmini_app_open — dùng chung 1 tên cho việc mở BẤT KỲ app con nào (kèm thông tin app con là gì), thay vì mỗi app một tên riêngmini_app_open
chuẩn Firebasescreen_view — tên do Firebase quy định sẵn, dùng để đo mỗi lần người dùng vào một màn hìnhscreen_view
Nguồn: analytics/AnalyticsEvents.kt, analytics/AnalyticsScreens.kt, analytics/AppsflyerTracker.kt

3 Các nhóm event

17 nhóm theo khu vực trong app. Bấm tên nhóm để tới đúng bảng event của nhóm đó ở mục 5.

Nhóm tính năng Số event Dùng để trả lời câu gì
🌐 Chung toàn app1Người dùng đi qua những màn nào, màn nào xem nhiều nhất.
🚀 Mở app & thông báo kéo về6Người dùng vào app bằng đường nào; thông báo kéo về có ai bấm không.
🏠 Đặt làm màn hình chính10Bao nhiêu người thật sự đặt app làm màn hình chính — chỉ số sống còn của launcher.
📱 Màn hình chính & tìm kiếm8Có sắp xếp lại lưới icon, tạo thư mục, dùng tìm kiếm không.
🧩 Widget8Widget có được thêm vào và bấm vào không, cỡ nào hay dùng.
🎚️ Control Center & Trung tâm thông báo9Tile nào hay bấm; có ai tự sắp lại danh sách tile không.
⚙️ Cài đặt & giao diện9Đổi theme / hình nền / ngôn ngữ / tên–icon app nhiều không.
🎨 Theme Store31Funnel của kho: xem → mở chi tiết → xem thử → áp dụng, tắc ở step nào. Nhóm lớn nhất.
🪙 Ví xu9Xu vào từ đâu, tiêu vào gì, bao nhiêu người hết xu.
💬 Chat AI15Có ai chat thật không; hết lượt rồi họ xem reward ads hay bỏ đi.
⏰ Đồng hồ13Báo thức / hẹn giờ / bấm giờ có được dùng thật không.
🌤️ Thời tiết4Có ai thêm thành phố, đổi đơn vị đo không.
🧮 Máy tính1App máy tính có được dùng hay chỉ nằm đó.
🖼️ Thư viện ảnh12Album, sửa ảnh, cắt video, xoá / khôi phục có ai dùng.
📺 Ads29Ads request bao nhiêu, show được bao nhiêu, có ra doanh thu không. 16 Firebase + 13 AppsFlyer (tiền tố af_) đo song song cùng một funnel.
💎 Đăng ký Premium11Bao nhiêu người xem màn bán gói → bao nhiêu mua thật. 10 Firebase + 1 AppsFlyer (af_purchase, kèm doanh thu thật).
🧭 Funnel mở app → Home50% người dùng đi hết được từ mở app tới Home (lần đầu onboarding / lần mở sau), ads chen ở step nào gây drop nhiều nhất. Cách đọc funnel chi tiết ở trang Funnel — bảng dưới đây chỉ tra tên event.
Tổng226 
📊 Cách đọc funnel ads (nhóm 📺 Ads)
Đọc theo đúng thứ tự request (ad_request) → load (ad_loaded) → show (ad_displayed) → click (ad_clicked), song song theo dõi ad_load_failed ở step load. Số ở step sau LUÔN nhỏ hơn hoặc bằng step trước — nếu request nhiều mà show rất ít (matchrate = load ÷ request, hoặc showrate = show ÷ load, quá thấp) thì đang có vấn đề (mạng chậm, cấu hình sai, hoặc ads bị chặn capping — xem ad_capped). AppsFlyer đo song song một funnel tương tự với tiền tố af_ (vd af_inters_call_show → af_inters_available → af_inters_displayed), dùng để đối chiếu chéo khi nghi ngờ số liệu Firebase.

Showrate thấp mà không phải do ad_load_failed? Lọc thêm ad_dropped (chỉ có ở inter ads/AOA) — ad đã load xong nhưng không kịp show, kèm reason để biết đúng nguyên nhân (quá giờ chờ / bị ad khác giành show trước / màn đã đóng / Google báo lỗi lúc show) thay vì chỉ thấy ad_displayed tụt mà không rõ vì sao.
⚠️ Bản rework ads 05–06/08/2026 đổi cách ĐẾM — đọc trước khi so số với tháng trước
Tên event không thay đổi, không thêm không bớt — nhưng 4 điểm dưới đây đổi ý nghĩa con số:
  • ad_displayed / native_show đếm theo AD, không theo lần vẽ. Bắn ở đúng lúc ad được gắn vào ô trên màn, và mỗi ad chỉ bắn 1 lần. Một ad mượn từ cache đem show lại ở màn khác không bắn thêm — khớp với cách Google tính tiền (1 ad = 1 lượt xem). Nên displayed / loaded nhỏ hơn 100% là bình thường.
  • ad_request của native ads giảm so với trước: cuộn ô ads ra/vào và đổi tab không còn request lại (xem cách app load ads). Request giảm mà displayed giữ nguyên = đúng mục tiêu, không phải hụt số.
  • Từ 06/08: ad_displayed / native_show của native ads GIẢM. Ô ads nằm trong màn cuộn được chỉ bắn khi thật sự lọt vào màn hình; trước đây ô còn ở dưới màn cũng bắn, mà Google không tính lượt xem kiểu đó. Phần giảm là số đếm thừadoanh thu không giảm theo, và số của app từ nay sát với AdMob hơn. So với trước 06/08 thì so doanh thu, đừng so ad_displayed. Chi tiết: mục 10 trang Ads.
  • Vị trí mới inter_reward_fallback trong tham số placement: inter ads chạy thay khi hết reward ads. Lọc theo vị trí này để biết bao nhiêu lượt reward bị hụt fill — xem mục 11 trang Ads.
  • Event mới reward_complete — tách riêng lúc người dùng xem hết reward ads THẬT và nhận thưởng, khác với reward_show/ad_displayed (bắn ngay lúc ad vừa hiện, đóng giữa chừng không nhận thưởng vẫn tính là đã show). Chưa bắn ở lượt reward bị thay bằng inter ads fallback — nên reward_complete ÷ reward_show chỉ đúng cho reward ads thật, cộng thêm ad_displayed lọc placement = inter_reward_fallback mới ra tổng thật.
🧭 Nhóm mới: Funnel mở app → Home
66 event tên ob01…ob17 (lượt cài xong mở lần đầu, chưa onboarding_complete) và rt01…rt05 (các lượt mở sau) — đánh số theo đúng thứ tự bắn thật để Firebase Funnel Exploration kéo-thả ra ngay thứ tự flow, không cần khai custom dimension (sự kiện nào bắn sau thì số to hơn — vì thế chốt ngôn ngữ là ob14_lang_done, bắn sau 2 vị trí ads 12/13). Chạy song song với nhóm 📺 Ads, không thay và không đụng vào ad_*. Mỗi vị trí ads có _show (hiện được) hoặc _not_show{reason} (không hiện) rồi luôn có _end = số user đi qua được vị trí đó — _end mới là step của funnel; kèm _click / _back (_back = quay lại app sau khi bấm ads, kèm away_ms) — bấm ads xong bỏ app luôn = _click trừ _back. Bảng dưới đây chỉ catalog tên event + tham số + thời điểm bắn; cách dựng report funnel và đọc số drop từng step xem ở trang Funnel riêng.

4 Bảng đầy đủ

Toàn bộ event trong một bảng, dùng khi đối chiếu báo cáo. Lọc nhanh bằng ô tìm hoặc bấm một tính năng bên dưới. Cần xem tách riêng từng tính năng → mục 5.

Tên event Tính năng Bắn khi nào Kèm thông tin gì Gửi lên
screen_view🌐 Chung toàn appVào một màn hình mới — đổi màn ở launcher, đổi tab Cài đặt, hoặc đổi màn trong bất kỳ app con nào.
  • screen_name: tên màn, vd home, settings_general, clock_alarm, gallery_library
Firebase
onboarding_complete🚀 Mở app & thông báo kéo vềHoàn tất step cuối màn giới thiệu lần đầu mở app.Không có tham sốFirebase
mini_app_open🚀 Mở app & thông báo kéo vềMở một app con (kể cả quay lại app con đang chạy nền khi bấm icon lần nữa).
  • app: weather/calculator/clock/gallery/chat_ai/wallpaper/control_center/settings
Firebase
notify_scheduled🚀 Mở app & thông báo kéo vềHệ thống lên lịch một thông báo kéo người dùng quay lại app (trước khi thông báo thật sự hiện ra).
  • track_id: mã chiến dịch thông báo
Firebase
notify_shown🚀 Mở app & thông báo kéo vềThông báo kéo người dùng quay lại đã thật sự hiện trên máy.
  • track_id
Firebase
notify_clicked🚀 Mở app & thông báo kéo vềNgười dùng bấm vào thông báo đó để mở lại app.
  • track_id
  • day_click: ngày bấm (có thể khác ngày thông báo hiện)
  • hour: giờ bấm
Firebase
notify_permission_denied🚀 Mở app & thông báo kéo vềNgười dùng từ chối quyền gửi thông báo (Android 13+).Không có tham sốFirebase
ad_request📺 AdsApp bắt đầu request một ad — step đầu funnel.
  • format: native/inter/aoa/reward
  • placement: vị trí hiện ad (vd inter_reward_fallback = inter ads thay cho reward ads no-fill)
Firebase
ad_loaded📺 AdsAd load xong, sẵn sàng show.
  • format, placement
  • load_ms: thời gian load (mili-giây)
Firebase
ad_load_failed📺 AdsLoad ad thất bại (fail / no-fill).
  • format, placement
  • error_code: mã lỗi
Firebase
ad_dropped mới 06/08📺 AdsAd đã load xong (đã tính vào matchrate) nhưng không kịp show — khác ad_load_failed (chưa từng có ad). Chỉ ở inter adsAOA.
  • format, placement
  • reason: timeout (quá giờ chờ) / lost_race (ad khác đã giành show trước) / activity_dead (màn đã đóng) / show_failed_<mã lỗi> (Google báo lỗi lúc show)
Firebase
ad_displayed📺 AdsFull-screen ads hoặc native ads thật sự show cho người dùng thấy. Đếm 1 lần / ad — ad mượn từ cache đem show lại không bắn thêm.
  • format, placement
  • is_default: lúc đó app có đang là màn hình chính mặc định không
Firebase
native_show📺 AdsBắn kèm ad_displayed khi format=native — tách riêng để đếm lượt show native ads độc lập.
  • placement
Firebase
inter_show📺 AdsNhư trên, cho inter ads.
  • placement
Firebase
reward_show📺 AdsNhư trên, cho reward ads.
  • placement
Firebase
reward_complete mới 06/08📺 AdsNgười dùng xem hết reward ads THẬT và được trả thưởng (OnUserEarnedRewardListener) — khác reward_show/ad_displayed (bắn lúc ad vừa hiện ra, chưa chắc xem hết). Không bắn khi lượt reward bị thay bằng inter ads fallback (mục 11 trang Ads) — nhánh đó chỉ trả thưởng qua callback trong app, chưa nối vào event này (đếm thiếu đúng số lượt fallback, xem cảnh báo ở trang Ads).
  • placement
Firebase
ad_clicked📺 AdsNgười dùng bấm vào nội dung ad.
  • format, placement
Firebase
ad_dismissed📺 AdsNgười dùng đóng ad (không bấm vào nội dung).
  • format, placement
Firebase
ad_capped📺 AdsĐã chạm capping (giãn cách) ở vị trí này — ad bị chặn, không request/show.
  • placement
Firebase
ad_skipped_premium📺 AdsBỏ qua ad vì người dùng đã mua Premium.
  • placement
Firebase
ad_impression📺 AdsAd được Google tính tiền thật — dùng để cộng doanh thu ads.
  • nguồn ads (ad network), định dạng, tên ad unit
  • value + currency: số tiền, đơn vị tiền
Firebase
open_store_button_show📺 AdsBiến thể "nút Mở Store" của native full ads — nút hiện ra sau khi đếm ngược xong.Không có tham sốFirebase
open_store_button_click📺 AdsNgười dùng bấm nút đó (đồng thời tính thêm 1 lượt ad_clicked của native ads).Không có tham sốFirebase
af_inters_call_show📺 AdsBắt đầu 1 lượt gọi show inter ads (trước khi biết có show được không).Không có tham sốAppsFlyer
af_inters_passed_capping_time📺 AdsĐã qua được capping của inter ads.Không có tham sốAppsFlyer
af_inters_available📺 AdsInter ads đã load xong, sẵn sàng.Không có tham sốAppsFlyer
af_inters_displayed📺 AdsInter ads đã show.Không có tham sốAppsFlyer
af_inters_load_fail📺 AdsLoad inter ads thất bại.Không có tham sốAppsFlyer
af_rewarded_call_show📺 AdsBắt đầu 1 lượt gọi show reward ads.Không có tham sốAppsFlyer
af_rewarded_available📺 AdsReward ads đã load xong.Không có tham sốAppsFlyer
af_rewarded_displayed📺 AdsReward ads đã show.Không có tham sốAppsFlyer
af_rewarded_load_fail📺 AdsLoad reward ads thất bại.Không có tham sốAppsFlyer
af_rewarded_completed📺 AdsNgười dùng xem hết reward ads, đủ điều kiện nhận thưởng.Không có tham sốAppsFlyer
af_native_request📺 AdsBắt đầu request native ads (ô ads lồng trong nội dung).Không có tham sốAppsFlyer
af_native_matched_request📺 AdsNative ads load xong, có ad để show (fill).Không có tham sốAppsFlyer
af_native_displayed📺 AdsNative ads thật sự show trên màn hình.Không có tham sốAppsFlyer
default_launcher_prompt🏠 Đặt làm màn hình chínhMàn mời đặt app làm mặc định xuất hiện (mỗi lần quay lại Home mà chưa đặt mặc định) — chỉ là lượt xem.Không có tham sốFirebase
default_launcher_set🏠 Đặt làm màn hình chínhBấm nút "Đặt làm mặc định" — mới là Ý ĐỊNH, hộp thoại hệ thống sau đó còn có thể bị huỷ.
  • source: prompt/settings
Firebase
default_launcher_confirmed🏠 Đặt làm màn hình chínhApp THẬT SỰ đã trở thành mặc định (xác nhận lại lúc mở app) — chỉ bắn đúng 1 lần/máy. Dùng số này để tính tỉ lệ đặt-mặc-định thành công thật.
  • source
  • days_since_install: số ngày kể từ lúc cài app
Firebase
set_default_launcher🏠 Đặt làm màn hình chínhBắn mỗi lần app chuyển sang trạng thái mặc định — không giới hạn số lần, kể cả đổi đi đổi lại.
  • count_set: tổng số lần đã đặt mặc định
Firebase
default_launcher_set_day🏠 Đặt làm màn hình chínhGiống trên nhưng chỉ tính tối đa 1 lần mỗi ngày cài đặt khác nhau — dùng để vẽ biểu đồ theo ngày.
  • source, days_since_install
Firebase
set_launcher_true🏠 Đặt làm màn hình chínhMở màn mời đặt mặc định (hoặc bấm nút ở Cài đặt) và kết quả là đã thành công — chỉ 1 lần/máy.
  • source
Firebase
set_launcher_false🏠 Đặt làm màn hình chínhNhư trên nhưng kết quả là chưa thành công.
  • source
Firebase
launcher_change_to_default🏠 Đặt làm màn hình chínhLần ĐẦU TIÊN máy chuyển từ "chưa mặc định" sang "mặc định" — chỉ 1 lần/máy.Không có tham sốFirebase
launcher_change_to_non_default🏠 Đặt làm màn hình chínhLần đầu tiên máy chuyển ngược lại (đang mặc định bị đổi sang app khác) — chỉ 1 lần/máy.Không có tham sốFirebase
af_default_launcher🏠 Đặt làm màn hình chínhBản AppsFlyer song song với việc trở thành mặc định — bắn MỌI lần chuyển (không giới hạn 1 lần) để nuôi thuật toán chiến dịch.
  • source
AppsFlyer
theme_store_open🎨 Theme StoreVào màn Theme Store.
  • source: tab mở đầu
Firebase
theme_store_tab_view🎨 Theme StoreChuyển tab dưới cùng của Store (Wallpaper/Theme/Icon/Widget/…).
  • tab
Firebase
theme_store_back🎨 Theme StoreBấm nút quay lại trong Store.
  • source
Firebase
theme_store_set_theme_step🎨 Theme StoreXem từng step của flow "đặt theme trọn bộ" (chọn hình nền → icon → widget).
  • value: step 1/2/3
Firebase
theme_store_item_impression🎨 Theme StoreMột thẻ sản phẩm (theme/wallpaper/icon pack/widget) xuất hiện trên màn hình lần đầu trong phiên đó.
  • kind, id
Firebase
theme_store_see_all🎨 Theme StoreBấm "Xem tất cả" ở một mục (nổi bật/bộ icon/danh mục).
  • kind
Firebase
theme_store_wallpaper_open🎨 Theme StoreMở xem chi tiết 1 hình nền.
  • source, id
Firebase
theme_store_theme_open🎨 Theme StoreMở xem chi tiết 1 theme trọn bộ.
  • source, id
Firebase
theme_store_icon_pack_open🎨 Theme StoreMở xem chi tiết 1 bộ icon.
  • source, id
Firebase
theme_store_widget_open🎨 Theme StoreMở xem chi tiết 1 widget.
  • source, id
Firebase
theme_store_category_open🎨 Theme StoreMở 1 danh mục.
  • source, id
Firebase
theme_store_preview_on_device🎨 Theme StoreBấm xem thử trực tiếp trên máy (chưa áp dụng thật).
  • id
Firebase
theme_store_device_face🎨 Theme StoreỞ màn xem thử trên máy, chuyển xem màn khoá / màn chính.
  • mode: lock/home
Firebase
theme_store_apply_sheet🎨 Theme StoreMở bảng chọn áp dụng ở đâu (từ màn xem trước hoặc màn xem thử trên máy).
  • surface: preview/device
Firebase
theme_store_apply_target🎨 Theme StoreChọn áp dụng cho màn khoá / màn chính / cả hai.
  • target: lock/home/both
Firebase
theme_store_wallpaper_apply🎨 Theme StoreĐã áp dụng xong 1 hình nền.
  • target, source
Firebase
theme_store_theme_apply🎨 Theme StoreĐã áp dụng xong 1 step của theme trọn bộ (hình nền/icon/widget).
  • id
Firebase
theme_store_icon_pack_apply🎨 Theme StoreĐã áp dụng xong 1 bộ icon.
  • id
Firebase
theme_store_widget_add🎨 Theme StoreĐã thêm 1 widget từ Store vào màn hình chính.
  • id
Firebase
theme_store_wallpaper_save🎨 Theme StoreLưu hình nền về máy (không nhất thiết áp dụng).
  • id
Firebase
theme_store_item_favorite🎨 Theme StoreBấm tim yêu thích / bỏ yêu thích 1 sản phẩm.
  • kind, id
  • value: 1=thêm, 0=bỏ
Firebase
theme_store_wallpaper_share🎨 Theme StoreChia sẻ 1 hình nền ra ngoài app.
  • id
Firebase
theme_store_theme_share🎨 Theme StoreChia sẻ 1 theme.
  • id
Firebase
theme_store_icon_pack_share🎨 Theme StoreChia sẻ 1 bộ icon.
  • id
Firebase
theme_store_my_content_open🎨 Theme StoreMở mục "Của tôi" (đã tải/đã mua) ở tab Tôi.
  • kind
Firebase
theme_store_favorites_open🎨 Theme StoreMở mục Yêu thích.Không có tham sốFirebase
theme_store_me_menu🎨 Theme StoreBấm 1 mục trong menu tab Tôi.
  • action
Firebase
theme_store_premium_click🎨 Theme StoreBấm biểu tượng vương miện (mời mua Premium) trong Store.Không có tham sốFirebase
theme_store_notify_click🎨 Theme StoreBấm biểu tượng chuông thông báo trong Store.Không có tham sốFirebase
theme_store_apply_complete🎨 Theme StoreMàn "Áp dụng thành công" hiện ra — lúc này việc áp dụng đã CHẮC CHẮN xong, không phụ thuộc người dùng bấm gì tiếp.
  • kind
Firebase
theme_store_success_action🎨 Theme StoreBấm nút trên màn thành công đó (Về màn chính / Khám phá thêm).
  • action, kind
Firebase
coin_screen_view🪙 Ví xuMở màn Kho xu (My Coin).
  • source
Firebase
coin_earn_ad🪙 Ví xuXem reward ads xong và được cộng xu (tối đa 3 lần/ngày).
  • value: số xu
  • reward_no: lượt xem thứ 1/2/3 trong ngày
Firebase
coin_checkin_claim🪙 Ví xuNhận thưởng điểm danh hằng ngày.
  • value: ngày thứ mấy
Firebase
coin_earn_notification🪙 Ví xuĐược cộng xu vì đồng ý bật quyền thông báo.Không có tham sốFirebase
coin_spend_unlock🪙 Ví xuDùng xu để mở khoá 1 sản phẩm.
  • kind, id
  • value: giá bằng xu
Firebase
coin_out_of_coin🪙 Ví xuKhông đủ xu để mở khoá, hiện màn thiếu xu.
  • kind, id, value
Firebase
coin_pack_buy🪙 Ví xuMua thêm gói xu bằng tiền thật.
  • plan
Firebase
coin_ad_unlock_watch🪙 Ví xuBắt đầu xem reward ads để mở khoá miễn phí 1 sản phẩm.
  • kind, id
Firebase
coin_ad_unlock_granted🪙 Ví xuXem reward ads xong, sản phẩm đã được mở khoá thật.
  • kind, id
Firebase
chat_message_sent💬 Chat AIGửi 1 tin nhắn trong Chat AI.
  • model, has_image
Firebase
chat_regenerate💬 Chat AIBấm tạo lại câu trả lời.
  • model
Firebase
chat_reply_error💬 Chat AIChat AI trả lời lỗi.
  • code: mã lỗi
Firebase
chat_model_changed💬 Chat AIĐổi sang model AI khác (chỉ bắn khi thật sự đổi).
  • model
Firebase
chat_template_used💬 Chat AIDùng 1 mẫu câu hỏi dựng sẵn.
  • key: id mẫu
Firebase
chat_image_attached💬 Chat AIĐính kèm ảnh vào tin nhắn.
  • source: gallery/camera
  • count: số ảnh
Firebase
chat_new_conversation💬 Chat AIBắt đầu cuộc trò chuyện mới.Không có tham sốFirebase
chat_conversation_open💬 Chat AIMở lại 1 cuộc trò chuyện cũ.Không có tham sốFirebase
chat_out_of_credits💬 Chat AIHết lượt chat miễn phí, bị chặn gửi tiếp.Không có tham sốFirebase
chat_reward_watch💬 Chat AIBắt đầu xem reward ads để nhận thêm lượt chat.Không có tham sốFirebase
chat_reward_earned💬 Chat AIXem reward ads xong, được cộng thêm lượt chat.Không có tham sốFirebase
chat_paywall_view💬 Chat AIXem màn mời mua Premium/gói lượt chat trong Chat AI — mọi lối vào paywall đều qua đúng 1 event này.
  • tab, source: màn nào dẫn tới
Firebase
chat_buy_click💬 Chat AIBấm nút mua gói (thuê bao hoặc gói lượt chat) trong Chat AI.
  • kind: sub/credits
  • plan
Firebase
chat_history_cleared💬 Chat AIXoá lịch sử chat.Không có tham sốFirebase
chat_setting_changed💬 Chat AIĐổi 1 cài đặt trong Chat AI (giao diện / vuốt lên để gửi tin).
  • key: appearance/swipe_up
  • giá trị mới
Firebase
sub_paywall_view💎 Đăng ký PremiumXem màn mời mua Premium — mọi lối vào đều qua 1 event, phân biệt bằng source.
  • source: splash/settings/theme_store/chat_ai
Firebase
sub_price_loaded💎 Đăng ký PremiumGiá các gói đã tải xong và hiện lên màn mời mua.Không có tham sốFirebase
sub_plan_selected💎 Đăng ký PremiumChọn 1 gói (theo tháng/theo năm).
  • plan: month/year
Firebase
sub_checkout_start💎 Đăng ký PremiumBấm nút thanh toán, bắt đầu flow mua của Google Play.
  • source
Firebase
sub_purchase_success💎 Đăng ký PremiumMua Premium thành công.
  • source: màn mời mua ban đầu (rỗng nếu đến từ khôi phục)
Firebase
sub_purchase_failed💎 Đăng ký PremiumThanh toán thất bại (không phải do người dùng tự huỷ).Không có tham sốFirebase
sub_purchase_cancelled💎 Đăng ký PremiumNgười dùng tự huỷ giữa chừng ở màn thanh toán Google Play.Không có tham sốFirebase
sub_restore_start💎 Đăng ký PremiumBấm "Khôi phục giao dịch" (dành cho người đã mua trước đó, đổi máy/cài lại app).Không có tham sốFirebase
sub_restore_result💎 Đăng ký PremiumKết quả sau khi khôi phục giao dịch.
  • active: có tìm thấy giao dịch hợp lệ hay không
Firebase
sub_paywall_dismissed💎 Đăng ký PremiumĐóng màn mời mua mà không mua.Không có tham sốFirebase
af_purchase💎 Đăng ký PremiumBản AppsFlyer song song lúc mua Premium/gói xu thành công, kèm doanh thu thật.
  • af_revenue: doanh thu quy đổi sau khi Google Play trừ phí
  • af_content_id, af_currency
AppsFlyer
app_launch📱 Màn hình chính & tìm kiếmMở 1 app từ màn hình chính (bấm icon ở Dock/Home/Thư viện app).Không có tham sốFirebase
app_hidden📱 Màn hình chính & tìm kiếmẨn 1 app khỏi màn hình chính.Không có tham sốFirebase
app_unhidden📱 Màn hình chính & tìm kiếmBỏ ẩn 1 app.Không có tham sốFirebase
folder_opened📱 Màn hình chính & tìm kiếmMở 1 thư mục trên màn hình chính.Không có tham sốFirebase
widget_added🧩 WidgetThêm 1 widget vào màn hình chính.
  • kind: loại widget
  • source: bảng chọn/Theme Store/DailyOpen
Firebase
widget_removed🧩 WidgetGỡ 1 widget khỏi màn hình chính.
  • kind
Firebase
widget_resized🧩 WidgetĐổi kích thước 1 widget.
  • kind: kích thước dạng RxC
  • source: kéo tay/chọn size có sẵn
Firebase
widget_tap🧩 WidgetBấm vào widget để mở app đích của nó.
  • kind
Firebase
widget_focus🧩 WidgetGiữ tay lâu trên widget để mở bảng tuỳ chỉnh.
  • kind
Firebase
widget_sheet_open🧩 WidgetMở bảng chọn thêm widget.
  • source: menu giữ tay/trang DailyOpen
Firebase
widget_sheet_see_all🧩 WidgetBấm "Xem tất cả" trong bảng chọn widget.
  • kind: nhóm widget
Firebase
widget_get_more🧩 WidgetBấm "Lấy thêm widget" khi thư viện đang trống, chuyển sang tab Widget của Theme Store.Không có tham sốFirebase
edit_menu_action📱 Màn hình chính & tìm kiếmBấm 1 trong 3 dòng của menu chỉnh sửa màn hình chính (giữ tay vào nền).
  • action: widget/theme/wallpaper
Firebase
jiggle_enter📱 Màn hình chính & tìm kiếmVào chế độ rung icon để sắp xếp lại (giữ tay vào icon hoặc nền).Không có tham sốFirebase
spotlight_open📱 Màn hình chính & tìm kiếmMở tìm kiếm Spotlight (vuốt xuống ở màn chính).Không có tham sốFirebase
qr_scan_open📱 Màn hình chính & tìm kiếmMở quét mã QR.Không có tham sốFirebase
wallpaper_applied⚙️ Cài đặt & giao diệnÁp dụng xong 1 hình nền (từ màn chọn hình nền cơ bản, không phải Theme Store).
  • target
Firebase
settings_open⚙️ Cài đặt & giao diệnMở màn Cài đặt.Không có tham sốFirebase
setting_toggle⚙️ Cài đặt & giao diệnBật/tắt 1 công tắc trong Cài đặt (ẩn app, tự sắp xếp, hiện số thông báo…).
  • key: tên công tắc
  • value: bật/tắt
Firebase
theme_changed⚙️ Cài đặt & giao diệnĐổi chế độ sáng/tối.
  • chế độ mới
Firebase
theme_pack_changed⚙️ Cài đặt & giao diệnĐổi bộ hình nền theo gói theme.
  • bộ hình nền mới
Firebase
glass_mode_changed⚙️ Cài đặt & giao diệnĐổi mức hiệu ứng kính mờ (Tắt/Cân bằng/Đầy đủ).
  • mức mới
Firebase
language_changed⚙️ Cài đặt & giao diệnĐổi ngôn ngữ hiển thị.
  • lang
Firebase
app_icon_changed⚙️ Cài đặt & giao diệnĐổi icon riêng cho 1 app.Không có tham sốFirebase
app_name_changed⚙️ Cài đặt & giao diệnĐổi tên hiển thị riêng cho 1 app.Không có tham sốFirebase
cc_open🎚️ Control Center & Trung tâm thông báoMở Trung tâm điều khiển (Control Center).
  • surface: mở từ màn chính/mở trong app con
Firebase
notification_center_open🎚️ Control Center & Trung tâm thông báoMở Trung tâm thông báo.Không có tham sốFirebase
cc_tile_tap🎚️ Control Center & Trung tâm thông báoBấm 1 nút điều khiển trong Control Center (wifi, đèn pin, mở app…).
  • kind, surface
Firebase
cc_page_view🎚️ Control Center & Trung tâm thông báoLướt sang 1 trang trong Control Center.
  • kind: main/now_playing/connectivity
  • surface
Firebase
cc_edit_enter🎚️ Control Center & Trung tâm thông báoVào chế độ chỉnh sửa Control Center.
  • source: overlay/editor
Firebase
cc_add_sheet_open🎚️ Control Center & Trung tâm thông báoMở bảng thêm control mới.
  • source
Firebase
cc_control_added🎚️ Control Center & Trung tâm thông báoThêm 1 control vào Control Center.
  • kind
  • count: tổng số control sau khi thêm
Firebase
cc_control_removed🎚️ Control Center & Trung tâm thông báoGỡ 1 control khỏi Control Center.
  • kind, count
Firebase
cc_controls_reordered🎚️ Control Center & Trung tâm thông báoSắp xếp lại thứ tự các control.
  • count
Firebase
clock_tab_view⏰ Đồng hồChuyển tab trong app Clock (Thế giới/Báo thức/Bấm giờ/Đếm ngược).
  • tab
Firebase
clock_world_city_added⏰ Đồng hồThêm 1 thành phố vào tab Thế giới.
  • count: tổng số thành phố sau khi thêm
Firebase
clock_alarm_created⏰ Đồng hồLưu 1 báo thức — dùng chung cho cả tạo mới và sửa, phân biệt bằng action.
  • action: create/update
  • hour, repeat_days: số ngày lặp lại, enabled
Firebase
clock_alarm_toggled⏰ Đồng hồBật/tắt 1 báo thức bằng công tắc.
  • enabled
Firebase
clock_alarm_deleted⏰ Đồng hồXoá 1 báo thức.
  • count: số báo thức còn lại
Firebase
clock_alarm_fired⏰ Đồng hồBáo thức đã kêu (hệ thống tự bắn lúc chuông reo, không phải lúc đặt).Không có tham sốFirebase
clock_alarm_snooze⏰ Đồng hồBấm "Báo lại" trên thông báo báo thức đang kêu.Không có tham sốFirebase
clock_alarm_dismiss⏰ Đồng hồBấm "Tắt" trên thông báo báo thức đang kêu.Không có tham sốFirebase
clock_timer_dismiss⏰ Đồng hồBấm "Tắt" trên thông báo đếm ngược đang kêu.Không có tham sốFirebase
clock_stopwatch_start⏰ Đồng hồBấm bắt đầu bấm giờ.Không có tham sốFirebase
clock_timer_start⏰ Đồng hồBấm bắt đầu đếm ngược.Không có tham sốFirebase
clock_timer_fired⏰ Đồng hồĐếm ngược đã chạy hết giờ, chuông kêu.Không có tham sốFirebase
clock_timer_cancel⏰ Đồng hồHuỷ đếm ngược giữa chừng, trước khi hết giờ.
  • value: số giây còn lại lúc huỷ
Firebase
weather_city_added🌤️ Thời tiếtThêm 1 thành phố theo dõi thời tiết.Không có tham sốFirebase
weather_city_removed🌤️ Thời tiếtXoá 1 thành phố đang theo dõi.Không có tham sốFirebase
weather_refresh🌤️ Thời tiếtKéo làm mới dữ liệu thời tiết.Không có tham sốFirebase
weather_unit_changed🌤️ Thời tiếtĐổi đơn vị đo (°C/°F).
  • unit
Firebase
calc_equals🧮 Máy tínhBấm dấu "=" ra kết quả trong Calculator.Không có tham sốFirebase
gallery_album_created🖼️ Thư viện ảnhTạo 1 album mới trong Gallery.
  • count: số album sau khi tạo
Firebase
gallery_album_renamed🖼️ Thư viện ảnhĐổi tên 1 album.Không có tham sốFirebase
gallery_album_deleted🖼️ Thư viện ảnhXoá 1 album.
  • count
Firebase
gallery_add_to_album🖼️ Thư viện ảnhThêm ảnh/video vào 1 album.
  • count
Firebase
gallery_remove_from_album🖼️ Thư viện ảnhGỡ ảnh/video khỏi 1 album.
  • count
Firebase
gallery_photo_edit_save🖼️ Thư viện ảnhLưu ảnh sau khi chỉnh sửa (cắt/lọc màu…).Không có tham sốFirebase
gallery_video_trim_save🖼️ Thư viện ảnhLưu video sau khi cắt đoạn.
  • mode: fast/precise
Firebase
gallery_bg_removal🖼️ Thư viện ảnhDùng tính năng xoá phông nền ảnh.
  • enabled: xoá phông thành công hay không
Firebase
gallery_favorite_toggle🖼️ Thư viện ảnhĐánh dấu/bỏ đánh dấu yêu thích 1 hoặc nhiều ảnh.
  • count, enabled
Firebase
gallery_delete🖼️ Thư viện ảnhXoá ảnh/video (kể cả xoá tạm vào thùng rác lẫn xoá vĩnh viễn).
  • count
Firebase
gallery_restore🖼️ Thư viện ảnhKhôi phục ảnh/video từ thùng rác.
  • count
Firebase
gallery_share🖼️ Thư viện ảnhChia sẻ ảnh/video ra ngoài app.
  • count
Firebase
ob01_app_open🧭 Funnel mở app → HomeMở app lần đầu sau khi cài (chưa hoàn tất onboarding) — bắt đầu tính funnel.Không có tham sốFirebase
ob02_gdpr_start🧭 Funnel mở app → HomeBắt đầu chạy Consent UMP (GDPR).Không có tham sốFirebase
ob02_gdpr_done🧭 Funnel mở app → HomeConsent UMP trả kết quả (đồng ý / từ chối / lỗi).
  • ms: mất bao lâu
  • can_ads: sau consent có được phép request ads không
  • error_code: mã lỗi nếu có
Firebase
ob03_nt_splash_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob03_nt_splash_not_show🧭 Funnel mở app → HomeNhánh 2 — native ads màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob03_nt_splash_show🧭 Funnel mở app → HomeNative ads ở màn Splash show ra.
  • format
Firebase
ob03_nt_splash_click🧭 Funnel mở app → HomeBấm vào native ads đó.
  • format
Firebase
ob03_nt_splash_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm ads đó (đi vắng dưới 700ms không tính).
  • away_ms: đi vắng bao lâu
Firebase
ob04_aoa_splash_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí ads toàn màn (AOA/inter) ở màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob04_aoa_splash_not_show🧭 Funnel mở app → HomeNhánh 2 — ads toàn màn (AOA/inter) ở màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob04_aoa_splash_show🧭 Funnel mở app → HomeFull-screen ads (AOA hoặc inter ads) ở màn Splash show ra.
  • format: aoa/inter
Firebase
ob04_aoa_splash_click🧭 Funnel mở app → HomeBấm vào ads toàn màn đó.
  • format
Firebase
ob04_aoa_splash_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm.
  • away_ms
Firebase
ob05_splash_done🧭 Funnel mở app → HomeRời màn Splash để sang màn giới thiệu (chỉ lượt đầu).
  • reason: normal/timeout
  • dur_ms: tổng thời gian ở màn Splash
Firebase
ob06_intro_p1🧭 Funnel mở app → HomeXem trang giới thiệu 1. Mỗi trang chỉ tính 1 lần/lượt mở app, vuốt qua lại không bắn lại.Không có tham sốFirebase
ob06_intro_p2🧭 Funnel mở app → HomeXem trang giới thiệu 2.Không có tham sốFirebase
ob06_intro_p3🧭 Funnel mở app → HomeXem trang giới thiệu 3.Không có tham sốFirebase
ob06_intro_p4🧭 Funnel mở app → HomeXem trang giới thiệu 4.Không có tham sốFirebase
ob06_intro_p5🧭 Funnel mở app → HomeXem trang giới thiệu 5 (trang cuối).Không có tham sốFirebase
ob07_nt_intro_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads màn giới thiệu. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob07_nt_intro_not_show🧭 Funnel mở app → HomeNhánh 2 — native ads màn giới thiệu KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob07_nt_intro_show🧭 Funnel mở app → HomeNative ads ở màn giới thiệu show ra.
  • format
Firebase
ob07_nt_intro_click🧭 Funnel mở app → HomeBấm vào ads đó.
  • format
Firebase
ob07_nt_intro_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm.
  • away_ms
Firebase
ob08_intro_done🧭 Funnel mở app → HomeBấm nút ở trang giới thiệu cuối cùng.Không có tham sốFirebase
ob09_sub_show🧭 Funnel mở app → HomeMàn bán gói Premium (paywall) hiện ra ở lượt mở đầu.Không có tham sốFirebase
ob09_sub_click_showinter🧭 Funnel mở app → HomeBấm "dùng bản có ads" để đi tiếp — inter ads show ngay sau đó.Không có tham sốFirebase
ob09_sub_buy🧭 Funnel mở app → HomeMua gói ngay tại màn này.
  • plan: month/year
Firebase
ob09_sub_skip🧭 Funnel mở app → HomeBỏ qua màn bán gói vì user đã Premium sẵn (entitlement khôi phục).
  • reason: premium
Firebase
ob10_int_sub_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí inter ads sau màn bán gói. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob10_int_sub_not_show🧭 Funnel mở app → HomeNhánh 2 — inter ads sau màn bán gói KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob10_int_sub_show🧭 Funnel mở app → HomeInter ads show sau khi bấm "dùng bản có ads".
  • format
Firebase
ob10_int_sub_click🧭 Funnel mở app → HomeBấm vào ads đó.
  • format
Firebase
ob10_int_sub_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm.
  • away_ms
Firebase
ob11_lang_show🧭 Funnel mở app → HomeVào màn chọn ngôn ngữ.Không có tham sốFirebase
ob11_lang_select🧭 Funnel mở app → HomeChọn 1 ngôn ngữ — ngoại lệ DUY NHẤT được bắn lặp, đếm số lần đổi ý trước khi bấm Continue.
  • lang
Firebase
ob12_nt_lang1_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads #1 màn ngôn ngữ. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob12_nt_lang1_not_show🧭 Funnel mở app → HomeNhánh 2 — native ads #1 màn ngôn ngữ KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob12_nt_lang1_show🧭 Funnel mở app → HomeNative ads #1 ở màn ngôn ngữ show ra.
  • format
Firebase
ob12_nt_lang1_click🧭 Funnel mở app → HomeBấm vào ads #1.
  • format
Firebase
ob12_nt_lang1_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm ads #1.
  • away_ms
Firebase
ob13_nt_lang2_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads #2 màn ngôn ngữ. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob13_nt_lang2_not_show🧭 Funnel mở app → HomeNhánh 2 — native ads #2 màn ngôn ngữ KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob13_nt_lang2_show🧭 Funnel mở app → HomeNative ads #2 (thay vị trí #1 sau khi chọn ngôn ngữ) show ra.
  • format
Firebase
ob13_nt_lang2_click🧭 Funnel mở app → HomeBấm vào ads #2.
  • format
Firebase
ob13_nt_lang2_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm ads #2.
  • away_ms
Firebase
ob14_lang_done🧭 Funnel mở app → HomeBấm Continue để chốt ngôn ngữ — bắn SAU 2 event _end của ads #1/#2 nên mang số 14.
  • lang
Firebase
ob15_wall_show🧭 Funnel mở app → HomeVào màn chọn hình nền.Không có tham sốFirebase
ob15_wall_done🧭 Funnel mở app → HomeRời màn hình nền.
  • action: set (đã chọn) / skip (bỏ qua)
Firebase
ob16_hello_show🧭 Funnel mở app → HomeVào màn Hello (đang nạp icon/dữ liệu app).Không có tham sốFirebase
ob16_hello_ready🧭 Funnel mở app → HomeNút "Let's Start" hiện ra — nạp xong.
  • ms: thời gian chờ nạp
Firebase
ob17_home🧭 Funnel mở app → HomeĐÍCH lượt đầu — vào được Home, hoàn tất onboarding.
  • dur_ms: tổng thời gian từ lúc mở app
  • ad_clicks: đã bấm ads mấy lần trên đường đi
  • had_ad: có thấy ads nào không
Firebase
rt01_app_open🧭 Funnel mở app → HomeMở app (đã hoàn tất onboarding từ trước) — bắt đầu tính funnel lượt sau.Không có tham sốFirebase
rt02_gdpr_start🧭 Funnel mở app → HomeBắt đầu chạy Consent UMP (giống ob02_gdpr_start, tên riêng cho lượt sau).Không có tham sốFirebase
rt02_gdpr_done🧭 Funnel mở app → HomeConsent UMP trả kết quả.
  • ms, can_ads, error_code
Firebase
rt03_nt_splash_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
rt03_nt_splash_not_show🧭 Funnel mở app → HomeNhánh 2 — native ads màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
rt03_nt_splash_show🧭 Funnel mở app → HomeNative ads ở màn Splash show ra.
  • format
Firebase
rt03_nt_splash_click🧭 Funnel mở app → HomeBấm vào ads đó.
  • format
Firebase
rt03_nt_splash_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm.
  • away_ms
Firebase
rt04_aoa_splash_end🧭 Funnel mở app → HomeSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí ads toàn màn (AOA/inter) ở màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
rt04_aoa_splash_not_show🧭 Funnel mở app → HomeNhánh 2 — ads toàn màn (AOA/inter) ở màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
rt04_aoa_splash_show🧭 Funnel mở app → HomeFull-screen ads ở màn Splash show ra.
  • format: aoa/inter
Firebase
rt04_aoa_splash_click🧭 Funnel mở app → HomeBấm vào ads đó.
  • format
Firebase
rt04_aoa_splash_back🧭 Funnel mở app → HomeQuay lại app sau khi bấm.
  • away_ms
Firebase
rt05_home🧭 Funnel mở app → HomeĐÍCH lượt sau — vào được Home.
  • dur_ms, ad_clicks, had_ad
Firebase
Nguồn: analytics/AnalyticsEvents.kt, analytics/AnalyticsScreens.kt, analytics/Analytics.kt, analytics/AppsflyerTracker.kt, analytics/FlowFunnel.kt, ui/LauncherViewModel.kt, billing/BillingManager.kt, và các ViewModel/loader của từng app con (Clock/Weather/Gallery/ChatAI/ThemeStore).

5 Event theo tính năng

Cùng dữ liệu như bảng tổng nhưng tách sẵn theo từng khu vực của app — dùng khi chỉ cần rà một tính năng. Ô tìm bên dưới lọc tất cả các bảng cùng lúc; nhóm nào không còn kết quả sẽ tự ẩn.

🌐 Chung toàn app 1 event

Bắn ở mọi màn, dùng làm nền cho mọi báo cáo khác.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
screen_viewVào một màn hình mới — đổi màn ở launcher, đổi tab Cài đặt, hoặc đổi màn trong bất kỳ app con nào.
  • screen_name: tên màn, vd home, settings_general, clock_alarm, gallery_library
Firebase

🚀 Mở app & thông báo kéo về 6 event

Người dùng vào app bằng đường nào, thông báo kéo về có hiệu quả không.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
onboarding_completeHoàn tất step cuối màn giới thiệu lần đầu mở app.Không có tham sốFirebase
mini_app_openMở một app con (kể cả quay lại app con đang chạy nền khi bấm icon lần nữa).
  • app: weather/calculator/clock/gallery/chat_ai/wallpaper/control_center/settings
Firebase
notify_scheduledHệ thống lên lịch một thông báo kéo người dùng quay lại app (trước khi thông báo thật sự hiện ra).
  • track_id: mã chiến dịch thông báo
Firebase
notify_shownThông báo kéo người dùng quay lại đã thật sự hiện trên máy.
  • track_id
Firebase
notify_clickedNgười dùng bấm vào thông báo đó để mở lại app.
  • track_id
  • day_click: ngày bấm (có thể khác ngày thông báo hiện)
  • hour: giờ bấm
Firebase
notify_permission_deniedNgười dùng từ chối quyền gửi thông báo (Android 13+).Không có tham sốFirebase

🏠 Đặt làm màn hình chính 10 event

Chỉ số quan trọng nhất của launcher — không đặt mặc định thì người dùng gần như không quay lại.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
default_launcher_promptMàn mời đặt app làm mặc định xuất hiện (mỗi lần quay lại Home mà chưa đặt mặc định) — chỉ là lượt xem.Không có tham sốFirebase
default_launcher_setBấm nút "Đặt làm mặc định" — mới là Ý ĐỊNH, hộp thoại hệ thống sau đó còn có thể bị huỷ.
  • source: prompt/settings
Firebase
default_launcher_confirmedApp THẬT SỰ đã trở thành mặc định (xác nhận lại lúc mở app) — chỉ bắn đúng 1 lần/máy. Dùng số này để tính tỉ lệ đặt-mặc-định thành công thật.
  • source
  • days_since_install: số ngày kể từ lúc cài app
Firebase
set_default_launcherBắn mỗi lần app chuyển sang trạng thái mặc định — không giới hạn số lần, kể cả đổi đi đổi lại.
  • count_set: tổng số lần đã đặt mặc định
Firebase
default_launcher_set_dayGiống trên nhưng chỉ tính tối đa 1 lần mỗi ngày cài đặt khác nhau — dùng để vẽ biểu đồ theo ngày.
  • source, days_since_install
Firebase
set_launcher_trueMở màn mời đặt mặc định (hoặc bấm nút ở Cài đặt) và kết quả là đã thành công — chỉ 1 lần/máy.
  • source
Firebase
set_launcher_falseNhư trên nhưng kết quả là chưa thành công.
  • source
Firebase
launcher_change_to_defaultLần ĐẦU TIÊN máy chuyển từ "chưa mặc định" sang "mặc định" — chỉ 1 lần/máy.Không có tham sốFirebase
launcher_change_to_non_defaultLần đầu tiên máy chuyển ngược lại (đang mặc định bị đổi sang app khác) — chỉ 1 lần/máy.Không có tham sốFirebase
af_default_launcherBản AppsFlyer song song với việc trở thành mặc định — bắn MỌI lần chuyển (không giới hạn 1 lần) để nuôi thuật toán chiến dịch.
  • source
AppsFlyer

📱 Màn hình chính & tìm kiếm 8 event

Hành vi trên lưới icon: mở app, ẩn app, thư mục, sắp xếp, tìm kiếm.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
app_launchMở 1 app từ màn hình chính (bấm icon ở Dock/Home/Thư viện app).Không có tham sốFirebase
app_hiddenẨn 1 app khỏi màn hình chính.Không có tham sốFirebase
app_unhiddenBỏ ẩn 1 app.Không có tham sốFirebase
folder_openedMở 1 thư mục trên màn hình chính.Không có tham sốFirebase
edit_menu_actionBấm 1 trong 3 dòng của menu chỉnh sửa màn hình chính (giữ tay vào nền).
  • action: widget/theme/wallpaper
Firebase
jiggle_enterVào chế độ rung icon để sắp xếp lại (giữ tay vào icon hoặc nền).Không có tham sốFirebase
spotlight_openMở tìm kiếm Spotlight (vuốt xuống ở màn chính).Không có tham sốFirebase
qr_scan_openMở quét mã QR.Không có tham sốFirebase

🧩 Widget 8 event

Thêm / bỏ / đổi cỡ / bấm vào widget.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
widget_addedThêm 1 widget vào màn hình chính.
  • kind: loại widget
  • source: bảng chọn/Theme Store/DailyOpen
Firebase
widget_removedGỡ 1 widget khỏi màn hình chính.
  • kind
Firebase
widget_resizedĐổi kích thước 1 widget.
  • kind: kích thước dạng RxC
  • source: kéo tay/chọn size có sẵn
Firebase
widget_tapBấm vào widget để mở app đích của nó.
  • kind
Firebase
widget_focusGiữ tay lâu trên widget để mở bảng tuỳ chỉnh.
  • kind
Firebase
widget_sheet_openMở bảng chọn thêm widget.
  • source: menu giữ tay/trang DailyOpen
Firebase
widget_sheet_see_allBấm "Xem tất cả" trong bảng chọn widget.
  • kind: nhóm widget
Firebase
widget_get_moreBấm "Lấy thêm widget" khi thư viện đang trống, chuyển sang tab Widget của Theme Store.Không có tham sốFirebase

🎚️ Control Center & Trung tâm thông báo 9 event

Mở bằng cử chỉ, bấm tile, tuỳ biến danh sách tile.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
cc_openMở Trung tâm điều khiển (Control Center).
  • surface: mở từ màn chính/mở trong app con
Firebase
notification_center_openMở Trung tâm thông báo.Không có tham sốFirebase
cc_tile_tapBấm 1 nút điều khiển trong Control Center (wifi, đèn pin, mở app…).
  • kind, surface
Firebase
cc_page_viewLướt sang 1 trang trong Control Center.
  • kind: main/now_playing/connectivity
  • surface
Firebase
cc_edit_enterVào chế độ chỉnh sửa Control Center.
  • source: overlay/editor
Firebase
cc_add_sheet_openMở bảng thêm control mới.
  • source
Firebase
cc_control_addedThêm 1 control vào Control Center.
  • kind
  • count: tổng số control sau khi thêm
Firebase
cc_control_removedGỡ 1 control khỏi Control Center.
  • kind, count
Firebase
cc_controls_reorderedSắp xếp lại thứ tự các control.
  • count
Firebase

⚙️ Cài đặt & giao diện 9 event

Người dùng đổi những gì trong Cài đặt.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
wallpaper_appliedÁp dụng xong 1 hình nền (từ màn chọn hình nền cơ bản, không phải Theme Store).
  • target
Firebase
settings_openMở màn Cài đặt.Không có tham sốFirebase
setting_toggleBật/tắt 1 công tắc trong Cài đặt (ẩn app, tự sắp xếp, hiện số thông báo…).
  • key: tên công tắc
  • value: bật/tắt
Firebase
theme_changedĐổi chế độ sáng/tối.
  • chế độ mới
Firebase
theme_pack_changedĐổi bộ hình nền theo gói theme.
  • bộ hình nền mới
Firebase
glass_mode_changedĐổi mức hiệu ứng kính mờ (Tắt/Cân bằng/Đầy đủ).
  • mức mới
Firebase
language_changedĐổi ngôn ngữ hiển thị.
  • lang
Firebase
app_icon_changedĐổi icon riêng cho 1 app.Không có tham sốFirebase
app_name_changedĐổi tên hiển thị riêng cho 1 app.Không có tham sốFirebase

🎨 Theme Store 31 event

Funnel của kho: xem → mở chi tiết → xem thử → áp dụng. Dùng để biết tắc ở step nào.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
theme_store_openVào màn Theme Store.
  • source: tab mở đầu
Firebase
theme_store_tab_viewChuyển tab dưới cùng của Store (Wallpaper/Theme/Icon/Widget/…).
  • tab
Firebase
theme_store_backBấm nút quay lại trong Store.
  • source
Firebase
theme_store_set_theme_stepXem từng step của flow "đặt theme trọn bộ" (chọn hình nền → icon → widget).
  • value: step 1/2/3
Firebase
theme_store_item_impressionMột thẻ sản phẩm (theme/wallpaper/icon pack/widget) xuất hiện trên màn hình lần đầu trong phiên đó.
  • kind, id
Firebase
theme_store_see_allBấm "Xem tất cả" ở một mục (nổi bật/bộ icon/danh mục).
  • kind
Firebase
theme_store_wallpaper_openMở xem chi tiết 1 hình nền.
  • source, id
Firebase
theme_store_theme_openMở xem chi tiết 1 theme trọn bộ.
  • source, id
Firebase
theme_store_icon_pack_openMở xem chi tiết 1 bộ icon.
  • source, id
Firebase
theme_store_widget_openMở xem chi tiết 1 widget.
  • source, id
Firebase
theme_store_category_openMở 1 danh mục.
  • source, id
Firebase
theme_store_preview_on_deviceBấm xem thử trực tiếp trên máy (chưa áp dụng thật).
  • id
Firebase
theme_store_device_faceỞ màn xem thử trên máy, chuyển xem màn khoá / màn chính.
  • mode: lock/home
Firebase
theme_store_apply_sheetMở bảng chọn áp dụng ở đâu (từ màn xem trước hoặc màn xem thử trên máy).
  • surface: preview/device
Firebase
theme_store_apply_targetChọn áp dụng cho màn khoá / màn chính / cả hai.
  • target: lock/home/both
Firebase
theme_store_wallpaper_applyĐã áp dụng xong 1 hình nền.
  • target, source
Firebase
theme_store_theme_applyĐã áp dụng xong 1 step của theme trọn bộ (hình nền/icon/widget).
  • id
Firebase
theme_store_icon_pack_applyĐã áp dụng xong 1 bộ icon.
  • id
Firebase
theme_store_widget_addĐã thêm 1 widget từ Store vào màn hình chính.
  • id
Firebase
theme_store_wallpaper_saveLưu hình nền về máy (không nhất thiết áp dụng).
  • id
Firebase
theme_store_item_favoriteBấm tim yêu thích / bỏ yêu thích 1 sản phẩm.
  • kind, id
  • value: 1=thêm, 0=bỏ
Firebase
theme_store_wallpaper_shareChia sẻ 1 hình nền ra ngoài app.
  • id
Firebase
theme_store_theme_shareChia sẻ 1 theme.
  • id
Firebase
theme_store_icon_pack_shareChia sẻ 1 bộ icon.
  • id
Firebase
theme_store_my_content_openMở mục "Của tôi" (đã tải/đã mua) ở tab Tôi.
  • kind
Firebase
theme_store_favorites_openMở mục Yêu thích.Không có tham sốFirebase
theme_store_me_menuBấm 1 mục trong menu tab Tôi.
  • action
Firebase
theme_store_premium_clickBấm biểu tượng vương miện (mời mua Premium) trong Store.Không có tham sốFirebase
theme_store_notify_clickBấm biểu tượng chuông thông báo trong Store.Không có tham sốFirebase
theme_store_apply_completeMàn "Áp dụng thành công" hiện ra — lúc này việc áp dụng đã CHẮC CHẮN xong, không phụ thuộc người dùng bấm gì tiếp.
  • kind
Firebase
theme_store_success_actionBấm nút trên màn thành công đó (Về màn chính / Khám phá thêm).
  • action, kind
Firebase

🪙 Ví xu 9 event

Xu vào từ đâu (xem reward ads, điểm danh, mua) và tiêu vào gì.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
coin_screen_viewMở màn Kho xu (My Coin).
  • source
Firebase
coin_earn_adXem reward ads xong và được cộng xu (tối đa 3 lần/ngày).
  • value: số xu
  • reward_no: lượt xem thứ 1/2/3 trong ngày
Firebase
coin_checkin_claimNhận thưởng điểm danh hằng ngày.
  • value: ngày thứ mấy
Firebase
coin_earn_notificationĐược cộng xu vì đồng ý bật quyền thông báo.Không có tham sốFirebase
coin_spend_unlockDùng xu để mở khoá 1 sản phẩm.
  • kind, id
  • value: giá bằng xu
Firebase
coin_out_of_coinKhông đủ xu để mở khoá, hiện màn thiếu xu.
  • kind, id, value
Firebase
coin_pack_buyMua thêm gói xu bằng tiền thật.
  • plan
Firebase
coin_ad_unlock_watchBắt đầu xem reward ads để mở khoá miễn phí 1 sản phẩm.
  • kind, id
Firebase
coin_ad_unlock_grantedXem reward ads xong, sản phẩm đã được mở khoá thật.
  • kind, id
Firebase

💬 Chat AI 15 event

Dùng chat, hết lượt, xem reward ads lấy lượt, mua gói.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
chat_message_sentGửi 1 tin nhắn trong Chat AI.
  • model, has_image
Firebase
chat_regenerateBấm tạo lại câu trả lời.
  • model
Firebase
chat_reply_errorChat AI trả lời lỗi.
  • code: mã lỗi
Firebase
chat_model_changedĐổi sang model AI khác (chỉ bắn khi thật sự đổi).
  • model
Firebase
chat_template_usedDùng 1 mẫu câu hỏi dựng sẵn.
  • key: id mẫu
Firebase
chat_image_attachedĐính kèm ảnh vào tin nhắn.
  • source: gallery/camera
  • count: số ảnh
Firebase
chat_new_conversationBắt đầu cuộc trò chuyện mới.Không có tham sốFirebase
chat_conversation_openMở lại 1 cuộc trò chuyện cũ.Không có tham sốFirebase
chat_out_of_creditsHết lượt chat miễn phí, bị chặn gửi tiếp.Không có tham sốFirebase
chat_reward_watchBắt đầu xem reward ads để nhận thêm lượt chat.Không có tham sốFirebase
chat_reward_earnedXem reward ads xong, được cộng thêm lượt chat.Không có tham sốFirebase
chat_paywall_viewXem màn mời mua Premium/gói lượt chat trong Chat AI — mọi lối vào paywall đều qua đúng 1 event này.
  • tab, source: màn nào dẫn tới
Firebase
chat_buy_clickBấm nút mua gói (thuê bao hoặc gói lượt chat) trong Chat AI.
  • kind: sub/credits
  • plan
Firebase
chat_history_clearedXoá lịch sử chat.Không có tham sốFirebase
chat_setting_changedĐổi 1 cài đặt trong Chat AI (giao diện / vuốt lên để gửi tin).
  • key: appearance/swipe_up
  • giá trị mới
Firebase

⏰ Đồng hồ 13 event

Báo thức, hẹn giờ, bấm giờ, giờ thế giới.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
clock_tab_viewChuyển tab trong app Clock (Thế giới/Báo thức/Bấm giờ/Đếm ngược).
  • tab
Firebase
clock_world_city_addedThêm 1 thành phố vào tab Thế giới.
  • count: tổng số thành phố sau khi thêm
Firebase
clock_alarm_createdLưu 1 báo thức — dùng chung cho cả tạo mới và sửa, phân biệt bằng action.
  • action: create/update
  • hour, repeat_days: số ngày lặp lại, enabled
Firebase
clock_alarm_toggledBật/tắt 1 báo thức bằng công tắc.
  • enabled
Firebase
clock_alarm_deletedXoá 1 báo thức.
  • count: số báo thức còn lại
Firebase
clock_alarm_firedBáo thức đã kêu (hệ thống tự bắn lúc chuông reo, không phải lúc đặt).Không có tham sốFirebase
clock_alarm_snoozeBấm "Báo lại" trên thông báo báo thức đang kêu.Không có tham sốFirebase
clock_alarm_dismissBấm "Tắt" trên thông báo báo thức đang kêu.Không có tham sốFirebase
clock_timer_dismissBấm "Tắt" trên thông báo đếm ngược đang kêu.Không có tham sốFirebase
clock_stopwatch_startBấm bắt đầu bấm giờ.Không có tham sốFirebase
clock_timer_startBấm bắt đầu đếm ngược.Không có tham sốFirebase
clock_timer_firedĐếm ngược đã chạy hết giờ, chuông kêu.Không có tham sốFirebase
clock_timer_cancelHuỷ đếm ngược giữa chừng, trước khi hết giờ.
  • value: số giây còn lại lúc huỷ
Firebase

🌤️ Thời tiết 4 event

Thêm / bỏ thành phố, làm mới, đổi đơn vị.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
weather_city_addedThêm 1 thành phố theo dõi thời tiết.Không có tham sốFirebase
weather_city_removedXoá 1 thành phố đang theo dõi.Không có tham sốFirebase
weather_refreshKéo làm mới dữ liệu thời tiết.Không có tham sốFirebase
weather_unit_changedĐổi đơn vị đo (°C/°F).
  • unit
Firebase

🧮 Máy tính 1 event

Chỉ đo số lần bấm ra kết quả — đủ để biết app có được dùng hay không.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
calc_equalsBấm dấu "=" ra kết quả trong Calculator.Không có tham sốFirebase

Album, sửa ảnh, cắt video, xoá / khôi phục, chia sẻ.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
gallery_album_createdTạo 1 album mới trong Gallery.
  • count: số album sau khi tạo
Firebase
gallery_album_renamedĐổi tên 1 album.Không có tham sốFirebase
gallery_album_deletedXoá 1 album.
  • count
Firebase
gallery_add_to_albumThêm ảnh/video vào 1 album.
  • count
Firebase
gallery_remove_from_albumGỡ ảnh/video khỏi 1 album.
  • count
Firebase
gallery_photo_edit_saveLưu ảnh sau khi chỉnh sửa (cắt/lọc màu…).Không có tham sốFirebase
gallery_video_trim_saveLưu video sau khi cắt đoạn.
  • mode: fast/precise
Firebase
gallery_bg_removalDùng tính năng xoá phông nền ảnh.
  • enabled: xoá phông thành công hay không
Firebase
gallery_favorite_toggleĐánh dấu/bỏ đánh dấu yêu thích 1 hoặc nhiều ảnh.
  • count, enabled
Firebase
gallery_deleteXoá ảnh/video (kể cả xoá tạm vào thùng rác lẫn xoá vĩnh viễn).
  • count
Firebase
gallery_restoreKhôi phục ảnh/video từ thùng rác.
  • count
Firebase
gallery_shareChia sẻ ảnh/video ra ngoài app.
  • count
Firebase

📺 Ads 29 event

Đọc theo funnel: request → load → show → click. Cách đọc chi tiết ở mục 3.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
ad_requestApp bắt đầu request một ad — step đầu funnel.
  • format: native/inter/aoa/reward
  • placement: vị trí hiện ad (vd inter_reward_fallback = inter ads thay cho reward ads no-fill)
Firebase
ad_loadedAd load xong, sẵn sàng show.
  • format, placement
  • load_ms: thời gian load (mili-giây)
Firebase
ad_load_failedLoad ad thất bại (fail / no-fill).
  • format, placement
  • error_code: mã lỗi
Firebase
ad_dropped mới 06/08Ad đã load xong (đã tính vào matchrate) nhưng không kịp show — khác ad_load_failed (chưa từng có ad). Chỉ ở inter adsAOA.
  • format, placement
  • reason: timeout / lost_race / activity_dead / show_failed_<mã lỗi>
Firebase
ad_displayedFull-screen ads hoặc native ads thật sự show cho người dùng thấy. Đếm 1 lần / ad — ad mượn từ cache đem show lại không bắn thêm.
  • format, placement
  • is_default: lúc đó app có đang là màn hình chính mặc định không
Firebase
native_showBắn kèm ad_displayed khi format=native — tách riêng để đếm lượt show native ads độc lập.
  • placement
Firebase
inter_showNhư trên, cho inter ads.
  • placement
Firebase
reward_showNhư trên, cho reward ads.
  • placement
Firebase
reward_complete mới 06/08Người dùng xem hết reward ads THẬT và được trả thưởng — khác reward_show/ad_displayed (bắn lúc ad vừa hiện, chưa chắc xem hết). Không bắn khi lượt reward bị thay bằng inter ads fallback — nhánh đó chỉ trả thưởng qua callback trong app, chưa nối vào event này.
  • placement
Firebase
ad_clickedNgười dùng bấm vào nội dung ad.
  • format, placement
Firebase
ad_dismissedNgười dùng đóng ad (không bấm vào nội dung).
  • format, placement
Firebase
ad_cappedĐã chạm capping (giãn cách) ở vị trí này — ad bị chặn, không request/show.
  • placement
Firebase
ad_skipped_premiumBỏ qua ad vì người dùng đã mua Premium.
  • placement
Firebase
ad_impressionAd được Google tính tiền thật — dùng để cộng doanh thu ads.
  • nguồn ads (ad network), định dạng, tên ad unit
  • value + currency: số tiền, đơn vị tiền
Firebase
open_store_button_showBiến thể "nút Mở Store" của native full ads — nút hiện ra sau khi đếm ngược xong.Không có tham sốFirebase
open_store_button_clickNgười dùng bấm nút đó (đồng thời tính thêm 1 lượt ad_clicked của native ads).Không có tham sốFirebase
af_inters_call_showBắt đầu 1 lượt gọi show inter ads (trước khi biết có show được không).Không có tham sốAppsFlyer
af_inters_passed_capping_timeĐã qua được capping của inter ads.Không có tham sốAppsFlyer
af_inters_availableInter ads đã load xong, sẵn sàng.Không có tham sốAppsFlyer
af_inters_displayedInter ads đã show.Không có tham sốAppsFlyer
af_inters_load_failLoad inter ads thất bại.Không có tham sốAppsFlyer
af_rewarded_call_showBắt đầu 1 lượt gọi show reward ads.Không có tham sốAppsFlyer
af_rewarded_availableReward ads đã load xong.Không có tham sốAppsFlyer
af_rewarded_displayedReward ads đã show.Không có tham sốAppsFlyer
af_rewarded_load_failLoad reward ads thất bại.Không có tham sốAppsFlyer
af_rewarded_completedNgười dùng xem hết reward ads, đủ điều kiện nhận thưởng.Không có tham sốAppsFlyer
af_native_requestBắt đầu request native ads (ô ads lồng trong nội dung).Không có tham sốAppsFlyer
af_native_matched_requestNative ads load xong, có ad để show (fill).Không có tham sốAppsFlyer
af_native_displayedNative ads thật sự show trên màn hình.Không có tham sốAppsFlyer

💎 Đăng ký Premium 11 event

Funnel mua gói: xem màn bán → chọn gói → thanh toán → kết quả.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
sub_paywall_viewXem màn mời mua Premium — mọi lối vào đều qua 1 event, phân biệt bằng source.
  • source: splash/settings/theme_store/chat_ai
Firebase
sub_price_loadedGiá các gói đã tải xong và hiện lên màn mời mua.Không có tham sốFirebase
sub_plan_selectedChọn 1 gói (theo tháng/theo năm).
  • plan: month/year
Firebase
sub_checkout_startBấm nút thanh toán, bắt đầu flow mua của Google Play.
  • source
Firebase
sub_purchase_successMua Premium thành công.
  • source: màn mời mua ban đầu (rỗng nếu đến từ khôi phục)
Firebase
sub_purchase_failedThanh toán thất bại (không phải do người dùng tự huỷ).Không có tham sốFirebase
sub_purchase_cancelledNgười dùng tự huỷ giữa chừng ở màn thanh toán Google Play.Không có tham sốFirebase
sub_restore_startBấm "Khôi phục giao dịch" (dành cho người đã mua trước đó, đổi máy/cài lại app).Không có tham sốFirebase
sub_restore_resultKết quả sau khi khôi phục giao dịch.
  • active: có tìm thấy giao dịch hợp lệ hay không
Firebase
sub_paywall_dismissedĐóng màn mời mua mà không mua.Không có tham sốFirebase
af_purchaseBản AppsFlyer song song lúc mua Premium/gói xu thành công, kèm doanh thu thật.
  • af_revenue: doanh thu quy đổi sau khi Google Play trừ phí
  • af_content_id, af_currency
AppsFlyer

🧭 Funnel mở app → Home 50 event

Bắn bởi FlowFunnel, chạy song song với nhóm 📺 Ads (không đụng ad_*). Tên đánh số theo step (ob01…ob16 = lượt cài xong mở lần đầu, rt01…rt05 = các lượt mở sau) để Funnel Exploration kéo-thả đúng thứ tự. Cách dựng report + đọc drop từng step → xem trang Funnel riêng, ở đây chỉ catalog tên event.

Tên event Bắn khi nào Kèm thông tin gì Gửi lên
ob01_app_openMở app lần đầu sau khi cài (chưa hoàn tất onboarding) — bắt đầu tính funnel.Không có tham sốFirebase
ob02_gdpr_startBắt đầu chạy Consent UMP (GDPR).Không có tham sốFirebase
ob02_gdpr_doneConsent UMP trả kết quả (đồng ý / từ chối / lỗi).
  • ms: mất bao lâu
  • can_ads: sau consent có được phép request ads không
  • error_code: mã lỗi nếu có
Firebase
ob03_nt_splash_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob03_nt_splash_not_showNhánh 2 — native ads màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob03_nt_splash_showNative ads ở màn Splash show ra.
  • format
Firebase
ob03_nt_splash_clickBấm vào native ads đó.
  • format
Firebase
ob03_nt_splash_backQuay lại app sau khi bấm ads đó (đi vắng dưới 700ms không tính).
  • away_ms: đi vắng bao lâu
Firebase
ob04_aoa_splash_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí ads toàn màn (AOA/inter) ở màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob04_aoa_splash_not_showNhánh 2 — ads toàn màn (AOA/inter) ở màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob04_aoa_splash_showFull-screen ads (AOA hoặc inter ads) ở màn Splash show ra.
  • format: aoa/inter
Firebase
ob04_aoa_splash_clickBấm vào ads toàn màn đó.
  • format
Firebase
ob04_aoa_splash_backQuay lại app sau khi bấm.
  • away_ms
Firebase
ob05_splash_doneRời màn Splash để sang màn giới thiệu (chỉ lượt đầu).
  • reason: normal/timeout
  • dur_ms: tổng thời gian ở màn Splash
Firebase
ob06_intro_p1Xem trang giới thiệu 1. Mỗi trang chỉ tính 1 lần/lượt mở app, vuốt qua lại không bắn lại.Không có tham sốFirebase
ob06_intro_p2Xem trang giới thiệu 2.Không có tham sốFirebase
ob06_intro_p3Xem trang giới thiệu 3.Không có tham sốFirebase
ob06_intro_p4Xem trang giới thiệu 4.Không có tham sốFirebase
ob06_intro_p5Xem trang giới thiệu 5 (trang cuối).Không có tham sốFirebase
ob07_nt_intro_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads màn giới thiệu. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob07_nt_intro_not_showNhánh 2 — native ads màn giới thiệu KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob07_nt_intro_showNative ads ở màn giới thiệu show ra.
  • format
Firebase
ob07_nt_intro_clickBấm vào ads đó.
  • format
Firebase
ob07_nt_intro_backQuay lại app sau khi bấm.
  • away_ms
Firebase
ob08_intro_doneBấm nút ở trang giới thiệu cuối cùng.Không có tham sốFirebase
ob09_sub_showMàn bán gói Premium (paywall) hiện ra ở lượt mở đầu.Không có tham sốFirebase
ob09_sub_click_showinterBấm "dùng bản có ads" để đi tiếp — inter ads show ngay sau đó.Không có tham sốFirebase
ob09_sub_buyMua gói ngay tại màn này.
  • plan: month/year
Firebase
ob09_sub_skipBỏ qua màn bán gói vì user đã Premium sẵn (entitlement khôi phục).
  • reason: premium
Firebase
ob10_int_sub_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí inter ads sau màn bán gói. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob10_int_sub_not_showNhánh 2 — inter ads sau màn bán gói KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob10_int_sub_showInter ads show sau khi bấm "dùng bản có ads".
  • format
Firebase
ob10_int_sub_clickBấm vào ads đó.
  • format
Firebase
ob10_int_sub_backQuay lại app sau khi bấm.
  • away_ms
Firebase
ob11_lang_showVào màn chọn ngôn ngữ.Không có tham sốFirebase
ob11_lang_selectChọn 1 ngôn ngữ — ngoại lệ DUY NHẤT được bắn lặp, đếm số lần đổi ý trước khi bấm Continue.
  • lang
Firebase
ob12_nt_lang1_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads #1 màn ngôn ngữ. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob12_nt_lang1_not_showNhánh 2 — native ads #1 màn ngôn ngữ KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob12_nt_lang1_showNative ads #1 ở màn ngôn ngữ show ra.
  • format
Firebase
ob12_nt_lang1_clickBấm vào ads #1.
  • format
Firebase
ob12_nt_lang1_backQuay lại app sau khi bấm ads #1.
  • away_ms
Firebase
ob13_nt_lang2_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads #2 màn ngôn ngữ. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
ob13_nt_lang2_not_showNhánh 2 — native ads #2 màn ngôn ngữ KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
ob13_nt_lang2_showNative ads #2 (thay vị trí #1 sau khi chọn ngôn ngữ) show ra.
  • format
Firebase
ob13_nt_lang2_clickBấm vào ads #2.
  • format
Firebase
ob13_nt_lang2_backQuay lại app sau khi bấm ads #2.
  • away_ms
Firebase
ob14_lang_doneBấm Continue để chốt ngôn ngữ — bắn SAU 2 event _end của ads #1/#2 nên mang số 14.
  • lang
Firebase
ob15_wall_showVào màn chọn hình nền.Không có tham sốFirebase
ob15_wall_doneRời màn hình nền.
  • action: set (đã chọn) / skip (bỏ qua)
Firebase
ob16_hello_showVào màn Hello (đang nạp icon/dữ liệu app).Không có tham sốFirebase
ob16_hello_readyNút "Let's Start" hiện ra — nạp xong.
  • ms: thời gian chờ nạp
Firebase
ob17_homeĐÍCH lượt đầu — vào được Home, hoàn tất onboarding.
  • dur_ms: tổng thời gian từ lúc mở app
  • ad_clicks: đã bấm ads mấy lần trên đường đi
  • had_ad: có thấy ads nào không
Firebase
rt01_app_openMở app (đã hoàn tất onboarding từ trước) — bắt đầu tính funnel lượt sau.Không có tham sốFirebase
rt02_gdpr_startBắt đầu chạy Consent UMP (giống ob02_gdpr_start, tên riêng cho lượt sau).Không có tham sốFirebase
rt02_gdpr_doneConsent UMP trả kết quả.
  • ms, can_ads, error_code
Firebase
rt03_nt_splash_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí native ads màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
rt03_nt_splash_not_showNhánh 2 — native ads màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
rt03_nt_splash_showNative ads ở màn Splash show ra.
  • format
Firebase
rt03_nt_splash_clickBấm vào ads đó.
  • format
Firebase
rt03_nt_splash_backQuay lại app sau khi bấm.
  • away_ms
Firebase
rt04_aoa_splash_endSTEP FUNNEL — hai nhánh nhập lại: bao nhiêu user đi qua được vị trí ads toàn màn (AOA/inter) ở màn Splash. Luôn bắn 1 lần/lượt, kể cả khi không có ads.Không có tham sốFirebase
rt04_aoa_splash_not_showNhánh 2 — ads toàn màn (AOA/inter) ở màn Splash KHÔNG hiện được (cấu hình tắt · premium · consent · no-fill · hết giờ chờ).
  • reason: vì sao không hiện
Firebase
rt04_aoa_splash_showFull-screen ads ở màn Splash show ra.
  • format: aoa/inter
Firebase
rt04_aoa_splash_clickBấm vào ads đó.
  • format
Firebase
rt04_aoa_splash_backQuay lại app sau khi bấm.
  • away_ms
Firebase
rt05_homeĐÍCH lượt sau — vào được Home.
  • dur_ms, ad_clicks, had_ad
Firebase

6 Trước khi đọc báo cáo cần làm gì

Step dễ bị bỏ qua nhất — bỏ qua là mở báo cáo lên thấy trống, dù app gửi event đúng.

⚠️ Thông tin kèm theo phải được khai báo trước
App có gửi kèm thông tin chi tiết (ví dụ: ad ở màn nào, loại gì), nhưng nếu chưa khai báo trên Firebase Console thì báo cáo không hiện những thông tin đó — chỉ xem được ở chế độ theo dõi trực tiếp.

Vào Firebase Console → Analytics → Admin (⚙️) → Custom definitions → Create custom dimensions/metrics, khai báo các thông tin (param) sau — đây là những cái được dùng để lọc/so sánh trong báo cáo, không khai là không lọc được dù event vẫn lên đủ:

Tên tham sốDùng đểĐi kèm event
is_defaultSo sánh hành vi/doanh thu giữa người đã đặt app làm mặc định và chưa đặtad_displayed
days_since_installVẽ đường cong theo số ngày kể từ lúc cài appdefault_launcher_confirmed, default_launcher_set_day
sourceBiết người dùng vào từ màn nào (paywall, mở Control Center, chia sẻ…)sub_paywall_view, cc_open, nhiều event khác
format / placementTách số liệu theo loại ads (native / inter / AOA / reward) và theo từng vị trí hiệntoàn bộ nhóm 📺 Ads
planSo sánh gói theo tháng / theo nămsub_plan_selected, coin_pack_buy

7 User property

Khác với param: param gắn vào một event, user property gắn vào cả người dùng — khai làm Segment là dùng lại được cho MỌI báo cáo (giữ chân, doanh thu, ads), không chỉ report ads.

TênGiá trịLát báo cáo theo
is_default_launchertrue/falseNgười đã đặt app làm màn hình chính vs chưa — lát quan trọng nhất của launcher.
is_premiumtrue/falseĐã mua Premium vs chưa (người Premium không thấy ads nên phải tách khi đọc số ads).
app_languagemã ngôn ngữ (vd vi, en)So sánh hành vi/doanh thu theo ngôn ngữ người dùng chọn.
theme_modesáng / tốiAi dùng giao diện tối.
glass_modetắt / vừa / tối đaMức hiệu ứng kính — đối chiếu với báo lỗi máy yếu / giật.
home_gridcỡ lưới icon (vd 4x6)Cỡ lưới phổ biến nhất.
notif_badgetrue/falseCó bật huy hiệu số trên icon không.
Nguồn: analytics/AnalyticsEvents.kt (UserProp) · LauncherApplication.kt (set lúc mở app) · ui/LauncherViewModel.kt (cập nhật khi người dùng đổi)

Khai tại: Firebase Console → Analytics → Admin (⚙️) → Custom definitions → User properties. Không khai thì vẫn gửi lên nhưng không lát được báo cáo theo chúng.

⏱️ Bao lâu thì có số
Custom definitions chỉ tính dữ liệu từ lúc đăng ký trở đi (không hồi tố) — đăng ký càng sớm càng tốt. Sau khi khai báo, report chuẩn (Explore/Reports) vẫn trễ 24–48 giờ như bình thường. Muốn xem ngay lập tức (kể cả trước khi khai báo) → dùng DebugView, xem cách bật ở mục 6.

Khai báo tại: Firebase Console → Analytics → Custom definitions → Create. Cần quyền Editor trên project — nhờ dev cấp nếu chỉ thấy chế độ xem.

7 Checklist QA kiểm event

Cách QA tự kiểm app có gửi event đúng hay không, không cần chờ báo cáo.

  • Bật chế độ theo dõi trực tiếp trên máy test → thấy event chạy lên gần như ngay lập tức.
  • Làm đúng hành động ghi trong cột "Bắn khi nào" → phải thấy đúng tên event đó, không thiếu không thừa.
  • Không bắn trùng: một hành động chỉ bắn một lần, không bắn 2–3 lần liền nhau.
  • Thông tin kèm theo đúng: mở event ra, các thông tin chi tiết phải khớp với màn đang test.
  • Luồng ads: đủ chuỗi request → load → show; nếu ad không show thì phải có event fail.
  • Không mất event khi mất mạng: tắt mạng làm vài hành động rồi bật lại → event vẫn lên.
🔥
Bật DebugView (Firebase) trên máy test
Package thật: com.hp.theme.homescreen.smart
1 · Cắm máy
Cắm máy test qua USB, bật USB debugging, máy đã cài bản app cần test.
2 · Bật debug
Chạy: adb shell setprop debug.firebase.analytics.app com.hp.theme.homescreen.smart
3 · Mở xem
Firebase Console → Analytics → DebugView → chọn đúng thiết bị đang test. Event bắn ra sẽ hiện gần như ngay lập tức (vài giây).
4 · Kiểm
Làm 1 hành động (vd bấm xem native ad) → thấy đúng ad_displayed hiện lên kèm format=native. Mở app ở chế độ dev (isDevMode()) cũng thấy log tương tự trong Logcat, tag Analytics.
5 · Tắt debug
Xong việc test: adb shell setprop debug.firebase.analytics.app .none.
📡 Xem log AppsFlyer
App tự bật log AppsFlyer khi chạy ở chế độ dev (isDevMode()) — xem Logcat, lọc tag AppsflyerTracker, sẽ thấy từng event af_* kèm tham số ngay khi bắn (không cần cấu hình gì thêm, không cần DebugView riêng). Muốn xem trên dashboard thật thì vào AppsFlyer → mục Test console / Event log của app.
🔗 Liên quan
Test ads trước, kiểm event sau → Checklist test ads.