1. Tổng quan
Đây là bước quan trọng nhất để cấu hình tracking event vào source code app, cụ thể:
- Cấu hình tracking event: Tích hợp phương thức
Mobio.getInstance().track()để ghi nhận hành vi tương tác của người dùng mobile app. - Quản lý Danh tính: gán các hàm
identify(),login(),logout(),modify()để định danh và liên kết Profile.
Đối tượng sử dụng: Developer Android.
2. Điều kiện tiên quyết
- Đã hoàn thành bước: Khởi tạo SDK trong lớp Application với hàm Init (Android).
- Lấy được event code + hàm tích hợp tại bước: Định nghĩa Tracking Event và lấy Code Tracking gắn vào App.
3. Quy trình thực hiện
Bước 1: Cấu hình Tracking Event
- Lấy thông tin hàm tích hợp và vị trí gắn code trên Mobio ở bước Định nghĩa Tracking Event và lấy Code Tracking gắn vào App.
- Dán đoạn code này vào nơi đặt code đã được quy định, trước khi thay đổi các tham số trong code cho phù hợp và lưu lại.
Mẫu code tham khảo chung (Java/Kotlin):
Mobio.getInstance().track("eventKey", properties);
Trong đó:
eventKey(bắt buộc): Key của event đã được tạo trên Mobio CDP. Mỗi event khi khởi tạo trên Mobio có một eventkey duy nhất.- Kiểu dữ liệu: String
properties(bắt buộc): Các cặp key, value tương ứng của các trường thông tin trong event.- Kiểu dữ liệu:
Map(HashMap / MutableMap)
- Kiểu dữ liệu:
Lưu ý: Event phải được tạo trước trên Mobio để lấy eventKey. Nếu không, event này sẽ không được ghi nhận vào Mobio.
Ví dụ Cấu hình Tracking Event
Java
HashMap<String, Object> properties = new HashMap<>();
// Lưu ý: Parameter KHÔNG ĐƯỢC PHÉP ĐỂ NULL. Nếu không có biến con, vẫn truyền Collection trống.
properties.put("ngay_mua_hang", "2025/09/19");
// Đẩy luồng Send Event Lên Network Mobio Endpoint. "click_mua_hang" bắt buộc là Event Key định danh đã khai báo Cloud.
Mobio.getInstance().track("click_mua_hang", properties);
Kotlin
val identityEvent: MutableMap<String, Any> = HashMap()
identityEvent.put("ngay_mua", "2025/09/19")
Mobio.getInstance().track("click_mua_hang", identityEvent)
Bước 2: Quản lý Danh tính
Có 4 hàm định danh: identify(), login(), logout() và modify(). Tham khảo bảng so sánh các hàm định danh sau:
| Tên Hàm | Ý nghĩa & Trường hợp sử dụng | Vị trí gắn trên App | Tham số đầu vào |
|---|---|---|---|
identify() | Thiết lập hoặc Cập nhật thông tin định danh của người dùng hiện tại mà không thay đổi trạng thái đăng nhập. Nghĩa là người dùng vẫn duy trì trạng thái vãng lai (Guest) hoặc phiên login hiện tại. | Form thu thập thông tin khách hàng tiềm năng, popup đăng ký nhận bản tin. | identityRequest (Map): Chứa tập thông tin định danh. |
login() | Định danh người dùng và chuyển đối tượng sang trạng thái đăng nhập. Bắt đầu tracking tất cả sự kiện tiếp theo cho đối tượng này. | Nút xác nhận “Đăng nhập” (bằng Email, Số điện thoại hoặc Google/SSO). | identityRequest (Map): Thông tin định danh.identityEvent (Map): Thông tin phương thức sự kiện đăng nhập. |
logout() | Đăng xuất người dùng hiện tại khỏi ứng dụng, xoá toàn bộ session tracking. | Nút “Đăng xuất”. | identityEvent (Map): Thông tin sự kiện đăng xuất. |
modify() | Cập nhật thông tin định danh (Ví dụ: email, SĐT bảo mật) của người dùng hiện tại mà không làm thay đổi trạng thái đăng nhập. | Màn hình cập nhật hồ sơ, màn hình chỉnh sửa cài đặt tài khoản cá nhân. | Nút xác nhận “Đăng nhập” (bằng email, số điện thoại hoặc Google/SSO). |
Quy trình thực hiện cấu hình
Bước 1: Xác định hàm cần sử dụng. Dựa vào kịch bản sử dụng (Use-case) thực tế trên luồng màn hình của ứng dụng, Developer đối chiếu với bảng tính năng ở trên để tự chọn hàm định danh.
Bước 2: Tổ chức code cài đặt hàm vào ứng dụng. Xác định tập các tham số cần truyền phụ thuộc. Đảm bảo cặp key-value phải được định nghĩa và cấu hình trước trên Mobio. Lựa chọn các mẫu cấu hình dưới đây tùy theo ngôn ngữ phát triển.
Mẫu cấu hình hàm identify()
// Logic Mapping Map Keys Java:
Map<String, Object> identityRequest = new HashMap<>();
identityRequest.put("email", "anhkhachA@example.com"); // Đóng vai trò là Key
identityRequest.put("customer_id", "123456");
identityRequest.put("tuoi", 30); // Thuộc tính Mở rộng
Mobio.getInstance().identify(identityRequest, new IMoIdentityCallbackFunc() {
@Override
public void onIdentitySuccess() {
// Logic Update màn hình giao diện
}
@Override
public void onIdentityFailure(int errorCode, String errorMessage, String errorCategory) { }
});
Mẫu cấu hình hàm login()
// Logic Cấu Trúc File Kotlin:
val identityRequest = mutableMapOf<String, Any>()
identityRequest["email"] = "auth.login.chinhthuc@system.com"
val identityEvent = mutableMapOf<String, Any>()
identityEvent["login_method"] = "Google" // Khai Báo Phương thức Source
identityEvent["login_action"] = "manual" // Hành động manual, auto
Mobio.getInstance().login(identityRequest, identityEvent, object : IMoIdentityCallback {
override fun onIdentitySuccess(result: Map<String, Any>) { /* Route sang Home */ }
override fun onIdentityFailure(errorCode: Int, errorMessage: String, errorCategory: String) { /* Dump Error */ }
})
Mẫu cấu hình hàm logout()
// Gửi Request Đóng phiên Database
Map<String, Object> identityEvent = new HashMap<>();
identityEvent.put("logout_action", "manual"); // Rule Value Format String
Mobio.getInstance().logout(identityEvent, new IMoIdentityCallbackFunc() {
@Override
public void onIdentitySuccess() { /* Xoá Token Local Storage Context */ }
@Override
public void onIdentityFailure(int errorCode, String msg, String type) { }
});
Mẫu cấu hình hàm modify() Cấu trúc hàm gọi tương tự API identify(). Đưa tham số identityRequest chứa Map thay đổi vào thuộc tính Function. Chỉ làm thay đổi các trường dữ liệu tĩnh, Service Tracking Token Authentication trên Activity Client vẫn giữ nguyên trạng thái phiên sử dụng bình thường.
Hàm Callback
Trong các hàm định danh phía trên, bạn sẽ bắt gặp Interface IMoIdentityCallbackFunc (Java) hoặc IMoIdentityCallback (Kotlin). Sau khi ứng dụng đẩy dữ liệu định danh lên Mobio, hàm Callback giúp App lắng nghe phản hồi xem Mobio đã cập nhật thành công hồ sơ đó hay vừa từ chối do gửi lỗi Data.
public interface IMoIdentityCallbackFunc {
void onIdentitySuccess();
/** * Được gọi khi API gửi Client Login thất bại *
* @param errorCode Mã lỗi từ Máy chủ
* @param errorMessage Thông điệp giải thích lỗi gốc
* @param errorCategory Phân loại chi tiết (Validation, Network, API, etc.) */
void onIdentityFailure(int errorCode, String errorMessage, String errorCategory);
}
4. Quy tắc vận hành
- Giảm tải API Request: không cần phải tạo thêm Event Tracking riêng để cập nhật thông tin định danh như
Tuổi,Giới tính,Quê quán. Nên sử dụng cách tối giản là truyền thẳng các thuộc tính này qua hàmidentify()hoặcmodify(). - Trước khi truyền bất kỳ cặp key-value nào, cần đảm bảo rằng cặp key-value đó đã được định nghĩa trước trên Mobio thông qua bước [Định nghĩa Tracking Event và lấy Code Tracking gắn vào App]. Nếu không, khi truyền event từ app về Mobio, hàm callback vẫn trả về thành công, nhưng các thông tin truyền vào cặp key-value đó sẽ tự động bị bỏ qua và dữ liệu không được cập nhật lên Mobio.
5. Câu hỏi thường gặp (FAQ)
Chưa có thông tin cho mục này.