MinAI - Về trang chủ
Lý thuyết
4/1360 phút
Đang tải...

Funnel Analysis

Phân tích phễu chuyển đổi Browse → View → Cart → Purchase, drop-off analysis và tối ưu conversion

0

🎯 Mục tiêu bài học

TB5 min
Sau bài học này, bạn sẽ:
  • 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 bài học
Thông tinChi tiết
⏱️ Thời lượng60 phút
📖 Chủ đề chínhFunnel Analysis, Drop-off, Conversion Optimization
💡 Kiến thức cần cóBài 01-03, SQL trung cấp
🎯 OutputXây dựng conversion funnel dashboard cho ShopVN
1

📖 Thuật ngữ quan trọng

TB5 min
Thuật ngữTiếng ViệtMô tả
FunnelPhễu chuyển đổiChuỗi các bước từ nhận biết đến mua hàng
Drop-off RateTỷ lệ rơi rụngPhần trăm người rời khỏi funnel ở mỗi bước
Top of FunnelĐầu phễuGiai đoạn nhận biết — traffic, page views
Bottom of FunnelCuối phễuGiai đoạn quyết định — checkout, payment
Micro ConversionChuyển đổi nhỏHành động trung gian: view product, add to cart
Macro ConversionChuyển đổi chínhHành động cuối cùng: purchase
SessionPhiên truy cậpMột lượt truy cập liên tục trên website/app
Bounce RateTỷ lệ thoátPhần trăm session chỉ xem 1 trang rồi rời đi
Checkout RateTỷ lệ thanh toánPhần trăm giỏ hàng đến bước checkout
AttributionPhâ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).

2

🔍 Conversion Funnel là gì?

TB5 min

Phễu chuyển đổi E-commerce

E-commerce Conversion Funnel

👁️Visit (Sessions)
📱Product View
🛒Add to Cart
💳Checkout
Purchase

Benchmark Funnel Rates

BướcTừ → ĐếnBenchmarkShopVN
Visit → ViewSession → Product Page40-60%~50%
View → CartProduct Page → Add to Cart8-15%~10%
Cart → CheckoutCart → Bắt đầu thanh toán30-50%~40%
Checkout → PurchaseThanh toán → Hoàn tất60-80%~70%
OverallVisit → Purchase2-5%~3.5%
Tại sao Funnel Analysis quan trọng?

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.

3

📊 Xây dựng Funnel bằng SQL

TB5 min

Step 1: Đếm sessions ở mỗi bước

SQL
1-- Funnel Analysis: đếm unique sessions ở mỗi bước
2WITH funnel AS (
3 SELECT
4 -- Step 1: Tất cả sessions
5 COUNT(DISTINCT session_id) AS total_sessions,
6
7 -- Step 2: Sessions có xem Product
8 COUNT(DISTINCT CASE
9 WHEN page_type = 'Product' THEN session_id
10 END) AS product_views,
11
12 -- Step 3: Sessions có vào Cart
13 COUNT(DISTINCT CASE
14 WHEN page_type = 'Cart' THEN session_id
15 END) AS cart_sessions,
16
17 -- Step 4: Sessions có vào Checkout
18 COUNT(DISTINCT CASE
19 WHEN page_type = 'Checkout' THEN session_id
20 END) AS checkout_sessions
21 FROM fact_page_views
22 WHERE YEAR(view_date) = 2024
23)
24SELECT
25 total_sessions,
26 product_views,
27 cart_sessions,
28 checkout_sessions,
29 -- Drop-off rates
30 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_dropoff
33FROM funnel;

Step 2: Kết hợp với Purchase data

SQL
1-- Full funnel bao gồm Purchase
2WITH page_funnel AS (
3 SELECT
4 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_sessions
12 FROM fact_page_views
13 WHERE YEAR(view_date) = 2024
14 GROUP BY MONTH(view_date)
15),
16order_data AS (
17 SELECT
18 MONTH(order_date) AS month,
19 COUNT(DISTINCT order_id) AS purchases
20 FROM fact_orders
21 WHERE YEAR(order_date) = 2024
22 AND status NOT IN ('Cancelled')
23 GROUP BY MONTH(order_date)
24)
25SELECT
26 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_pct
33FROM page_funnel f
34JOIN order_data o ON f.month = o.month
35ORDER 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.

4

📱 Funnel theo Segments

TB5 min

Funnel theo Device Type

SQL
1-- Funnel theo device type (Mobile vs Desktop)
2WITH device_funnel AS (
3 SELECT
4 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_sessions
12 FROM fact_page_views
13 WHERE YEAR(view_date) = 2024
14 GROUP BY device_type
15),
16device_orders AS (
17 SELECT
18 device_type,
19 COUNT(DISTINCT order_id) AS purchases
20 FROM fact_orders
21 WHERE YEAR(order_date) = 2024
22 AND status NOT IN ('Cancelled')
23 GROUP BY device_type
24)
25SELECT
26 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_pct
33FROM device_funnel f
34JOIN device_orders o ON f.device_type = o.device_type
35ORDER BY f.sessions DESC;
Mobile vs Desktop Insight

Ở 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

SQL
1-- Funnel theo traffic source
2SELECT
3 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.0
11 / NULLIF(COUNT(DISTINCT CASE WHEN pv.page_type = 'Product' THEN pv.session_id END), 0)
12 , 2) AS add_to_cart_rate_pct
13FROM fact_page_views pv
14WHERE YEAR(pv.view_date) = 2024
15GROUP BY pv.traffic_source
16ORDER BY sessions DESC;

Benchmark theo Traffic Source

SourceSessionsConversion RateĐặc điểm
Direct20-30%Cao nhất (5-8%)Khách quen, đã biết brand
Organic15-25%Cao (4-6%)Tìm kiếm chủ đích
Paid20-30%Trung bình (3-5%)Chi phí CAC
Social15-20%Thấp (1-3%)Browse nhiều, mua ít
Affiliate5-10%Trung bình (3-5%)Phụ thuộc affiliate quality
Email3-5%Cao nhất (6-10%)Khách đã biết, targeted
5

🔍 Drop-off Analysis

TB5 min

Xác định Bottleneck

Drop-off Analysis — Tìm điểm nghẽn

🔴View→Cart Drop: 90%
🟡Cart→Checkout: 60%
🟢Checkout→Buy: 30%
Bottleneck lớn nhất: View → Cart (Drop 90%)

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

SQL
1-- Cart Abandonment: sessions có vào Cart nhưng không Checkout
2WITH cart_analysis AS (
3 SELECT
4 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 source
9 FROM fact_page_views
10 WHERE YEAR(view_date) = 2024
11 GROUP BY session_id
12 HAVING MAX(CASE WHEN page_type = 'Cart' THEN 1 ELSE 0 END) = 1
13)
14SELECT
15 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(*), 1
21 ) AS cart_abandonment_rate_pct
22FROM cart_analysis
23GROUP BY device
24ORDER BY cart_sessions DESC;

Nguyên nhân Cart Abandonment phổ biến

Nguyên nhânTỷ lệGiải pháp
Phí ship quá cao48%Free ship cho đơn từ 300K
Yêu cầu tạo tài khoản24%Guest checkout
Checkout quá phức tạp18%Giảm form fields
Không tin tưởng thanh toán17%Hiển thị trust badges
Thời gian giao quá lâu16%Hiển thị delivery estimate
Vào xem giá, chưa muốn mua58%Retargeting ads, email reminder
6

📋 Tổng kết

TB5 min

Kiến thức đã học

Chủ đềNội dung chính
Conversion FunnelVisit → View → Cart → Checkout → Purchase
Drop-off RatesMỗi bước mất 30-90% khách hàng
Funnel SQLSử dụng CASE WHEN + COUNT DISTINCT trên page_type
Segment AnalysisMobile vs Desktop, Traffic source differences
Cart Abandonment60-80% giỏ hàng bị bỏ, nguyên nhân and giải pháp
BottleneckView → Cart là drop-off lớn nhất (~90%)

Key Takeaways

  1. Funnel Analysis là kỹ năng #1 của E-commerce DA — mọi quyết định dựa vào funnel
  2. Drop-off lớn nhất ở bước View → Cart — cải thiện 1% ở đây tạo impact lớn
  3. Mobile conversion thấp hơn Desktop — focus UX mobile optimization
  4. 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.