Bảng Điều Khiển Ôn Tập Android
Kotlin • MVVM • Flow • REST API • Compose • Testing
Metrics chính của User Acquisition
Tự tính và đọc đúng CPI, CTR, CPC, CVR, Retention D1/D7/D30, Churn, LTV, ARPPU, ARPDAU, Rev/User, ROI và ROAS; hiểu chỉ số nào quyết định app sống hay chết.
1Trước khi vào metrics: đọc số theo phễu
Ghi nhớ
Mục tiêu tuần này: tự tính và đọc đúng CPI, CTR, CPC, CVR, Retention D1/D7/D30, Churn, LTV, ARPPU, ARPDAU, Rev/User, ROI và ROAS. Đây là bộ từ vựng bắt buộc trước khi đụng vào paid ads. Nguyên tắc lõi: CPI chỉ cho biết giá mua user, ROAS mới cho biết app có sống được không.
Mọi chỉ số UA đều nằm trên một phễu: người dùng thấy quảng cáo → bấm → cài → mở → ở lại → trả tiền. Mỗi tầng có một nhóm chỉ số riêng. Đọc số mà không gắn vào tầng phễu thì dễ mừng/lo sai chỗ.
Phễu ví dụ — app mua sắm (từ thấy quảng cáo đến mua hàng)
Miệng phễu rộng (nhiều người biết đến) thu hẹp dần xuống đáy (ít người mua). Chỗ tụt mạnh nhất là chỗ cần tối ưu trước.
Mỗi tầng phễu — chỉ số chính
| Tầng | Câu hỏi cần trả lời | Chỉ số |
|---|---|---|
| Hiển thị → Click | Quảng cáo có hấp dẫn không? Click đắt không? | CTR, CPC |
| Click → Cài | Bao nhiêu người bấm rồi cài? Giá mỗi cài? | CVR, CPI |
| Cài → Ở lại | Người dùng có quay lại không? | Retention D1/D7/D30, Churn |
| Ở lại → Tiền | Mỗi người mang lại bao nhiêu doanh thu? | ARPU, ARPDAU, ARPPU, LTV |
| Tổng thể | Bỏ 1 đồng thu về mấy đồng? | ROI, ROAS, điểm hòa vốn |
Mẹo
Quy ước ký hiệu: D1/D7/D30 = ngày thứ 1/7/30 sau khi cài. 'Spend' = tiền chi cho ads. 'Install' = lượt cài. 'Revenue' = doanh thu (IAP + quảng cáo).
2Tầng click: CTR & CPC
Đây là tầng trên cùng — đánh giá bản thân mẩu quảng cáo (creative) và giá mua traffic.
CTR (Click-Through Rate) = số click / số lần hiển thị (impression). Cho biết creative có đủ hấp dẫn để người ta bấm không. CTR thấp thường là do hình/tiêu đề/định vị chưa trúng.
CPC (Cost Per Click) = tiền chi / số click. Cho biết mỗi cú bấm đắt bao nhiêu. CPC phụ thuộc mức cạnh tranh của tệp mục tiêu và chất lượng creative (CTR cao thường kéo CPC xuống).
Ví dụ tính CTR & CPC
Impression = 100.000
Click = 2.000
Spend = $600
CTR = 2.000 / 100.000 = 2%
CPC = $600 / 2.000 = $0,30Lưu ý
Bẫy thường gặp: CTR cao nhưng CVR (cài) thấp → creative câu click sai đối tượng (clickbait). CTR đẹp mà cuối phễu không ra install/doanh thu thì vô nghĩa.
3Tầng cài đặt: CVR & CPI
CVR (Conversion Rate) ở UA thường là tỷ lệ chuyển đổi từ một tầng sang tầng kế: click → install, hoặc install → mở app, hoặc install → trả phí. Luôn nói rõ CVR của bước nào để tránh nhầm.
CPI (Cost Per Install) = tiền chi / số install. Là chỉ số 'giá mua một người dùng' quen thuộc nhất. Nhưng CPI một mình KHÔNG nói lên lời/lỗ — phải so với giá trị người dùng mang lại (LTV).
Ví dụ tính CVR & CPI
Click = 2.000
Install = 500
Spend = $600
CVR (click→install) = 500 / 2.000 = 25%
CPI = $600 / 500 = $1,20Mẹo
Chuỗi liên kết: CPI = CPC / CVR(click→install). Ở ví dụ trên: $0,30 / 25% = $1,20. Nhìn công thức này thấy ngay: muốn giảm CPI, hoặc giảm CPC (creative tốt hơn) hoặc tăng CVR (store listing tốt hơn).
4Tầng giữ chân: Retention & Churn
Mua được user rồi nhưng họ mở một lần rồi biến mất thì tiền ads đổ sông. Retention đo tỷ lệ người dùng còn quay lại sau X ngày.
Retention Dn = số người còn mở app vào ngày thứ n / số người đã cài. Ba mốc hay xem: D1 (ngày hôm sau), D7 (một tuần), D30 (một tháng). D1 phản ánh ấn tượng đầu và onboarding; D7/D30 phản ánh giá trị dài hạn và thói quen.
Churn = tỷ lệ rời bỏ = 100% − Retention. Retention D1 = 30% nghĩa là Churn D1 = 70%. Churn cao ở D1 và Churn cao ở D30 là hai câu chuyện khác nhau.
Retention D1 thấp — hai nhóm nguyên nhân
| Nhóm nguyên nhân | Ví dụ |
|---|---|
| Chất lượng traffic (mua sai người) | Nhắm sai tệp, creative clickbait, incentivized installs — user không thật sự cần app. |
| Trải nghiệm trong app (sản phẩm/onboarding) | Mở app bị crash/chậm, onboarding rối, chưa thấy giá trị ngay, xin quyền dồn dập. |
Lưu ý
Đọc retention phải tách theo nguồn (source). Retention tổng thấp có thể do MỘT kênh rác kéo xuống, trong khi kênh tốt vẫn ổn. Trộn chung dễ ra quyết định sai.
5Tầng doanh thu: ARPU, ARPDAU, ARPPU, LTV
Nhóm này đo mỗi người dùng mang về bao nhiêu tiền. Khác nhau ở MẪU SỐ (chia cho ai) và KHUNG THỜI GIAN.
Ba cái tên ARP* đều bắt đầu bằng ARP = Average Revenue Per (doanh thu trung bình trên mỗi...), chỉ khác chữ cuối — tức khác mẫu số: ARPU (Average Revenue Per User) chia cho MỌI user; ARPDAU (Average Revenue Per Daily Active User) chia cho user HOẠT ĐỘNG trong ngày; ARPPU (Average Revenue Per Paying User) chia cho user CÓ TRẢ tiền. Nhớ chữ cuối là nhớ được mẫu số.
Mẹo
Vài viết tắt đi kèm: DAU (Daily Active Users) = số user hoạt động trong một ngày; IAP (In-App Purchase) = doanh thu từ mua trong app / subscription; IAA (In-App Advertising) = doanh thu từ quảng cáo hiển thị trong app.
Phân biệt các chỉ số doanh thu/người dùng
| Chỉ số | Công thức | Ý nghĩa |
|---|---|---|
| ARPU | Doanh thu / tổng số user | Trung bình mỗi user (kể cả người không trả) trong một kỳ. |
| ARPDAU | Doanh thu ngày / số user hoạt động ngày (DAU) | Kiếm tiền trung bình mỗi user hoạt động mỗi ngày — hay dùng cho app quảng cáo (IAA). |
| ARPPU | Doanh thu / số user CÓ TRẢ tiền | Trung bình mỗi người trả tiền chi ra — dùng cho IAP/subscription. |
| Rev/User | Doanh thu / user (theo ngữ cảnh) | Cách nói chung; luôn hỏi 'trên mẫu số nào, khung thời gian nào'. |
LTV (Lifetime Value) = tổng doanh thu một user mang lại trong suốt vòng đời dùng app. Đây là con số quyết định: chỉ khi LTV > CPI thì mua user mới có lãi.
Với app free có quảng cáo (IAA), LTV thường ước lượng từ ARPDAU và retention: cộng dồn doanh thu kỳ vọng qua các ngày user còn ở lại. Một xấp xỉ đơn giản: LTV ≈ ARPDAU × số ngày hoạt động trung bình (mà số ngày này chính là tổng retention theo thời gian).
Ví dụ ước lượng LTV cho app IAA
ARPDAU = $0,02
Số ngày hoạt động TB (từ đường retention) ≈ 20 ngày
LTV ≈ $0,02 × 20 = $0,40
Nếu CPI = $0,30 → LTV ($0,40) > CPI ($0,30) → có lãi
Biên lãi ≈ (0,40 − 0,30) / 0,30 ≈ 33%Retention tụt dần vs doanh thu cộng dồn (ví dụ app IAA, ARPDAU = $0,02)
Retention — % user còn quay lại
Tụt nhanh ở D1, sau đó phẳng dần — phần đuôi phẳng là user trung thành.
Doanh thu cộng dồn / user — tiến dần tới LTV
LTV ≈ $0.40 = doanh thu cộng dồn khi đường retention gần như đứng lại.
So với CPI = $0.30: LTV > CPI → có lãi (biên ≈ 33%).
Mẹo
Khác biệt cốt lõi: LTV là TỔNG cả vòng đời; ARPPU chỉ là trung bình MỖI người trả tiền trong một kỳ. Với app IAA, đa số user không trả xu nào (ARPPU không áp dụng kiểu IAP) nên phải đi từ ARPDAU × retention, không phải từ ARPPU.
6Tầng hiệu quả tổng: ROI, ROAS & điểm hòa vốn
Đây là tầng ra quyết định cuối: bỏ tiền ra có lời không, có nên scale hay tắt.
ROAS (Return On Ad Spend) = doanh thu từ ads / chi phí ads, thường tính theo mốc thời gian: ROAS D7 = doanh thu thu được TRONG 7 ngày đầu / spend. ROAS = 100% nghĩa là hòa vốn trong khung đó.
ROI (Return On Investment) = (lợi nhuận − chi phí) / chi phí. ROI tính trên LỢI NHUẬN ròng (đã trừ mọi chi phí), còn ROAS chỉ tính trên DOANH THU so với riêng tiền ads. Vì vậy ROAS thường cao hơn ROI.
Ví dụ ROAS D7 và điểm hòa vốn
Spend = $600
Revenue (D7) = $300
ROAS D7 = $300 / $600 = 50%
→ Sau 7 ngày mới thu lại nửa vốn.
Có ổn không? TÙY vào đường LTV:
- Nếu doanh thu còn tăng nhiều sau D7 (retention/LTV dài) → 50% D7 có thể vẫn lãi ở D30/D90.
- Nếu doanh thu gần như dừng sau D7 → 50% là lỗ, nên tắt.ROAS D7 vs điểm hòa vốn (ví dụ: Spend $600, Revenue D7 $300)
ROAS D7 = $300 / $600 = 50% → sau 7 ngày mới lấy lại 50% vốn.
Tốt hay xấu còn tùy: nếu doanh thu vẫn tăng mạnh sau D7 (retention/LTV dài) thì có thể lãi ở D30/D90; nếu doanh thu gần như dừng ở D7 thì đây là lỗ.
Ghi nhớ
Điểm hòa vốn (break-even): khi LTV = CPI. Muốn lãi X% thì cần LTV = CPI × (1 + X). Ví dụ CPI = $0,30, muốn lãi 20% → LTV cần ≥ $0,30 × 1,20 = $0,36.
Lưu ý
Vì sao ROAS D7 50% chưa kết luận được tốt/xấu? Vì nó phụ thuộc: (1) đường LTV còn kéo dài bao lâu, (2) biên lợi nhuận trên doanh thu, (3) mục tiêu (tăng trưởng chấp nhận hòa vốn sớm) và (4) dòng tiền chịu được bao lâu để đợi hoàn vốn.
7Bài tập tuần này
- Bài tập 1: Với bộ số liệu giả định được cung cấp, tự tính CPI, CVR, ROAS D7 và điểm hòa vốn của 1 campaign.
- Bài tập 2: Xây 1 Google Sheet tracking daily cho app: spend, installs, CPI, retention D1/D7, revenue, ROAS. Điền số giả định trong 7 ngày liên tục và viết 3 dòng nhận xét.
- Bài tập 3: Với app IAA, viết công thức LTV từ ARPDAU và retention, rồi tính ngược: nếu CPI là $0.30 thì LTV cần đạt bao nhiêu để có lãi 20%?
Lưu ý
Cách dùng: tự bấm máy ra đáp số trước, rồi mới đối chiếu lời giải bên dưới. Đọc lời giải trước thì cảm giác 'hiểu rồi' nhưng vào việc thật vẫn không tự dựng được công thức.
8Bài tập 1 — Đọc một campaign từ số liệu thô
Đề bài: campaign 'Summer_A' chạy 30 ngày với bộ số liệu dưới đây. Hãy tính CTR, CPC, CVR, CPI, ROAS D7, ROAS D30 và xác định điểm hòa vốn.
Số liệu campaign Summer_A
| Chỉ tiêu | Giá trị |
|---|---|
| Spend (tổng chi ads) | $1.500 |
| Impression | 250.000 |
| Click | 5.000 |
| Install | 1.200 |
| Revenue tích lũy đến D7 | $900 |
| Revenue tích lũy đến D30 | $1.800 |
Lời giải — tầng phễu trên
CTR = Click / Impression = 5.000 / 250.000 = 2%
CPC = Spend / Click = $1.500 / 5.000 = $0,30
CVR = Install / Click = 1.200 / 5.000 = 24%
CPI = Spend / Install = $1.500 / 1.200 = $1,25
Kiểm tra chéo: CPI = CPC / CVR = $0,30 / 24% = $1,25 ✓Lời giải — tầng hiệu quả & điểm hòa vốn
ROAS D7 = $900 / $1.500 = 60%
ROAS D30 = $1.800 / $1.500 = 120%
Quy về mỗi user (chia cho 1.200 install):
LTV D7 = $900 / 1.200 = $0,75
LTV D30 = $1.800 / 1.200 = $1,50
Điểm hòa vốn: cần LTV = CPI = $1,25
LTV D7 = $0,75 < $1,25 → sau 7 ngày vẫn đang lỗ
LTV D30 = $1,50 > $1,25 → đã có lãi trước mốc D30
Biên lãi tại D30 = (1,50 − 1,25) / 1,25 = 20%Hòa vốn rơi vào khoảng ngày nào? Cần doanh thu tích lũy chạm $1.500. Từ D7 ($900) đến D30 ($1.800) doanh thu tăng thêm $900 trong 23 ngày, cần thêm $600 → nội suy tuyến tính: 600/900 × 23 ≈ 15 ngày, tức khoảng D22.
Mẹo
Nhưng đường doanh thu tích lũy thực tế là đường cong lõm — tăng nhanh những ngày đầu rồi chậm dần theo retention, chứ không tuyến tính. Nên D22 là ước lượng THẬN TRỌNG; hòa vốn thật thường đến sớm hơn. Muốn số chính xác thì phải nhìn doanh thu tích lũy theo từng ngày của cohort, không nội suy 2 điểm.
Lưu ý
Kết luận đúng cho campaign này: ROAS D7 = 60% nhìn qua như lỗ, nhưng campaign vẫn lãi 20% ở D30. Đây chính là lý do không được tắt campaign chỉ vì ROAS D7 < 100% — điều kiện đi kèm là bạn phải chịu được việc đọng vốn ~3 tuần.
9Bài tập 2 — Sheet tracking 7 ngày
Đề bài: dựng sheet theo dõi hằng ngày rồi điền 7 ngày số giả định và viết 3 dòng nhận xét. Dưới đây là cấu trúc cột tối thiểu — cột nào tính được bằng công thức thì KHÔNG gõ tay, để tránh sai lệch khi sửa số.
Cấu trúc cột của sheet
| Cột | Nguồn | Công thức (dòng 2) |
|---|---|---|
| A. Ngày | Nhập tay | — |
| B. Spend | Ads manager | — |
| C. Installs | Ads manager / MMP | — |
| D. CPI | Tính | =IF(C2=0;0;B2/C2) |
| E. Retention D1 | MMP / analytics | — |
| F. Retention D7 | MMP / analytics | — |
| G. Revenue trong ngày | Analytics | — |
| H. Spend tích lũy | Tính | =SUM($B$2:B2) |
| I. Revenue tích lũy | Tính | =SUM($G$2:G2) |
| J. ROAS tích lũy | Tính | =IF(H2=0;0;I2/H2) |
Số liệu mẫu 7 ngày (đã điền)
| Ngày | Spend | Installs | CPI | Ret D1 | Ret D7 | Rev ngày | Rev tích lũy | ROAS tích lũy |
|---|---|---|---|---|---|---|---|---|
| D1 | $100 | 100 | $1,00 | 32% | — | $12 | $12 | 12,0% |
| D2 | $150 | 143 | $1,05 | 31% | — | $20 | $32 | 12,8% |
| D3 | $200 | 182 | $1,10 | 30% | — | $30 | $62 | 13,8% |
| D4 | $300 | 250 | $1,20 | 27% | — | $42 | $104 | 13,9% |
| D5 | $400 | 308 | $1,30 | 25% | — | $55 | $159 | 13,8% |
| D6 | $500 | 357 | $1,40 | 23% | — | $66 | $225 | 13,6% |
| D7 | $600 | 400 | $1,50 | 21% | 8% | $80 | $305 | 13,6% |
- Nhận xét 1 — Giá mua user đang xấu đi: spend tăng 6 lần ($100 → $600) thì CPI tăng 50% ($1,00 → $1,50). Đẩy ngân sách nhanh buộc hệ thống mở rộng sang tệp kém liên quan hơn, nên mỗi install đắt dần.
- Nhận xét 2 — Không chỉ đắt hơn mà còn kém hơn: Retention D1 rơi 32% → 21% đúng cùng nhịp tăng spend. Nếu chỉ đắt lên thì còn cân nhắc; đắt lên VÀ user ở lại ít hơn nghĩa là chất lượng traffic đang loãng, không phải chỉ do cạnh tranh giá.
- Nhận xét 3 — Hành động: ROAS tích lũy chững quanh 13,6–13,9% rồi đi ngang/giảm → tiền đổ thêm không tạo thêm hiệu quả. Nên dừng scale, tách số theo nguồn/creative để tìm phần còn tốt, rồi mới tăng ngân sách trở lại theo từng bậc nhỏ (~20%/lần).
Lưu ý
Bẫy quan trọng của chính cái sheet này: ROAS tích lũy theo NGÀY LỊCH trộn lẫn cohort cũ và mới. Ngày D7 có 400 install vừa vào (chưa kịp sinh doanh thu) nằm chung mẫu số với cohort D1 đã chạy 7 ngày → ROAS bị kéo thấp một cách giả tạo. Con số 13,6% KHÔNG có nghĩa app chỉ hoàn được 13,6% vốn. Muốn kết luận lời/lỗ phải đọc theo cohort: nhóm cài ngày D1 sau 7 ngày hoàn được bao nhiêu %.
Mẹo
Nâng cấp sheet khi đã quen: thêm một tab cohort — hàng là ngày cài, cột là D0, D1, D3, D7, D14, D30, ô là doanh thu tích lũy/user của cohort đó. Đó mới là bảng dùng để quyết định scale hay tắt.
10Bài tập 3 — LTV từ ARPDAU và bài toán ngược
Đề bài: với app IAA, viết công thức LTV từ ARPDAU và retention, rồi tính ngược — nếu CPI = $0,30 thì LTV cần đạt bao nhiêu để có lãi 20%?
Phần 1 — Dựng công thức
Mỗi ngày user còn hoạt động thì mang về trung bình ARPDAU.
Xác suất user còn hoạt động ở ngày thứ n chính là Retention(n).
LTV = ARPDAU × [ R(0) + R(1) + R(2) + ... + R(N) ]
Tổng trong ngoặc = số ngày hoạt động trung bình của một user
= 'vòng đời' tính bằng ngày (average lifetime)
Viết gọn: LTV ≈ ARPDAU × Vòng đời (ngày)Mẹo
Điểm dễ sai: vòng đời KHÔNG phải 'user dùng app bao nhiêu ngày rồi bỏ', mà là TỔNG các tỷ lệ retention cộng lại (diện tích dưới đường retention). Retention D1 30%, D7 12%, D30 5% có thể cộng dồn thành ~15–20 ngày hoạt động, dù rất ít user thật sự mở app đủ 30 ngày.
Phần 2 — Tính ngược từ CPI
Lãi 20% nghĩa là mỗi $1 bỏ ra phải thu về $1,20:
LTV cần ≥ CPI × (1 + 20%) = $0,30 × 1,20 = $0,36
Đổi ra yêu cầu vận hành — cần đạt $0,36 bằng cách nào?
Nếu ARPDAU = $0,02:
Vòng đời cần = $0,36 / $0,02 = 18 ngày hoạt động
Nếu vòng đời chỉ đạt 12 ngày:
ARPDAU cần = $0,36 / 12 = $0,03 (phải tăng 50%)Ý nghĩa của bài toán ngược: một mục tiêu lợi nhuận luôn quy được về HAI đòn bẩy cụ thể — kiếm nhiều tiền hơn mỗi ngày hoạt động (ARPDAU: mật độ quảng cáo, giá eCPM, vị trí đặt ads) hoặc giữ user ở lại lâu hơn (retention: onboarding, nội dung, thông báo). Nếu cả hai đều không nhích được thì đòn bẩy còn lại là kéo CPI xuống.
Lưu ý
Lưu ý cách đọc đề: 'lãi 20%' ở đây là lãi trên chi phí (ROI 20%) → LTV = CPI × 1,20. Đừng nhầm với 'ROAS 120%' — ROAS chỉ so doanh thu với riêng tiền ads, chưa trừ chi phí khác. Trong thực tế còn phải trừ hoa hồng store 15–30%, nên LTV ròng về tay bạn thấp hơn LTV gộp: muốn lãi 20% thật thì mốc cần đạt còn cao hơn $0,36.
Câu hỏi tự kiểm tra
Trả lời bằng lời (nói to hoặc viết ra) không nhìn tài liệu. Chỗ nào bí thì quay lại phần tương ứng ở trên.
- 1CTR, CPC, CPI, CVR — mỗi chỉ số đo tầng nào của phễu và tính bằng công thức gì?
- 2ROAS D7 đạt 50% là tốt hay xấu? Câu trả lời phụ thuộc những yếu tố nào?
- 3LTV và ARPPU khác nhau thế nào với app free có quảng cáo (IAA)?
- 4Retention D1 thấp thường do 2 nhóm nguyên nhân nào?
- 5Với app IAA, viết công thức LTV từ ARPDAU và retention.
- 6Nếu CPI là $0.30 thì LTV cần đạt bao nhiêu để có lãi 20%?
- 7ROI và ROAS khác nhau ở điểm gì? Khi nào một campaign 'ROAS < 100%' vẫn có thể chấp nhận?
Checklist tự đánh giá