Menu
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Đang tải...

Bài 13 — Dashboards + Custom Charts

Product Analytics Mixpanel and Amplitude Bài 13/60

Mở đầu — vì sao bài này quan trọng

Hãy tưởng tượng bạn là PM tại một startup fintech ở TP.HCM. Mỗi sáng thứ Hai, CEO nhắn tin hỏi: "Tuần rồi số user active thế nào? Conversion của flow nạp tiền có tụt không?" Nếu mỗi lần như vậy bạn lại phải mở Mixpanel, dựng lại từng biểu đồ, chọn lại khoảng thời gian, lọc lại segment — bạn sẽ mất 30 phút chỉ để trả lời một câu hỏi mà lẽ ra chỉ cần liếc mắt là biết. Nhân với cả team, cả tháng, đó là hàng trăm giờ lãng phí.

Dashboard chính là lời giải. Nếu như những bài trước bạn học cách đặt câu hỏi cho dữ liệu (funnel, retention, cohort), thì bài này dạy bạn cách đóng gói câu trả lời thành một màn hình sống, luôn cập nhật, để cả team nhìn vào cùng một sự thật. Một dashboard tốt biến analytics từ hoạt động "đào bới thủ công của một người" thành "hệ thần kinh chung của cả tổ chức".

Trong bài này chúng ta tập trung riêng vào nghệ thuật thiết kế và xây dựng dashboard cùng custom chart trong Mixpanel và Amplitude — chứ không đi sâu vào cách phân tích từng loại metric (funnel, retention... đã có bài riêng). Nói cách khác: bạn đã biết nấu từng món, giờ ta học cách bày mâm cỗ sao cho người ngồi vào bàn ăn được ngay.

Khái niệm cốt lõi

Dashboard là gì và nó phục vụ điều gì

Dashboard là một tập hợp các biểu đồ (chart) được sắp xếp có chủ đích trên cùng một màn hình, tự động cập nhật theo thời gian. Ba giá trị cốt lõi của nó:

  • Persistent view — góc nhìn thường trực về metric quan trọng. Thay vì dựng lại mỗi lần, bạn cấu hình một lần rồi dùng mãi. Metric quan trọng luôn ở đó, sẵn sàng.
  • Shared — chia sẻ được trong team. Cả PM, growth, engineer, exec cùng nhìn một nguồn số liệu. Điều này chấm dứt cảnh "team A nói conversion 12%, team B nói 9%" chỉ vì họ lọc dữ liệu khác nhau.
  • Tabbed by audience — phân tab theo đối tượng. Cùng một sản phẩm nhưng CEO, PM và growth quan tâm những con số khác nhau. Dashboard tốt biết chia lớp thông tin theo người xem.
Một nguyên tắc mentor muốn bạn khắc cốt ghi tâm: dashboard không phải nơi để khám phá, mà là nơi để theo dõi. Khám phá (exploration) là khi bạn chưa biết câu trả lời và đào bới. Theo dõi (monitoring) là khi bạn đã biết metric nào quan trọng và muốn canh chừng nó. Nhầm lẫn hai việc này là nguồn gốc của mọi dashboard rối rắm.

Chart và cấu phần của một dashboard

Trong Mixpanel và Amplitude, mỗi ô trên dashboard là một saved chart (biểu đồ đã lưu). Các loại chart thường dùng:

  • Line/Trend chart — theo dõi một số theo thời gian (ví dụ: DAU theo ngày).
  • Bar chart — so sánh giữa các nhóm (ví dụ: số đơn theo từng thành phố).
  • Funnel chart — tỷ lệ chuyển đổi qua các bước.
  • Retention chart — tỷ lệ quay lại theo cohort.
  • Number/Metric (big number) — một con số lớn duy nhất, ví dụ "MAU tháng này: 1.2M". Cực kỳ hiệu quả cho exec.
  • Table — bảng nhiều chiều, dành cho người muốn đào sâu.
Trong Amplitude, đơn vị dashboard được gọi là Dashboard chứa nhiều chart; ngoài ra Amplitude còn có Notebook để kể chuyện dữ liệu kèm text. Mixpanel gọi bảng điều khiển là Board, mỗi ô là một report đã lưu, và hỗ trợ text card để chú thích.

Custom chart — khi biểu đồ mặc định không đủ

"Custom chart" nghĩa là bạn không dùng template có sẵn mà tự định nghĩa: chọn event nào, tính metric gì (count, unique, sum của property, average), nhóm theo property nào (breakdown), lọc segment nào, và cách hiển thị (đường, cột, bảng). Đây là nơi kỹ năng của bạn tạo khác biệt.

Hai khái niệm nâng cao đáng nhớ:

  • Custom event / Custom metric: kết hợp nhiều event thành một khái niệm nghiệp vụ. Ví dụ định nghĩa "Active User" = làm bất kỳ hành động nào trong {mở app, xem sản phẩm, tìm kiếm}.
  • Formula/Metric math: tạo tỷ lệ giữa hai chart. Ví dụ "Stickiness = DAU / MAU" hoặc "Tỷ lệ thanh toán lỗi = (payment_failed) / (payment_attempt)". Amplitude gọi là "Formula", Mixpanel gọi là "Formula" trong Insights.

Tình huống thực tế

Tình huống 1 — Tiki: dashboard ba tầng theo đối tượng

Giả định một team Growth của Tiki xây hệ dashboard trên Amplitude phục vụ mùa sale 11/11. Ban đầu họ nhồi tất cả 22 chart vào một dashboard duy nhất. Kết quả: CEO mở ra thấy rối, PM phải cuộn mãi mới tìm được funnel của mình, còn growth thì than không có chỗ để theo dõi từng campaign.

Họ tái cấu trúc thành ba tab:

  • Tab Exec: 4 big number — GMV hôm nay, số đơn, số buyer mới, tỷ lệ hoàn tất thanh toán. Thêm một line chart GMV 30 ngày. Hết. CEO liếc 10 giây là nắm tình hình.
  • Tab PM (Checkout): funnel từ "xem giỏ hàng → chọn địa chỉ → chọn thanh toán → đặt thành công", breakdown theo phương thức thanh toán (COD, ví, thẻ), và retention của buyer mới.
  • Tab Growth: trend đơn hàng breakdown theo nguồn (organic, Facebook Ads, affiliate), cùng chart chi phí/đơn.
Bài học: cùng một sản phẩm, ba tab, ba câu chuyện. Việc chia tab theo đối tượng khiến mỗi người mở đúng tab của mình là thấy điều mình cần — không nhiễu, không cuộn. Con số ước lượng: thời gian trung bình để một PM tìm ra insight cần thiết giảm từ ~4 phút xuống dưới 30 giây.

Tình huống 2 — MoMo: custom metric "Stickiness" cứu một quyết định sai

Một team tại MoMo (ví điện tử) theo dõi DAU trên dashboard và thấy DAU tăng đều 8% tháng — ai cũng vui. Nhưng một PM tinh ý dựng thêm một custom formula chart: Stickiness = DAU / MAU. Con số này lại đang giảm từ 0.42 xuống 0.36.

Nghĩa là gì? DAU tăng chủ yếu vì họ mua thêm user mới (nhờ chiến dịch marketing tốn tiền), nhưng user cũ dùng ngày càng thưa. Sản phẩm đang "rò rỉ" ở đáy trong khi đổ nước vào ở đỉnh. Nếu chỉ nhìn DAU thô trên dashboard, họ đã tiếp tục đổ tiền vào acquisition. Nhờ custom metric, họ chuyển ngân sách sang cải thiện engagement.

Bài học: một big number đơn lẻ có thể đánh lừa. Dashboard mạnh là dashboard đặt các metric cạnh nhau để chúng kiểm chứng lẫn nhau. Formula/metric math biến hai chart tầm thường thành một insight sắc bén.

Tình huống 3 — startup SaaS B2B tại Singapore: dashboard "chết" vì không ai đọc

Một startup SaaS (giả định tên Flowdesk) dựng 6 dashboard hoành tráng trên Mixpanel lúc gọi vốn Series A. Sáu tháng sau, không ai mở chúng nữa. Vì sao? Các chart để "All users, all time" nên số liệu ngày càng nhòe; không có ai được giao "chủ" từng dashboard; và không có ngưỡng cảnh báo nên chẳng ai biết khi nào cần hành động.

Họ làm lại theo nguyên tắc: mỗi dashboard có một owner đứng tên, mọi chart mặc định khung thời gian rolling (30 ngày gần nhất, không phải "all time"), và mỗi metric quan trọng gắn một annotation đánh dấu ngày release để giải thích các bước nhảy. Tỷ lệ mở dashboard hằng tuần từ ~10% team lên hơn 70%.

Bài học: dashboard là sản phẩm sống, cần chủ sở hữu và cần được thiết kế để "tự giải thích". Một dashboard không ai chịu trách nhiệm là một dashboard sẽ chết.

Hướng dẫn từng bước

Đây là quy trình dựng một dashboard PM chuẩn, áp dụng được cho cả Mixpanel (Board) lẫn Amplitude (Dashboard):

Bước 1 — Xác định câu hỏi và đối tượng trước khi động vào công cụ. Viết ra giấy: "Dashboard này trả lời câu hỏi gì, cho ai xem, họ sẽ hành động gì sau khi xem?" Nếu không trả lời được, đừng dựng vội. Ví dụ: "Cho PM checkout theo dõi sức khỏe funnel thanh toán hằng ngày để phát hiện tụt conversion sớm."

Bước 2 — Chọn 5–9 metric cốt lõi. Đừng tham. Não người xử lý tốt nhất khoảng 7 khối thông tin. Với dashboard exec, thậm chí 3–5 là đủ. Ưu tiên metric hành động được — nếu một con số thay đổi mà không ai làm gì, nó không nên nằm trên dashboard.

Bước 3 — Dựng từng chart với đúng khung thời gian. Tạo mỗi chart, đặt breakdown và filter cần thiết, và luôn dùng khung thời gian rolling (ví dụ "Last 30 days") thay vì cố định. Lưu chart với tên rõ ràng, dễ hiểu: "Checkout Conversion — by Payment Method" tốt hơn "Funnel 3".

Bước 4 — Sắp xếp bố cục theo thứ tự đọc. Đặt metric tổng quan (big number) ở trên cùng bên trái — vì mắt người đọc từ trái sang, trên xuống. Chart chi tiết, bảng đào sâu để phía dưới. Dùng text card / section header để phân nhóm ("Acquisition", "Activation", "Revenue").

Bước 5 — Thêm ngữ cảnh: annotation và mô tả. Đánh dấu các mốc quan trọng (ngày release, ngày chạy campaign) bằng annotation trên chart. Viết một dòng mô tả ở đầu dashboard: nó theo dõi gì, cập nhật khi nào, ai là owner.

Bước 6 — Phân tab hoặc tách dashboard theo đối tượng. Nếu nhiều nhóm dùng chung, tách tab Exec / PM / Growth. Đừng bắt CEO cuộn qua chart kỹ thuật.

Bước 7 — Gán owner và lịch review. Mỗi dashboard một người chịu trách nhiệm cập nhật. Đặt lịch review định kỳ (ví dụ đầu tuần trong họp product) để dashboard thực sự được dùng, không chỉ tồn tại.

Bước 8 — Thiết lập chia sẻ và (nếu cần) gửi định kỳ. Cả Mixpanel và Amplitude cho phép lên lịch email/Slack snapshot dashboard. Với exec ít khi tự mở tool, một ảnh chụp gửi vào Slack mỗi sáng thứ Hai giá trị hơn một dashboard đẹp mà họ không bao giờ truy cập.

Lỗi thường gặp & mẹo

Lỗi 1 — Dashboard nhồi nhét (dashboard béo phì). Cố nhét 30 chart vào một màn hình khiến không ai đọc nổi. Mẹo: áp quy tắc "một dashboard, một câu hỏi lớn". Nếu vượt 9 chart, cân nhắc tách dashboard mới.

Lỗi 2 — Dùng "All time" thay vì rolling window. Metric "all time" ngày càng vô nghĩa vì gộp cả dữ liệu 3 năm trước. Mẹo: mặc định "Last 30 days" hoặc "Last 12 weeks", điều chỉnh theo nhịp sản phẩm.

Lỗi 3 — Không có ngữ cảnh, chart tự dưng nhảy. Người xem thấy conversion tụt 20% mà không biết đó là do bug hay do release. Mẹo: dùng annotation cho mọi mốc release/campaign. Một chart có ngữ cảnh đáng giá bằng mười chart trơ trọi.

Lỗi 4 — So sánh táo với cam (đơn vị/khung lệch nhau). Đặt cạnh nhau một chart "unique users" và một chart "total events" mà không ghi rõ, người xem hiểu nhầm. Mẹo: ghi rõ đơn vị trong tiêu đề chart, đồng bộ khung thời gian giữa các chart trên cùng dashboard.

Lỗi 5 — Vanity metric chiếm sóng. Tổng số đăng ký tích lũy, tổng lượt xem... nghe hoành tráng nhưng không hành động được. Mẹo: mỗi metric phải trả lời câu "nếu số này đổi, tôi sẽ làm gì?". Không trả lời được thì bỏ khỏi dashboard.

Lỗi 6 — Không ai làm chủ. Dashboard vô chủ nhanh chóng lỗi thời khi event schema thay đổi. Mẹo: gán owner, ghi tên ngay trên dashboard.

Mẹo nâng cao — dùng "small multiples": thay vì một chart nhồi 8 đường màu rối mắt, tách thành nhiều chart nhỏ giống nhau, mỗi cái một segment. Dễ đọc hơn nhiều. Cả Mixpanel và Amplitude đều hỗ trợ hiển thị dạng này qua breakdown + "show as separate".

Bài tập thực hành

  • Xác định đối tượng. Chọn một sản phẩm bạn quen (app của công ty bạn, hoặc một app giả định như "ứng dụng đặt đồ ăn ShopFood"). Viết ra ba đối tượng người xem dashboard (ví dụ: CEO, PM sản phẩm, Growth marketer) và với mỗi người liệt kê 3 câu hỏi họ hỏi mỗi tuần.
  • Thiết kế trên giấy trước. Với tab PM, phác thảo bố cục 6 chart: đâu là big number, đâu là funnel, đâu là bảng chi tiết. Vẽ vị trí từng ô trước khi mở tool. Ghi rõ khung thời gian và breakdown của mỗi chart.
  • Dựng thật trên tool. Trong Mixpanel hoặc Amplitude (dùng dataset demo nếu chưa có dữ liệu thật), tạo tối thiểu: một big-number chart, một trend chart có breakdown, và một custom formula chart (ví dụ Stickiness = DAU/MAU). Sắp chúng vào một Board/Dashboard.
  • Thêm ngữ cảnh. Tạo ít nhất một annotation đánh dấu một mốc (giả định "ngày ra mắt tính năng X") và viết dòng mô tả owner + mục đích ở đầu dashboard.
  • Tự phản biện. Nhìn lại dashboard vừa dựng và trả lời: với mỗi chart, "nếu con số này thay đổi mạnh, người xem sẽ làm gì?". Xóa mọi chart không trả lời được câu này. Ghi lại bạn đã xóa bao nhiêu — đó chính là lượng nhiễu bạn vừa loại bỏ.

Tóm tắt

Dashboard là cách bạn biến phân tích rời rạc thành hệ thần kinh chung của cả team: một góc nhìn thường trực (persistent), chia sẻ được (shared), và phân lớp theo đối tượng (tabbed by audience). Nguyên tắc vàng: dashboard để theo dõi, không phải để khám phá — vì thế mỗi màn hình nên trả lời một câu hỏi lớn và chỉ chứa những metric hành động được.

Về kỹ thuật, hãy thành thạo các loại chart (big number, trend, funnel, retention, table), biết dùng breakdown/filter để tùy biến, và đặc biệt là formula/custom metric để đặt các con số cạnh nhau cho chúng kiểm chứng lẫn nhau — như bài học Stickiness của MoMo. Về quy trình, luôn bắt đầu từ đối tượng và câu hỏi, dùng khung thời gian rolling, thêm annotation làm ngữ cảnh, phân tab theo người xem, và quan trọng nhất: gán owner để dashboard sống chứ không chết.

Một dashboard đẹp mà không ai mở là thất bại. Một dashboard đơn sơ mà cả team dựa vào để ra quyết định mỗi tuần — đó mới là thành công. Ở các bài sau, bạn sẽ học cách rót vào những dashboard này các loại phân tích chuyên sâu hơn (SQL/JQL, attribution, revenue...), nhưng khung xương bày biện thì bạn đã nắm trong tay.