Mở đầu — vì sao bài này quan trọng
Ở Bài 5, chúng ta đã "mổ xẻ" Mixpanel — cách nó lưu sự kiện, cách nó phân biệt người dùng, cách bạn dựng dự án đầu tiên. Bây giờ đến lượt người anh em cạnh tranh trực tiếp: Amplitude. Nếu Mixpanel giống một chiếc dao đa năng gọn nhẹ, thì Amplitude thiên về một "phòng lab phân tích" đầy đủ dụng cụ, đặc biệt mạnh ở các tính năng khám phá hành vi và gợi ý bằng trí tuệ nhân tạo.
Tại sao bạn cần nắm chắc Amplitude ngay từ khâu nền tảng? Vì đây là một trong hai công cụ product analytics được các công ty công nghệ Đông Nam Á dùng nhiều nhất. MoMo, Shopee, Grab, các startup fintech ở Singapore — rất nhiều đội sản phẩm ra quyết định dựa trên số liệu Amplitude mỗi ngày. Nếu bạn là PM và không đọc được một biểu đồ retention trong Amplitude, hoặc không biết cách hỏi Compass "vì sao nhóm người dùng này ở lại lâu hơn", bạn đang tự bịt mắt trước một nửa sự thật về sản phẩm của mình.
Bài này không dạy bạn "so sánh Mixpanel với Amplitude" — đó là việc của Bài 21. Ở đây, ta tập trung vào nền tảng Amplitude: bốn khái niệm gốc (Event, User, Cohort, Project), cách setup một project sạch từ đầu, và cách dùng công cụ đặc trưng nhất của Amplitude là Compass để tìm ra "hành vi tiên đoán" (predictive behavior). Nắm được phần này, mọi bài phân tích funnel, retention, cohort sau đó sẽ trở nên tự nhiên.
Khái niệm cốt lõi
Amplitude được xây trên một mô hình dữ liệu rất giống Mixpanel, nhưng cách nó tổ chức và diễn giải có vài điểm riêng bạn cần thuộc lòng.
Event — hành động của người dùng
Event (sự kiện) là đơn vị nhỏ nhất trong Amplitude: một hành động cụ thể mà người dùng thực hiện tại một thời điểm. Ví dụ: Sign Up Completed, Product Added to Cart, Payment Success, Video Played. Mỗi event có ba thành phần:
- Tên event (event type): mô tả hành động, ví dụ
Checkout Started. - Event properties (thuộc tính sự kiện): thông tin mô tả bối cảnh của chính hành động đó —
payment_method: "MoMo",cart_value: 350000,item_count: 3. - Timestamp: thời điểm xảy ra.
Payment Success HOẶC Subscription Renewed) và Amplitude-defined Events như [Amplitude] Start Session. Việc phân biệt event tự định nghĩa và event do Amplitude tự sinh sẽ giúp bạn tránh đếm nhầm về sau.User — người dùng, định danh hoặc ẩn danh
Amplitude theo dõi hai loại định danh:
- Anonymous user (người dùng ẩn danh): khi khách chưa đăng nhập, Amplitude gán một Device ID tự sinh (thường là một UUID lưu trong trình duyệt hoặc app).
- Identified user (người dùng đã định danh): khi bạn gọi hàm
identify()hoặcsetUserId(), Amplitude gắn một User ID do bạn cung cấp (thường là ID trong database của bạn).
Gắn với User còn có User Properties (thuộc tính người dùng) — những đặc điểm mô tả chính con người đó chứ không phải một hành động: plan_type: "Premium", city: "Hà Nội", signup_date, total_orders. Khác với event property (chỉ đúng tại thời điểm event xảy ra), user property mô tả trạng thái hiện tại của người dùng và được cập nhật đè lên giá trị cũ.
Cohort — nhóm người dùng được lưu lại
Cohort là một trong những khái niệm quyền lực nhất của Amplitude. Đây là một nhóm người dùng thỏa mãn điều kiện nào đó, được lưu lại để tái sử dụng. Có hai kiểu:
- Behavioral cohort (cohort hành vi): "những người đã thực hiện
Payment Successít nhất 2 lần trong 30 ngày qua". Nhóm này tự động cập nhật khi có người mới thỏa điều kiện. - Cohort tĩnh: một danh sách user ID cố định bạn tải lên, ví dụ "500 khách VIP" để chạy chiến dịch.
Project — không gian làm việc chứa dữ liệu
Project là ranh giới chứa dữ liệu trong Amplitude. Mỗi project có API Key riêng, tập event riêng, danh sách user riêng. Dữ liệu không tự chảy giữa các project — đây vừa là tính năng cô lập tốt, vừa là cái bẫy nếu bạn gửi nhầm dữ liệu production vào project staging.
Thực hành phổ biến ở các đội chuyên nghiệp là tách tối thiểu hai project: một Development/Staging để thử nghiệm tracking, và một Production cho dữ liệu thật. Amplitude tổ chức project bên trong Organization (tổ chức), và bạn có thể chia sẻ cohort/dashboard giữa các project cùng org thông qua tính năng Portfolio hoặc cross-project view (tùy gói).
Compass — công cụ đặc trưng của Amplitude
Đây là điểm nhấn khiến Amplitude khác biệt. Compass là tính năng dùng thống kê để trả lời câu hỏi: "Hành vi nào trong tuần/tháng đầu tiên khiến người dùng có khả năng ở lại (retain) cao nhất?" — tức tìm ra aha moment một cách định lượng.
Bạn chọn một sự kiện "chuyển đổi thành công" (ví dụ: còn hoạt động ở tuần thứ 4), Compass sẽ quét toàn bộ event và property, rồi xếp hạng những hành vi có tương quan cao nhất với việc ở lại. Kết quả điển hình: "Người dùng thêm ít nhất 3 sản phẩm vào giỏ trong 7 ngày đầu có tỷ lệ retain cao gấp 2,4 lần." Compass không khẳng định nhân quả, nhưng nó cho bạn giả thuyết cực kỳ giá trị để kiểm chứng. (Việc xác định aha moment sẽ được đào sâu ở Bài 16.)
Tình huống thực tế
Tình huống 1 — Startup gọi xe "GoNhanh" và cái bẫy project chung
GoNhanh, một startup gọi xe giả định ở TP.HCM, mới tích hợp Amplitude. Đội dev vội vàng gắn cùng một API Key vào cả app đang phát triển lẫn app đã lên store. Kết quả: trong project Amplitude, số liệu Ride Completed phình lên bất thường vì lẫn cả các chuyến "test" do lập trình viên bấm thử hàng trăm lần mỗi ngày.
Khi PM báo cáo "tuần này hoàn thành 4.200 chuyến" cho ban lãnh đạo, con số thật chỉ khoảng 2.900 — phần còn lại là dữ liệu rác từ môi trường dev. Bài học: luôn tách project Production và Development ngay từ đầu, mỗi cái một API Key. Ngoài ra, đội nên bật một user property environment hoặc lọc theo platform để chặn thêm một lớp. Một project sạch quan trọng hơn nhiều so với việc có thật nhiều biểu đồ đẹp.
Tình huống 2 — Sàn thương mại điện tử và bài toán ghép định danh
Một sàn TMĐT quy mô vừa ở Đông Nam Á (tạm gọi "ChoViet") nhận thấy funnel của họ "gãy" một cách kỳ lạ: bước Product Viewed có 100.000 người, nhưng Sign Up Completed chỉ hiện 12.000, trong khi thực tế lượng đăng ký cao hơn nhiều.
Nguyên nhân: đội dev chưa gọi hàm hợp nhất định danh đúng cách. Khi khách xem sản phẩm lúc còn ẩn danh (Device ID), rồi đăng ký (được gán User ID), Amplitude không nối được hai danh tính vì code gọi setUserId() ở sai thời điểm — sau khi session đã đóng. Hệ quả là cùng một người bị đếm thành hai user riêng biệt, làm funnel trông như "rơi rụng" khủng khiếp.
Sau khi sửa lại: gọi setUserId() ngay tại thời điểm đăng ký thành công, trong cùng session ẩn danh, tỷ lệ chuyển đổi hiển thị đúng lên gần 68%. Bài học: identity resolution là xương sống; sai một dòng code sẽ làm mọi phân tích phía sau vô nghĩa.
Tình huống 3 — Ứng dụng học tiếng Anh dùng Compass tìm "aha moment"
Một app học tiếng Anh giả định "SpeakUp" có tỷ lệ retention tuần 4 chỉ 18% — khá thấp. Thay vì đoán mò, PM mở Compass, chọn sự kiện chuyển đổi là "còn active ở tuần thứ 4", và để Compass quét toàn bộ hành vi trong 7 ngày đầu.
Compass xếp hạng cao nhất một hành vi bất ngờ: người dùng hoàn thành ít nhất 1 bài "Speaking Practice" trong 3 ngày đầu có khả năng retain cao gấp 3,1 lần so với người chỉ làm bài trắc nghiệm. Đội sản phẩm liền thiết kế lại onboarding để đẩy học viên vào bài Speaking sớm hơn. Sau hai tháng, retention tuần 4 tăng từ 18% lên 27%.
Bài học: Compass không thay bạn ra quyết định, nhưng nó biến câu hỏi "hành vi nào quan trọng?" từ tranh luận cảm tính thành giả thuyết có số liệu để thử nghiệm.
Hướng dẫn từng bước
Đây là quy trình dựng một project Amplitude từ số 0 đến khi có dữ liệu chạy được.
Bước 1 — Tạo Organization và Project. Đăng ký tài khoản Amplitude (gói Starter miễn phí đủ để học và cho sản phẩm nhỏ). Trong Organization, tạo ngay hai project: MyApp - Production và MyApp - Dev. Vào phần Settings của mỗi project để lấy API Key riêng.
Bước 2 — Cài SDK và cấu hình. Với web, cài Amplitude Browser SDK; với mobile, dùng SDK Android/iOS tương ứng (chi tiết cross-platform sẽ ở Bài 34). Khởi tạo bằng API Key của đúng môi trường:
import * as amplitude from '@amplitude/analytics-browser';
amplitude.init('YOUR_API_KEY', { defaultTracking: true });
Tùy chọn defaultTracking: true sẽ tự bắt các event cơ bản như page view, session start.
Bước 3 — Gửi event đầu tiên. Ghi lại một hành động có ý nghĩa cùng property mô tả bối cảnh:
amplitude.track('Product Added to Cart', {
cart_value: 350000,
item_count: 3,
category: 'Skincare'
});
Bước 4 — Định danh người dùng. Ngay khi người dùng đăng nhập/đăng ký thành công, gắn User ID và set user property:
amplitude.setUserId('user_84213');
const identify = new amplitude.Identify()
.set('plan_type', 'Premium')
.set('city', 'Hà Nội');
amplitude.identify(identify);
Bước 5 — Kiểm tra bằng User Look-Up / Debugger. Vào Amplitude, mở công cụ User Look-Up hoặc bảng Ingestion Debugger để xác nhận event và property của bạn về đúng, đúng user, đúng project. Đừng bao giờ tin là "đã gửi" cho tới khi thấy tận mắt trong dashboard.
Bước 6 — Tạo Cohort đầu tiên. Vào mục Cohorts, dựng một behavioral cohort đơn giản, ví dụ "người đã Product Added to Cart ≥ 1 lần trong 7 ngày". Lưu lại và dùng nó làm bộ lọc cho một biểu đồ.
Bước 7 — Chạy Compass (khi đã đủ dữ liệu). Khi project tích lũy vài tuần dữ liệu, mở Compass, chọn sự kiện chuyển đổi và để nó gợi ý hành vi tiên đoán retention.
Lỗi thường gặp & mẹo
- Trộn dữ liệu Dev và Production vào chung một project. Đây là lỗi phổ biến nhất và tai hại nhất. Luôn tách project, mỗi môi trường một API Key.
- Gọi định danh sai thời điểm. Set User ID quá muộn hoặc quên hoàn toàn khiến Amplitude không ghép được lịch sử ẩn danh vào user thật, làm funnel và retention sai lệch. Hãy gọi ngay trong session, đúng lúc đăng nhập thành công.
- Nhầm lẫn event property và user property. Cart value là event property (đúng tại thời điểm đó); plan_type là user property (trạng thái hiện tại). Đặt sai chỗ sẽ khiến bạn không phân tích được đúng ý.
- Đặt tên event lộn xộn, không nhất quán.
signup,Sign Up,user_signupcùng chỉ một hành động sẽ tách thành ba event khác nhau. Hãy thống nhất quy ước đặt tên — chủ đề này là trọng tâm của Bài 7, nhưng bạn cần ý thức ngay từ bây giờ.
- Tin Compass là nhân quả. Compass chỉ ra tương quan, không phải nguyên nhân. Nó cho bạn giả thuyết tốt; hãy kiểm chứng bằng thử nghiệm (Bài 20) trước khi đổ nguồn lực.
- Mẹo: Bật Governance / Data Taxonomy sớm để quản lý danh mục event. Amplitude cho phép chặn event lạ, đặt mô tả cho từng event — làm việc này ngay khi còn ít event sẽ đỡ hơn rất nhiều so với dọn dẹp hàng trăm event rác về sau.
- Mẹo: Dùng User Look-Up như thói quen hằng ngày trong giai đoạn triển khai. Tự đóng vai người dùng, thao tác trên app, rồi soi chính mình trong Amplitude để xác nhận mọi event đúng như kỳ vọng.
Bài tập thực hành
- Dựng hai project. Tạo tài khoản Amplitude, lập
Practice - ProdvàPractice - Dev, ghi lại API Key của từng cái. Viết một câu giải thích vì sao không được dùng chung key.
- Gửi ba event có property. Tích hợp SDK vào một trang HTML hoặc app nhỏ, gửi
Product Viewed,Product Added to Cart,Checkout Started, mỗi event kèm ít nhất hai event property hợp lý. Xác nhận chúng xuất hiện trong User Look-Up.
- Thực hành định danh. Mô phỏng luồng: thao tác ẩn danh trước, sau đó gọi
setUserId()và set hai user property. Kiểm tra trong Amplitude xem lịch sử ẩn danh có được ghép vào user định danh không.
- Tạo một behavioral cohort. Dựng nhóm "người đã
Checkout Started≥ 1 lần trong 7 ngày", lưu lại, rồi dùng nó lọc một biểu đồ event segmentation đơn giản.
- Phác thảo câu hỏi cho Compass. Viết ra đề bài bạn muốn Compass trả lời cho sản phẩm của mình: sự kiện chuyển đổi là gì, khung thời gian đầu là bao lâu, và bạn kỳ vọng hành vi nào có thể là aha moment.
Tóm tắt
Amplitude đứng trên bốn khái niệm nền: Event (hành động cụ thể kèm property), User (định danh hoặc ẩn danh, được hợp nhất qua identity resolution), Cohort (nhóm người dùng tái sử dụng được), và Project (không gian dữ liệu cô lập, mỗi cái một API Key). Nắm chắc bốn khái niệm này là điều kiện tiên quyết cho mọi phân tích phía sau.
Điểm đặc trưng khiến Amplitude nổi bật là Compass — công cụ dùng thống kê để tìm hành vi tiên đoán retention, biến câu hỏi "aha moment nằm ở đâu" thành giả thuyết có số liệu. Nhưng nhớ rằng Compass chỉ ra tương quan, không phải nhân quả.
Ba nguyên tắc sống còn khi triển khai: tách Production khỏi Development, gọi định danh đúng thời điểm, và đặt tên event nhất quán. Ba lỗi này, nếu mắc phải, sẽ âm thầm phá hỏng mọi con số bạn báo cáo. Ở các bài tiếp theo, chúng ta sẽ dùng chính nền tảng này để dựng funnel, đo retention và xây cohort chuyên sâu.