🎯 Mục tiêu bài học
- Hiểu khái niệm Conversion Funnel và tầm quan trọng trong E-commerce
- Xây dựng funnel phân tích từ Page View → Cart → Purchase bằng SQL
- Tính toán drop-off rate tại mỗi bước và xác định bottleneck
- Phân tích funnel theo segments: device, traffic source, category
- Đề xuất action items cải thiện conversion rate
| Thông tin | Chi tiết |
|---|---|
| ⏱️ Thời lượng | 60 phút |
| 📖 Chủ đề chính | Funnel Analysis, Drop-off, Conversion Optimization |
| 💡 Kiến thức cần có | Bài 01-03, SQL trung cấp |
| 🎯 Output | Xây dựng conversion funnel dashboard cho ShopVN |
📖 Thuật ngữ quan trọng
| Thuật ngữ | Tiếng Việt | Mô tả |
|---|---|---|
| Funnel | Phễu chuyển đổi | Chuỗi các bước từ nhận biết đến mua hàng |
| Drop-off Rate | Tỷ lệ rơi rụng | Phần trăm người rời khỏi funnel ở mỗi bước |
| Top of Funnel | Đầu phễu | Giai đoạn nhận biết — traffic, page views |
| Bottom of Funnel | Cuối phễu | Giai đoạn quyết định — checkout, payment |
| Micro Conversion | Chuyển đổi nhỏ | Hành động trung gian: view product, add to cart |
| Macro Conversion | Chuyển đổi chính | Hành động cuối cùng: purchase |
| Session | Phiên truy cập | Một lượt truy cập liên tục trên website/app |
| Bounce Rate | Tỷ lệ thoát | Phần trăm session chỉ xem 1 trang rồi rời đi |
| Checkout Rate | Tỷ lệ thanh toán | Phần trăm giỏ hàng đến bước checkout |
| Attribution | Phân bổ | Xác định kênh nào đóng góp vào conversion |
Checkpoint
Funnel là chuỗi bước từ Browse đến Purchase. Drop-off Rate đo phần trăm khách rời đi ở mỗi bước. Bounce Rate là tỷ lệ khách chỉ xem 1 trang. Macro Conversion = Purchase, Micro Conversion = các bước trung gian (view, add to cart).
🔍 Conversion Funnel là gì?
Phễu chuyển đổi E-commerce
E-commerce Conversion Funnel
Benchmark Funnel Rates
| Bước | Từ → Đến | Benchmark | ShopVN |
|---|---|---|---|
| Visit → View | Session → Product Page | 40-60% | ~50% |
| View → Cart | Product Page → Add to Cart | 8-15% | ~10% |
| Cart → Checkout | Cart → Bắt đầu thanh toán | 30-50% | ~40% |
| Checkout → Purchase | Thanh toán → Hoàn tất | 60-80% | ~70% |
| Overall | Visit → Purchase | 2-5% | ~3.5% |
Cải thiện 1% conversion rate (từ 3.5% lên 4.5%) ở ShopVN có thể tăng doanh thu ~140 tỷ VND/năm mà không cần tăng traffic. Đây là lý do Funnel Analysis là skill #1 mà mọi E-commerce DA cần thành thạo.
📊 Xây dựng Funnel bằng SQL
Step 1: Đếm sessions ở mỗi bước
1-- Funnel Analysis: đếm unique sessions ở mỗi bước2WITH funnel AS (3 SELECT4 -- Step 1: Tất cả sessions5 COUNT(DISTINCT session_id) AS total_sessions,67 -- Step 2: Sessions có xem Product8 COUNT(DISTINCT CASE9 WHEN page_type = 'Product' THEN session_id10 END) AS product_views,1112 -- Step 3: Sessions có vào Cart13 COUNT(DISTINCT CASE14 WHEN page_type = 'Cart' THEN session_id15 END) AS cart_sessions,1617 -- Step 4: Sessions có vào Checkout18 COUNT(DISTINCT CASE19 WHEN page_type = 'Checkout' THEN session_id20 END) AS checkout_sessions21 FROM fact_page_views22 WHERE YEAR(view_date) = 202423)24SELECT25 total_sessions,26 product_views,27 cart_sessions,28 checkout_sessions,29 -- Drop-off rates30 ROUND((1 - product_views * 1.0 / total_sessions) * 100, 1) AS visit_to_view_dropoff,31 ROUND((1 - cart_sessions * 1.0 / product_views) * 100, 1) AS view_to_cart_dropoff,32 ROUND((1 - checkout_sessions * 1.0 / cart_sessions) * 100, 1) AS cart_to_checkout_dropoff33FROM funnel;Step 2: Kết hợp với Purchase data
1-- Full funnel bao gồm Purchase2WITH page_funnel AS (3 SELECT4 MONTH(view_date) AS month,5 COUNT(DISTINCT session_id) AS sessions,6 COUNT(DISTINCT CASE WHEN page_type = 'Product'7 THEN session_id END) AS product_views,8 COUNT(DISTINCT CASE WHEN page_type = 'Cart'9 THEN session_id END) AS cart_sessions,10 COUNT(DISTINCT CASE WHEN page_type = 'Checkout'11 THEN session_id END) AS checkout_sessions12 FROM fact_page_views13 WHERE YEAR(view_date) = 202414 GROUP BY MONTH(view_date)15),16order_data AS (17 SELECT18 MONTH(order_date) AS month,19 COUNT(DISTINCT order_id) AS purchases20 FROM fact_orders21 WHERE YEAR(order_date) = 202422 AND status NOT IN ('Cancelled')23 GROUP BY MONTH(order_date)24)25SELECT26 f.month,27 f.sessions,28 f.product_views,29 f.cart_sessions,30 f.checkout_sessions,31 o.purchases,32 ROUND(o.purchases * 100.0 / f.sessions, 2) AS overall_conversion_pct33FROM page_funnel f34JOIN order_data o ON f.month = o.month35ORDER BY f.month;Checkpoint
Funnel Analysis sử dụng page_type trong fact_page_views để đếm sessions ở mỗi bước. Drop-off rate = 1 - (bước sau / bước trước). Kết hợp fact_page_views với fact_orders để có full funnel từ Visit đến Purchase.
📱 Funnel theo Segments
Funnel theo Device Type
1-- Funnel theo device type (Mobile vs Desktop)2WITH device_funnel AS (3 SELECT4 device_type,5 COUNT(DISTINCT session_id) AS sessions,6 COUNT(DISTINCT CASE WHEN page_type = 'Product'7 THEN session_id END) AS product_views,8 COUNT(DISTINCT CASE WHEN page_type = 'Cart'9 THEN session_id END) AS cart_sessions,10 COUNT(DISTINCT CASE WHEN page_type = 'Checkout'11 THEN session_id END) AS checkout_sessions12 FROM fact_page_views13 WHERE YEAR(view_date) = 202414 GROUP BY device_type15),16device_orders AS (17 SELECT18 device_type,19 COUNT(DISTINCT order_id) AS purchases20 FROM fact_orders21 WHERE YEAR(order_date) = 202422 AND status NOT IN ('Cancelled')23 GROUP BY device_type24)25SELECT26 f.device_type,27 f.sessions,28 f.product_views,29 f.cart_sessions,30 o.purchases,31 ROUND(o.purchases * 100.0 / f.sessions, 2) AS conversion_rate_pct,32 ROUND(f.cart_sessions * 100.0 / f.product_views, 2) AS add_to_cart_rate_pct33FROM device_funnel f34JOIN device_orders o ON f.device_type = o.device_type35ORDER BY f.sessions DESC;Ở Việt Nam, Mobile chiếm 70-80% traffic nhưng thường có conversion rate thấp hơn Desktop 30-50%. Lý do: màn hình nhỏ gây khó khăn khi so sánh sản phẩm, checkout form phức tạp trên mobile, kết nối mạng không ổn định.
Funnel theo Traffic Source
1-- Funnel theo traffic source2SELECT3 pv.traffic_source,4 COUNT(DISTINCT pv.session_id) AS sessions,5 COUNT(DISTINCT CASE WHEN pv.page_type = 'Product'6 THEN pv.session_id END) AS product_views,7 COUNT(DISTINCT CASE WHEN pv.page_type = 'Cart'8 THEN pv.session_id END) AS cart_sessions,9 ROUND(10 COUNT(DISTINCT CASE WHEN pv.page_type = 'Cart' THEN pv.session_id END) * 100.011 / NULLIF(COUNT(DISTINCT CASE WHEN pv.page_type = 'Product' THEN pv.session_id END), 0)12 , 2) AS add_to_cart_rate_pct13FROM fact_page_views pv14WHERE YEAR(pv.view_date) = 202415GROUP BY pv.traffic_source16ORDER BY sessions DESC;Benchmark theo Traffic Source
| Source | Sessions | Conversion Rate | Đặc điểm |
|---|---|---|---|
| Direct | 20-30% | Cao nhất (5-8%) | Khách quen, đã biết brand |
| Organic | 15-25% | Cao (4-6%) | Tìm kiếm chủ đích |
| Paid | 20-30% | Trung bình (3-5%) | Chi phí CAC |
| Social | 15-20% | Thấp (1-3%) | Browse nhiều, mua ít |
| Affiliate | 5-10% | Trung bình (3-5%) | Phụ thuộc affiliate quality |
| 3-5% | Cao nhất (6-10%) | Khách đã biết, targeted |
🔍 Drop-off Analysis
Xác định Bottleneck
Drop-off Analysis — Tìm điểm nghẽn
Tại bước View → Add to Cart, khoảng 90% khách rời đi. Đây là drop-off lớn nhất và cũng là nơi có cơ hội cải thiện nhiều nhất. Các nguyên nhân phổ biến:
- 📱 UX/UI sản phẩm không hấp dẫn
- 💰 Giá cao hơn đối thủ
- 📸 Ảnh sản phẩm kém chất lượng
- ⭐ Rating thấp hoặc ít review
- 📦 Phí ship hiển thị không rõ ràng
Cart Abandonment Analysis
1-- Cart Abandonment: sessions có vào Cart nhưng không Checkout2WITH cart_analysis AS (3 SELECT4 session_id,5 MAX(CASE WHEN page_type = 'Cart' THEN 1 ELSE 0 END) AS reached_cart,6 MAX(CASE WHEN page_type = 'Checkout' THEN 1 ELSE 0 END) AS reached_checkout,7 MAX(device_type) AS device,8 MAX(traffic_source) AS source9 FROM fact_page_views10 WHERE YEAR(view_date) = 202411 GROUP BY session_id12 HAVING MAX(CASE WHEN page_type = 'Cart' THEN 1 ELSE 0 END) = 113)14SELECT15 device,16 COUNT(*) AS cart_sessions,17 SUM(reached_checkout) AS checkout_sessions,18 COUNT(*) - SUM(reached_checkout) AS abandoned_carts,19 ROUND(20 (COUNT(*) - SUM(reached_checkout)) * 100.0 / COUNT(*), 121 ) AS cart_abandonment_rate_pct22FROM cart_analysis23GROUP BY device24ORDER BY cart_sessions DESC;Nguyên nhân Cart Abandonment phổ biến
| Nguyên nhân | Tỷ lệ | Giải pháp |
|---|---|---|
| Phí ship quá cao | 48% | Free ship cho đơn từ 300K |
| Yêu cầu tạo tài khoản | 24% | Guest checkout |
| Checkout quá phức tạp | 18% | Giảm form fields |
| Không tin tưởng thanh toán | 17% | Hiển thị trust badges |
| Thời gian giao quá lâu | 16% | Hiển thị delivery estimate |
| Vào xem giá, chưa muốn mua | 58% | Retargeting ads, email reminder |
📋 Tổng kết
Kiến thức đã học
| Chủ đề | Nội dung chính |
|---|---|
| Conversion Funnel | Visit → View → Cart → Checkout → Purchase |
| Drop-off Rates | Mỗi bước mất 30-90% khách hàng |
| Funnel SQL | Sử dụng CASE WHEN + COUNT DISTINCT trên page_type |
| Segment Analysis | Mobile vs Desktop, Traffic source differences |
| Cart Abandonment | 60-80% giỏ hàng bị bỏ, nguyên nhân and giải pháp |
| Bottleneck | View → Cart là drop-off lớn nhất (~90%) |
Key Takeaways
- ✅ Funnel Analysis là kỹ năng #1 của E-commerce DA — mọi quyết định dựa vào funnel
- ✅ Drop-off lớn nhất ở bước View → Cart — cải thiện 1% ở đây tạo impact lớn
- ✅ Mobile conversion thấp hơn Desktop — focus UX mobile optimization
- ✅ Cart Abandonment 60-80% — retargeting và free ship là giải pháp hiệu quả
Bài tiếp theo: Customer Segmentation →
🎉 Bạn đã thành thạo Funnel Analysis! Bài tiếp theo sẽ deep-dive vào Customer Segmentation với RFM.
