1. Firebase Analytics là gì?
Trong quá trình phát triển ứng dụng, việc xây dựng giao diện đẹp và các chức năng hoạt động đúng là rất quan trọng. Tuy nhiên, khi ứng dụng được đưa vào sử dụng thực tế, lập trình viên và doanh nghiệp còn cần biết người dùng đang sử dụng ứng dụng như thế nào.
Ví dụ, một ứng dụng bán hàng có thể có hàng nghìn lượt truy cập mỗi ngày. Chủ cửa hàng muốn biết có bao nhiêu người mở ứng dụng, sản phẩm nào được xem nhiều, bao nhiêu người thêm sản phẩm vào giỏ hàng và có bao nhiêu người hoàn tất đặt hàng.
Nếu chỉ dựa vào cảm nhận hoặc quan sát thủ công, rất khó đánh giá chính xác hiệu quả của từng chức năng.
Vì vậy, các ứng dụng thường tích hợp công cụ phân tích hành vi người dùng. Một trong những giải pháp phổ biến là Google Analytics for Firebase, thường được gọi là Firebase Analytics.
Firebase Analytics là dịch vụ phân tích do Google cung cấp, cho phép ứng dụng ghi nhận các sự kiện sử dụng, tổng hợp dữ liệu và cung cấp báo cáo về cách người dùng tương tác với ứng dụng.
Trong Flutter, lập trình viên có thể tích hợp Firebase Analytics để ghi nhận những hành động như mở ứng dụng, xem sản phẩm, tìm kiếm, thêm vào giỏ hàng hoặc bắt đầu thanh toán.
Ví dụ, khi người dùng nhấn nút “Thêm vào giỏ hàng”, ứng dụng có thể ghi nhận một sự kiện add_to_cart. Khi người dùng hoàn tất đặt hàng, ứng dụng có thể ghi nhận sự kiện purchase theo cấu trúc phù hợp.
Sau một thời gian, dữ liệu sự kiện được tổng hợp để hỗ trợ phân tích hành vi và đánh giá hiệu quả hoạt động của ứng dụng.
Như vậy, Firebase Analytics không trực tiếp thực hiện chức năng bán hàng mà hỗ trợ đo lường và phân tích cách người dùng sử dụng hệ thống.
2. Tại sao ứng dụng cần Firebase Analytics?
Khi ứng dụng mới được xây dựng, lập trình viên thường kiểm tra chức năng bằng cách tự thao tác trên thiết bị. Tuy nhiên, cách kiểm tra này chỉ cho biết chức năng có hoạt động hay không, chứ không phản ánh đầy đủ hành vi của người dùng thực tế.
Ví dụ, ứng dụng có chức năng tìm kiếm sản phẩm nhưng rất ít người sử dụng. Điều này có thể do người dùng không có nhu cầu tìm kiếm, vị trí ô tìm kiếm chưa dễ nhận biết hoặc kết quả tìm kiếm chưa phù hợp.
Nếu không có dữ liệu, nhóm phát triển khó xác định vấn đề nằm ở đâu.
Firebase Analytics giúp cung cấp thông tin phục vụ những câu hỏi như:
- Có bao nhiêu người sử dụng ứng dụng trong một khoảng thời gian?
- Người dùng thường mở những màn hình nào?
- Chức năng nào được sử dụng nhiều?
- Người dùng có thường thêm sản phẩm vào giỏ hàng không?
- Có bao nhiêu lượt bắt đầu thanh toán?
- Người dùng thường dừng lại ở bước nào trong quy trình mua hàng?
- Người dùng có quay lại ứng dụng sau lần sử dụng đầu tiên không?
Từ những thông tin này, nhóm phát triển có thể đưa ra quyết định dựa trên dữ liệu thay vì chỉ dựa vào phỏng đoán.
Tuy nhiên, cần lưu ý rằng Analytics cho biết những hành vi đã được ghi nhận và các xu hướng thống kê. Nó không tự động giải thích chính xác lý do tâm lý khiến người dùng thực hiện một hành động. Để hiểu nguyên nhân, có thể cần kết hợp thêm phỏng vấn người dùng, khảo sát hoặc kiểm thử trải nghiệm.
3. Firebase Analytics hoạt động như thế nào?
Firebase Analytics hoạt động dựa trên cơ chế thu thập sự kiện, thường được gọi là Event-Based Analytics.
Thay vì chỉ ghi nhận rằng người dùng đã mở ứng dụng, hệ thống có thể ghi nhận nhiều hành động khác nhau trong quá trình sử dụng.
Ví dụ, một người dùng thực hiện các thao tác:
- Mở ứng dụng.
- Xem danh sách sản phẩm.
- Nhấn vào một sản phẩm.
- Thêm sản phẩm vào giỏ hàng.
- Mở trang thanh toán.
- Hoàn tất đặt hàng.
Ứng dụng có thể ghi nhận các sự kiện tương ứng như screen_view, view_item, add_to_cart, begin_checkout và purchase.
Mỗi sự kiện có thể đi kèm những tham số mô tả ngữ cảnh, chẳng hạn mã sản phẩm, danh mục hoặc giá trị đơn hàng.
Dữ liệu sự kiện được SDK thu thập và chuyển đến hệ thống phân tích của Google theo cơ chế của dịch vụ. Sau đó, dữ liệu được xử lý và tổng hợp thành các báo cáo.
Luồng tổng quát:
Người dùng → Thao tác trong Flutter → Analytics Event → Firebase Analytics SDK → Hệ thống xử lý Analytics → Báo cáo
Cần lưu ý rằng sự kiện được ghi nhận trong ứng dụng không đồng nghĩa với việc dữ liệu lập tức xuất hiện trong mọi báo cáo. Một số chế độ kiểm thử có thể hỗ trợ xem sự kiện gần thời gian thực, trong khi báo cáo tổng hợp có thể cần thời gian xử lý.
4. Event trong Firebase Analytics là gì?
Event là một sự kiện hoặc hành động được ghi nhận trong quá trình người dùng tương tác với ứng dụng.
Ví dụ, khi người dùng xem một sản phẩm, ứng dụng có thể ghi nhận event view_item.
Khi người dùng nhấn thêm sản phẩm vào giỏ hàng, ứng dụng ghi nhận add_to_cart.
Khi người dùng hoàn tất mua hàng, ứng dụng có thể ghi nhận purchase.
Một event thường có tên và có thể chứa các tham số bổ sung.
Ví dụ về cấu trúc dữ liệu minh họa:
{
"event_name": "view_item",
"parameters": {
"item_id": "SP001",
"item_name": "Sữa dinh dưỡng",
"price": 250000
}
}
Đây là cách biểu diễn để dễ hiểu, không phải định dạng bắt buộc của lời gọi Firebase Analytics SDK.
Tên sự kiện giúp hệ thống xác định loại hành động, còn tham số cung cấp thông tin chi tiết về hành động đó.
Việc thiết kế event cần được thực hiện có kế hoạch. Nếu cùng một hành động nhưng các màn hình sử dụng nhiều tên event khác nhau, dữ liệu sẽ khó tổng hợp và phân tích.
5. Các loại sự kiện trong Firebase Analytics
Firebase Analytics có nhiều nhóm sự kiện khác nhau.
5.1. Automatically Collected Events
Đây là những sự kiện được SDK tự động ghi nhận khi đáp ứng điều kiện hỗ trợ và cấu hình phù hợp.
Ví dụ, Firebase Analytics có thể ghi nhận những sự kiện liên quan đến lần đầu mở ứng dụng hoặc hoạt động phiên sử dụng.
Lập trình viên không nhất thiết phải tự viết code cho mọi sự kiện cơ bản.
Tuy nhiên, những sự kiện tự động và khả năng hỗ trợ có thể khác nhau giữa Android, iOS, Web và các cấu hình ứng dụng.
5.2. Recommended Events
Đây là những sự kiện được Google khuyến nghị sử dụng cho các hành động phổ biến.
Ví dụ trong ứng dụng thương mại điện tử:
view_item: Xem sản phẩm.add_to_cart: Thêm sản phẩm vào giỏ hàng.remove_from_cart: Xóa sản phẩm khỏi giỏ hàng.begin_checkout: Bắt đầu thanh toán.purchase: Hoàn tất mua hàng.search: Thực hiện tìm kiếm.
Việc sử dụng các sự kiện được khuyến nghị giúp dữ liệu có cấu trúc nhất quán hơn và có thể hỗ trợ các báo cáo chuyên biệt.
Tuy nhiên, với các sự kiện thương mại điện tử, cần truyền đúng những tham số theo tài liệu để hệ thống có thể diễn giải dữ liệu chính xác.
5.3. Custom Events
Custom Event là sự kiện do lập trình viên tự định nghĩa để theo dõi những hành động đặc thù của ứng dụng.
Ví dụ, ứng dụng có chức năng tư vấn sản phẩm bằng chatbot AI. Nhóm phát triển có thể muốn ghi nhận khi người dùng mở chatbot hoặc sử dụng chức năng gợi ý.
Một sự kiện tùy chỉnh có thể được đặt tên là open_ai_assistant.
Tuy nhiên, không nên tạo custom event khi đã có recommended event phù hợp. Việc sử dụng quá nhiều tên sự kiện tùy ý có thể khiến hệ thống phân tích khó quản lý.
Ngoài ra, tên event và tham số phải tuân thủ các quy tắc, giới hạn và tên dành riêng mà Firebase Analytics quy định.
6. Event Parameters là gì?
Event Parameters là những thông tin bổ sung được gửi cùng một sự kiện.
Ví dụ, sự kiện view_item cho biết người dùng đã xem một sản phẩm. Nhưng nếu chỉ ghi nhận tên sự kiện, hệ thống chưa biết sản phẩm nào được xem.
Vì vậy, lập trình viên có thể gửi thêm mã sản phẩm, tên sản phẩm, giá hoặc danh mục theo cấu trúc được hỗ trợ.
Ví dụ, khi người dùng xem sản phẩm có mã SP001, dữ liệu phân tích có thể chứa thông tin về sản phẩm đó.
Event Parameters giúp nhóm phát triển trả lời những câu hỏi chi tiết hơn, chẳng hạn sản phẩm nào được xem nhiều hoặc danh mục nào có nhiều lượt tương tác.
Tuy nhiên, không phải tham số tùy chỉnh nào cũng tự động xuất hiện trong mọi báo cáo. Với một số loại phân tích, cần đăng ký custom dimensions hoặc custom metrics theo khả năng hỗ trợ của Google Analytics.
Ngoài ra, không nên đưa email, số điện thoại, địa chỉ giao hàng hoặc thông tin nhận dạng cá nhân trực tiếp vào event parameters.
7. User Properties là gì?
User Properties là những thuộc tính mô tả nhóm đặc điểm của người dùng hoặc cách ứng dụng phân loại người dùng phục vụ phân tích.
Ví dụ, một ứng dụng có thể phân nhóm người dùng theo loại tài khoản như guest hoặc registered.
User Properties khác với Event Parameters ở chỗ Event Parameters mô tả một sự kiện cụ thể, còn User Properties mô tả một đặc điểm được gắn với người dùng trong phạm vi hệ thống phân tích.
Ví dụ, sự kiện add_to_cart mô tả một hành động thêm vào giỏ hàng. Trong khi đó, thuộc tính account_type có thể mô tả người dùng đang thuộc nhóm tài khoản nào.
Không nên sử dụng User Properties để lưu dữ liệu nhạy cảm hoặc thông tin nhận dạng trực tiếp. Firebase Analytics có các chính sách riêng về dữ liệu người dùng, và ứng dụng phải tuân thủ những chính sách đó.
8. Cách tích hợp Firebase Analytics vào Flutter
Để sử dụng Firebase Analytics, ứng dụng cần được cấu hình với Firebase Project.
Quy trình cơ bản gồm:
Bước 1: Tạo hoặc chọn Firebase Project.
Bước 2: Đăng ký ứng dụng Flutter trên Firebase.
Bước 3: Cấu hình Firebase bằng FlutterFire CLI hoặc quy trình được Firebase hỗ trợ.
Bước 4: Thêm package cần thiết:
flutter pub add firebase_core firebase_analytics
Bước 5: Khởi tạo Firebase trong ứng dụng.
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
import 'firebase_options.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
Trong ví dụ này, firebase_options.dart là tệp cấu hình được tạo trong quá trình thiết lập FlutterFire. MyApp là widget gốc của ứng dụng.
Bước 6: Ghi nhận các sự kiện cần theo dõi.
Bước 7: Kiểm thử dữ liệu và xem báo cáo trên Firebase hoặc Google Analytics.
Cần lưu ý rằng cấu hình và khả năng thu thập dữ liệu có thể khác nhau theo nền tảng, đặc biệt khi ứng dụng có các yêu cầu về quyền riêng tư hoặc sự đồng ý của người dùng.
9. Ghi nhận sự kiện trong Flutter
Firebase Analytics cung cấp phương thức logEvent() để ghi nhận sự kiện tùy chỉnh.
Ví dụ:
final analytics = FirebaseAnalytics.instance;
Future<void> trackOpenAiAssistant() async {
await analytics.logEvent(
name: 'open_ai_assistant',
parameters: {
'source': 'product_detail',
},
);
}
Trong đoạn code này, open_ai_assistant là tên sự kiện tùy chỉnh.
Tham số source được sử dụng để ghi nhận vị trí người dùng mở chức năng chatbot.
Ví dụ, nếu người dùng mở chatbot từ trang chi tiết sản phẩm, ứng dụng có thể ghi nhận source là product_detail.
Điều này giúp nhóm phát triển phân tích xem chức năng chatbot thường được sử dụng từ màn hình nào.
Đối với các sự kiện thương mại điện tử như purchase, nên sử dụng những phương thức và cấu trúc tham số được SDK khuyến nghị thay vì tự tạo một event cùng tên nhưng thiếu thông tin cần thiết.
10. Theo dõi màn hình trong Flutter
Trong ứng dụng có nhiều màn hình, việc biết người dùng thường truy cập màn hình nào rất hữu ích.
Ví dụ, một ứng dụng bán hàng có các màn hình:
- Trang chủ.
- Danh sách sản phẩm.
- Chi tiết sản phẩm.
- Giỏ hàng.
- Thanh toán.
- Lịch sử đơn hàng.
Firebase Analytics có thể hỗ trợ theo dõi lượt xem màn hình.
Với Flutter, do cơ chế điều hướng dựa trên widget và route, việc tự động theo dõi màn hình có thể không phản ánh đầy đủ tên màn hình mong muốn trong mọi cấu hình.
Vì vậy, ứng dụng có thể sử dụng FirebaseAnalyticsObserver với hệ thống điều hướng phù hợp hoặc chủ động ghi nhận screen view.
Ví dụ:
await FirebaseAnalytics.instance.logScreenView(
screenName: 'product_detail',
);
Khi sử dụng, cần bảo đảm sự kiện được ghi nhận tại thời điểm phù hợp và tránh ghi trùng nhiều lần do widget được xây dựng lại.
11. Phân tích hành trình mua hàng bằng Firebase Analytics
Một ứng dụng thương mại điện tử thường có nhiều bước trước khi người dùng hoàn tất mua hàng.
Ví dụ:
Xem sản phẩm → Thêm vào giỏ hàng → Bắt đầu thanh toán → Hoàn tất mua hàng
Đây được gọi là một hành trình chuyển đổi, hay Conversion Funnel.
Giả sử trong một khoảng thời gian, dữ liệu ghi nhận:
- 1.000 người xem sản phẩm.
- 400 người thêm sản phẩm vào giỏ hàng.
- 200 người bắt đầu thanh toán.
- 120 người hoàn tất mua hàng.
Những con số trên chỉ là ví dụ minh họa, không phải số liệu thực tế.
Từ dữ liệu này, nhóm phát triển có thể nhận thấy số lượng người hoàn tất mua hàng thấp hơn số người bắt đầu thanh toán.
Tuy nhiên, không thể ngay lập tức kết luận nguyên nhân là giao diện thanh toán khó sử dụng. Có thể còn những yếu tố khác như phí giao hàng, phương thức thanh toán, giá sản phẩm hoặc vấn đề kỹ thuật.
Firebase Analytics cung cấp dữ liệu để phát hiện điểm cần điều tra. Sau đó, nhóm phát triển có thể kiểm thử và cải thiện ứng dụng.
Khi xây dựng funnel, cần xác định rõ đang đếm người dùng, số sự kiện hay số phiên sử dụng, vì những cách đo này có thể cho kết quả khác nhau.
12. Firebase Analytics có giống Firebase Crashlytics không?
Firebase Analytics và Firebase Crashlytics đều hỗ trợ theo dõi hoạt động ứng dụng, nhưng mục đích khác nhau.
Firebase Analytics tập trung vào việc phân tích hành vi sử dụng, sự kiện tương tác và các chỉ số liên quan đến người dùng.
Firebase Crashlytics tập trung vào việc ghi nhận và phân tích lỗi crash, một số lỗi không gây crash và thông tin phục vụ kiểm tra độ ổn định ứng dụng.
Ví dụ, nếu người dùng nhấn vào nút thanh toán, Firebase Analytics có thể ghi nhận sự kiện bắt đầu thanh toán.
Nếu ứng dụng bị crash trong quá trình xử lý, Crashlytics có thể giúp nhóm phát triển điều tra lỗi.
Hai dịch vụ này có thể được kết hợp để vừa hiểu hành vi người dùng vừa theo dõi chất lượng kỹ thuật của ứng dụng.
13. Firebase Analytics có giống cơ sở dữ liệu không?
Firebase Analytics không phải là cơ sở dữ liệu nghiệp vụ chính của ứng dụng.
Ví dụ, trong một ứng dụng bán hàng, thông tin đơn hàng chính thức phải được lưu trong Backend và cơ sở dữ liệu phù hợp.
Analytics có thể ghi nhận sự kiện purchase để phục vụ phân tích, nhưng không nên sử dụng sự kiện này làm bằng chứng duy nhất rằng một đơn hàng đã được thanh toán thành công.
Nguyên nhân là dữ liệu Analytics có thể bị trễ, thiếu, trùng hoặc chịu ảnh hưởng bởi cơ chế thu thập, quyền riêng tư và kết nối mạng.
Đối với doanh thu và kế toán, hệ thống nên dựa vào dữ liệu giao dịch đã được Backend xác nhận.
Analytics được sử dụng để hỗ trợ phân tích xu hướng và hành vi, không thay thế nguồn dữ liệu nghiệp vụ có tính xác thực.
14. DebugView là gì?
DebugView là một công cụ trong Google Analytics cho phép kiểm tra những sự kiện Analytics được gửi từ thiết bị đang ở chế độ debug phù hợp.
Khi lập trình viên tích hợp sự kiện add_to_cart, có thể sử dụng DebugView để kiểm tra xem sự kiện có được ghi nhận và các tham số có đúng như mong đợi hay không.
Đây là công cụ hữu ích vì báo cáo tổng hợp thông thường có thể không hiển thị dữ liệu ngay lập tức.
Tuy nhiên, để sử dụng DebugView, cần bật chế độ debug Analytics theo hướng dẫn tương ứng với Android hoặc iOS.
Ngoài ra, dữ liệu có thể bị ảnh hưởng bởi những thiết lập quyền riêng tư hoặc chế độ thu thập dữ liệu.
15. Firebase Analytics và quyền riêng tư
Việc phân tích hành vi người dùng phải được thực hiện có trách nhiệm.
Ứng dụng cần thông báo rõ ràng về việc thu thập dữ liệu, tuân thủ chính sách của Google Analytics, các yêu cầu pháp luật liên quan và cơ chế đồng ý của người dùng khi áp dụng.
Không được gửi thông tin nhận dạng cá nhân trực tiếp như email, số điện thoại hoặc địa chỉ cụ thể vào Analytics.
Ứng dụng cũng cần xem xét cách quản lý sự đồng ý, thời gian lưu trữ dữ liệu và những lựa chọn từ chối thu thập dữ liệu.
Ví dụ, trong những trường hợp cần tạm ngừng thu thập Analytics, SDK có cơ chế điều khiển việc thu thập:
await FirebaseAnalytics.instance
.setAnalyticsCollectionEnabled(false);
Tuy nhiên, việc đáp ứng đầy đủ yêu cầu quyền riêng tư không chỉ là gọi một phương thức. Nó còn liên quan đến cấu hình Firebase, cách thu thập dữ liệu, chính sách ứng dụng và quy trình quản lý sự đồng ý.
16. Những sai lầm thường gặp khi sử dụng Firebase Analytics
Sai lầm đầu tiên là ghi nhận quá nhiều sự kiện mà không xác định mục tiêu phân tích.
Sai lầm thứ hai là sử dụng tên event không nhất quán, khiến dữ liệu khó tổng hợp.
Sai lầm thứ ba là ghi nhận một sự kiện nhiều lần do widget được rebuild hoặc do đặt lệnh tracking sai vị trí.
Sai lầm thứ tư là đưa thông tin cá nhân vào event parameters.
Sai lầm thứ năm là xem dữ liệu Analytics như dữ liệu giao dịch chính thức.
Sai lầm thứ sáu là không kiểm thử event trước khi phát hành ứng dụng.
Sai lầm thứ bảy là nhìn vào một chỉ số rồi kết luận nguyên nhân mà không kiểm tra thêm những yếu tố liên quan.
Để sử dụng hiệu quả, nhóm phát triển nên xây dựng một tài liệu quy định tên sự kiện, thời điểm ghi nhận, tham số và mục đích phân tích.
17. Kết luận
Firebase Analytics là công cụ hỗ trợ thu thập và phân tích dữ liệu hành vi người dùng trong ứng dụng.
Trong Flutter, Firebase Analytics có thể được tích hợp thông qua package firebase_analytics. Lập trình viên có thể ghi nhận những sự kiện tự động, sự kiện được khuyến nghị và sự kiện tùy chỉnh.
Dữ liệu Analytics giúp nhóm phát triển hiểu người dùng thường sử dụng chức năng nào, tương tác với sản phẩm ra sao và có thể gặp khó khăn ở giai đoạn nào trong quá trình sử dụng ứng dụng.
Tuy nhiên, Analytics không thay thế Backend, cơ sở dữ liệu nghiệp vụ hoặc các phương pháp nghiên cứu người dùng. Dữ liệu phân tích cần được kiểm tra, diễn giải đúng và sử dụng theo những nguyên tắc bảo vệ quyền riêng tư.
Hiểu và sử dụng Firebase Analytics giúp lập trình viên không chỉ xây dựng ứng dụng hoạt động đúng mà còn có khả năng đánh giá và cải thiện ứng dụng dựa trên dữ liệu thực tế.
18. Tài liệu tham khảo
- Google Analytics for Firebase: https://firebase.google.com/docs/analytics
- Bắt đầu sử dụng Analytics trong Flutter: https://firebase.google.com/docs/analytics/get-started?platform=flutter
- Các sự kiện được khuyến nghị: https://developers.google.com/analytics/devguides/collection/ga4/reference/events
- DebugView: https://support.google.com/analytics/answer/7201382
- Package firebase_analytics: https://pub.dev/packages/firebase_analytics








Khoá học lập trình game con rắn cho trẻ em




