Tổng quan plugin EzyRating
Back to ezyratingEzyRating là plugin dành cho EzyPlatform, kết hợp hai nhóm chức năng thường được triển khai riêng biệt: thu thập hành vi người dùng và quản lý đánh giá nội dung. Plugin có thể ghi nhận lượt xem, lượt nhấp, độ sâu cuộn, thao tác thêm vào giỏ hàng, đồng thời hỗ trợ chấm điểm, phản hồi và tổng hợp số liệu phục vụ dashboard quản trị.
Thay vì chỉ cung cấp một widget chấm sao, EzyRating xây dựng một luồng dữ liệu hoàn chỉnh: tiếp nhận sự kiện từ trình duyệt, lưu lịch sử, tổng hợp thành các chỉ số và cung cấp giao diện quản trị để theo dõi kết quả.
EzyRating giải quyết bài toán gì?
Một website thương mại điện tử hoặc nội dung thường cần trả lời các câu hỏi như:
- Sản phẩm hoặc bài viết nào đang được quan tâm?
- Người dùng đến từ kênh nào?
- Họ sử dụng thiết bị và trình duyệt gì?
- Bao nhiêu lượt truy cập thực sự tạo ra tương tác?
- Có bao nhiêu lượt thêm vào giỏ hàng, đặt hàng và thanh toán?
- Điểm đánh giá trung bình của từng đối tượng là bao nhiêu?
- Đánh giá nào có phản hồi chi tiết?
- Chỉ số hôm nay tăng hay giảm so với giai đoạn trước?
EzyRating thu thập dữ liệu cần thiết để trả lời các câu hỏi trên và tổ chức chúng thành ba lớp:
- Dữ liệu lịch sử chi tiết.
- Dữ liệu tổng hợp theo đối tượng.
- Dữ liệu thống kê toàn thời gian, theo ngày và theo thời gian thực.
Kiến trúc tổng quát
Plugin được chia thành ba phần chính:
- SDK dùng chung định nghĩa mô hình dữ liệu, repository, dịch vụ nghiệp vụ, bộ lọc và quy tắc phân trang.
- Web plugin tiếp nhận hành vi và đánh giá từ website, đồng thời cung cấp thành phần giao diện để hiển thị hoặc gửi dữ liệu.
- Admin plugin cung cấp dashboard, màn hình quản lý đánh giá, lịch sử hành động, số liệu tổng hợp và cấu hình hệ thống.
flowchart LR
A[Trình duyệt người dùng] --> B[Web plugin]
B --> C[Lịch sử hành động]
B --> D[Đánh giá của người dùng]
C --> E[Tiến trình tổng hợp]
D --> E
E --> F[Thống kê toàn thời gian]
E --> G[Thống kê theo ngày]
E --> H[Thống kê thời gian thực]
F --> I[Admin plugin]
G --> I
H --> I
D --> I
Thiết kế này tách luồng ghi dữ liệu khỏi luồng báo cáo. Request từ người dùng chỉ cần được kiểm tra và lưu lại; các phép tổng hợp phức tạp có thể được thực hiện sau bằng tiến trình nền.
Theo dõi hành vi người dùng
Web plugin có thể tự động gửi các sự kiện phổ biến từ trình duyệt, bao gồm:
-
VIEW: người dùng đang xem trang. -
CLICK: người dùng nhấp vào liên kết, nút hoặc phần tử tương tác. -
SCROLL: người dùng cuộn trang, kèm phần trăm độ sâu cuộn. -
UNFOCUS: người dùng chuyển sang tab khác hoặc rời trạng thái đang xem. -
ADD_TO_CART: người dùng thêm sản phẩm vào giỏ hàng.
Mỗi sự kiện có thể chứa thông tin về đối tượng được tương tác, đường dẫn trang, nguồn gửi, phần tử kích hoạt và metadata bổ sung.
Ở request đầu tiên, plugin còn có thể thu nhận các tham số chiến dịch như UTM hoặc mã nhận diện quảng cáo. Danh sách tham số được phép lưu do quản trị viên cấu hình, giúp tránh tiếp nhận tùy ý toàn bộ query string.
Từ request HTTP, hệ thống bổ sung một số ngữ cảnh:
- Tài khoản người dùng nếu đã đăng nhập.
- Địa chỉ IP.
- User-Agent.
- Tên miền.
- Referrer.
- Một số cookie đã được cấu hình cho phép lưu.
Dữ liệu này là cơ sở để phân tích nguồn truy cập, thiết bị, trình duyệt, khách duy nhất và mức độ tương tác.
Kiểm soát tần suất gửi sự kiện
Việc tự động gửi sự kiện có thể tạo ra nhiều request, đặc biệt với lượt xem và cuộn trang. EzyRating xử lý vấn đề này ở cả phía trình duyệt và máy chủ.
Phía trình duyệt giới hạn tần suất gửi các sự kiện lặp lại. Phía máy chủ tiếp tục kiểm tra thời điểm gần nhất của một hành động có cùng ngữ cảnh. Nếu request mới đến quá sớm, hệ thống có thể từ chối ghi nhận.
Khoảng thời gian giữa các lần gửi và thời gian chờ chống gửi lặp đều có thể cấu hình. Lượt xem cũng có ngưỡng riêng vì đây là loại sự kiện thường được gửi định kỳ trong lúc người dùng còn ở trên trang.
Cách tiếp cận hai lớp giúp giảm lưu lượng không cần thiết nhưng không đặt toàn bộ niềm tin vào JavaScript phía khách.
Đánh giá và phản hồi
EzyRating cho phép người dùng đánh giá nhiều loại đối tượng khác nhau, chẳng hạn sản phẩm hoặc bài viết. Một đánh giá được xác định bởi các thành phần chính:
- Loại đối tượng.
- ID đối tượng.
- Loại đánh giá.
- Nguồn đánh giá.
- Người thực hiện.
- Điểm số.
Mỗi người dùng chỉ có một bản đánh giá hiện tại ứng với cùng tổ hợp khóa trên. Khi gửi lại, bản ghi hiện tại được cập nhật thay vì tạo ra nhiều trạng thái cạnh tranh.
Plugin đồng thời lưu lịch sử thay đổi. Nhờ vậy, hệ thống vừa có thể truy vấn nhanh điểm hiện tại, vừa giữ được dấu vết của những lần chỉnh sửa trước đó.
Ngoài điểm số, người dùng có thể gửi phản hồi dạng nội dung. Phản hồi được kiểm tra độ dài và cấu trúc HTML; các thẻ có nguy cơ cao như
script hoặc iframe không được chấp nhận.EzyRating cũng hỗ trợ thao tác bật/tắt cho những dạng đánh giá nhị phân như thích, yêu thích hoặc đánh dấu. Khi bật, giá trị được đặt về một; khi tắt, giá trị trở về không.
Người dùng đăng nhập và người dùng ẩn danh
Các luồng đánh giá có ba chế độ truy cập đáng chú ý:
- Chỉ người dùng đã đăng nhập được đánh giá.
- Endpoint có thể nhận cả người dùng đã đăng nhập và chưa đăng nhập.
- Đánh giá ẩn danh được bật hoặc tắt bằng cấu hình.
Khi cho phép đánh giá ẩn danh, hệ thống có thể tạo một định danh người dùng thay thế và gửi token nhận diện về trình duyệt. Những lần tương tác tiếp theo có thể tiếp tục gắn với cùng định danh thay vì tạo một người dùng mới cho mỗi request.
Quản trị viên có thể cấu hình độc lập việc cho phép đánh giá nói chung và việc cho phép đánh giá ẩn danh. Vì vậy, cài đặt plugin không đồng nghĩa với việc mọi website tự động mở quyền đánh giá công khai.
Tổng hợp điểm theo đối tượng
Bên cạnh đánh giá của từng người, EzyRating duy trì dữ liệu tổng hợp cho từng đối tượng và loại đánh giá, gồm:
- Tổng điểm.
- Tổng số lượt đánh giá.
- Điểm trung bình.
Lớp dữ liệu này phù hợp cho các tình huống cần đọc nhanh như:
- Hiển thị điểm trung bình trên danh sách sản phẩm.
- Sắp xếp theo điểm đánh giá.
- Lọc các đối tượng theo khoảng điểm.
- Hiển thị tổng số lượt đánh giá.
- Xây dựng trang tổng hợp đánh giá.
Việc tách đánh giá cá nhân và kết quả tổng hợp giúp các trang có lưu lượng lớn không phải tính lại điểm trung bình từ toàn bộ lịch sử trong mỗi request.
Từ lịch sử đến số liệu thống kê
Lịch sử hành động là dữ liệu chi tiết và có thể tăng rất nhanh. EzyRating sử dụng tiến trình tổng hợp theo lô để biến các bản ghi này thành dữ liệu báo cáo.
Mỗi tiến trình ghi nhớ vị trí cuối cùng đã xử lý. Ở lần chạy tiếp theo, nó chỉ đọc các bản ghi mới, phân tích, gom nhóm trong bộ nhớ rồi tăng các bộ đếm tương ứng.
Một hành động xem trang có thể đồng thời đóng góp vào nhiều chỉ số:
Lượt xem trang +1 Số hành động VIEW +1 Thiết bị MOBILE +1 Trình duyệt CHROME +1 Kênh truy cập SEARCH +1 Tên miền example.com +1 Nguồn google.com +1
Các chỉ số được tổ chức thành hai nhóm chính:
- Số liệu toàn thời gian phục vụ KPI tổng quan và biểu đồ phân phối.
- Số liệu theo ngày phục vụ biểu đồ tăng trưởng, lọc theo khoảng thời gian và so sánh giữa các giai đoạn.
Ngày thống kê được xác định theo thời điểm xảy ra hành động, không đơn thuần dựa trên thời điểm tiến trình tổng hợp chạy. Vì vậy, một sự kiện được xử lý muộn vẫn có thể được đưa về đúng ngày phát sinh.
Khách duy nhất và người dùng hoạt động
Không thể tính khách duy nhất bằng cách tăng bộ đếm cho mọi lượt xem. Một người có thể tạo ra hàng chục hành động trong cùng phiên.
EzyRating nhận diện khách dựa trên:
- ID tài khoản đối với người dùng đã đăng nhập.
- Địa chỉ IP đã chuẩn hóa đối với lượt truy cập chưa có tài khoản.
Trước khi tăng bộ đếm khách duy nhất, hệ thống kiểm tra định danh đó đã xuất hiện hay chưa. Với người dùng hoạt động theo ngày, khóa kiểm tra còn bao gồm ngày thống kê.
Nhờ vậy, một người thực hiện nhiều hành động trong ngày vẫn chỉ đóng góp một đơn vị vào chỉ số khách hoạt động của ngày đó.
Phân tích nguồn truy cập và thiết bị
User-Agent và referrer được phân tích để tạo ra các chiều thống kê như:
- Loại thiết bị.
- Hệ điều hành.
- Tên và phiên bản trình duyệt.
- Trình duyệt bên trong ứng dụng.
- Kênh truy cập trực tiếp.
- Tìm kiếm.
- Mạng xã hội.
- Referral.
- Truy cập nội bộ.
- Tên miền nguồn.
Lưu lượng được nhận diện là bot được xử lý riêng. Nó có thể được ghi nhận để quản trị viên biết website đang nhận bao nhiêu truy cập tự động, nhưng không nên được trộn với chỉ số người dùng thực hoặc mức độ tương tác.
Dashboard quản trị
Admin plugin cung cấp dashboard cho nhiều nhóm thông tin:
- Tổng quan lượt xem và hành động.
- Khách duy nhất và khách đang hoạt động.
- Lịch sử khách truy cập gần thời gian thực.
- Tăng trưởng theo ngày.
- Phân phối theo thiết bị, trình duyệt, hệ điều hành hoặc nguồn truy cập.
- Chỉ số chuyển đổi.
- Tăng trưởng theo từng đối tượng.
- Danh sách đối tượng có mức tăng trưởng cao.
Với website thương mại điện tử, dashboard còn có thể theo dõi các mốc như:
- Giỏ hàng có sản phẩm.
- Bắt đầu thanh toán.
- Đặt hàng.
- Thanh toán thành công.
- Doanh thu.
- Số lượng sản phẩm đã bán.
Các chỉ số chuyển đổi được xây dựng từ nhiều bước của hành trình người dùng, thay vì chỉ đếm một loại sự kiện độc lập.
Công cụ quản lý dữ liệu
Ngoài dashboard, phần quản trị cung cấp các màn hình dành cho vận hành:
- Danh sách đánh giá của người dùng.
- Kết quả đánh giá tổng hợp theo đối tượng.
- Lịch sử hành động chi tiết.
- Hành động đã được tổng hợp.
- Tạo hoặc cập nhật đánh giá thay người dùng.
- Tạo hồ sơ người đánh giá ẩn danh khi nhập dữ liệu.
- Xóa mềm đánh giá.
- Lọc và phân trang theo loại đối tượng, loại đánh giá, trạng thái hoặc điểm số.
Các API quản trị yêu cầu xác thực và được bảo vệ bằng quyền tính năng. Quyền xem, sửa cấu hình và quản lý đánh giá có thể được phân tách theo vai trò của hệ thống quản trị.
Khả năng cấu hình
Quản trị viên có thể điều chỉnh nhiều khía cạnh mà không cần sửa mã nguồn:
- Bật hoặc tắt thu thập hành động tự động.
- Bật hoặc tắt chức năng đánh giá.
- Cho phép hoặc từ chối đánh giá ẩn danh.
- Khoảng thời gian gửi hành động.
- Thời gian chờ chống gửi lặp.
- Độ dài tối đa của phản hồi.
- Loại đối tượng được phép đánh giá.
- Loại đánh giá được phép hiển thị công khai.
- Danh sách tham số truy cập được phép lưu.
- Danh sách cookie được phép lưu.
- Việc cập nhật lượt xem cho từng loại nội dung.
Những cấu hình này giúp cùng một plugin có thể phục vụ website nội dung, cửa hàng trực tuyến hoặc hệ thống kết hợp cả hai.
Tích hợp vào giao diện website
Khi chạy trong website EzyPlatform, plugin có thể tự bổ sung tài nguyên CSS và JavaScript vào trang. Cấu hình gửi hành động được truyền từ máy chủ xuống trình duyệt để mã phía khách biết có được phép theo dõi tự động hay không và nên gửi theo chu kỳ nào.
Ngoài chế độ tích hợp trực tiếp, mã nguồn còn có cơ chế nhúng dựa trên API trình duyệt tiêu chuẩn. Điều này phù hợp với những trang cần gửi sự kiện từ một ngữ cảnh giao diện độc lập hơn.
Plugin cũng cung cấp các mẫu giao diện cho:
- Hiển thị sao đánh giá.
- Danh sách đánh giá.
- Trang gửi đánh giá sản phẩm.
- Hiển thị thông tin người đánh giá và phản hồi.
Các mẫu này có thể được dùng làm điểm khởi đầu và tùy biến theo theme của website.
Bảo mật và kiểm soát dữ liệu
EzyRating thực hiện nhiều lớp kiểm tra trước khi lưu dữ liệu:
- Kiểm tra trường bắt buộc và giới hạn độ dài.
- Chỉ chấp nhận các loại hành động đã định nghĩa.
- Chỉ cho phép đánh giá những loại đối tượng đã cấu hình.
- Giới hạn tần suất gửi hành động.
- Xác thực nội dung phản hồi.
- Chặn cấu trúc HTML nguy hiểm.
- Giới hạn các tham số và cookie được phép lưu.
- Bảo vệ API quản trị bằng xác thực và quyền tính năng.
Tuy vậy, plugin có thể xử lý IP, User-Agent, referrer, cookie và mã theo dõi chiến dịch. Đơn vị triển khai vẫn cần xây dựng chính sách quyền riêng tư, thời hạn lưu dữ liệu và cơ chế xin đồng ý phù hợp với quy định áp dụng tại khu vực hoạt động.
Những giới hạn cần lưu ý
EzyRating không phải một nền tảng phân tích độc lập có thể tự hiểu mọi sự kiện nghiệp vụ. Chất lượng báo cáo phụ thuộc vào việc website gửi đúng loại đối tượng, hành động và metadata.
Một số điểm cần cân nhắc khi triển khai:
- Số liệu tổng hợp có độ trễ vì được tạo bởi tiến trình nền.
- Chống gửi lặp giúp giảm nhiễu nhưng không thay thế hoàn toàn các giải pháp chống gian lận chuyên dụng.
- Nhận diện khách chưa đăng nhập qua IP chỉ mang tính tương đối, đặc biệt khi nhiều người dùng chung mạng hoặc thường xuyên thay đổi địa chỉ.
- Việc lưu cookie và tham số chiến dịch cần được cấu hình có chủ đích.
- Các loại đối tượng tùy chỉnh cần có quy ước đặt tên ổn định.
- Dashboard chỉ chính xác khi các sự kiện thương mại điện tử được phát sinh đầy đủ và đúng thứ tự.
- Bot detection và phân tích User-Agent không thể chính xác tuyệt đối.
Kết luận
EzyRating là một plugin đánh giá kết hợp phân tích hành vi dành cho EzyPlatform. Điểm đáng chú ý nhất của plugin không nằm ở riêng chức năng chấm điểm, mà ở cách nó kết nối toàn bộ vòng đời dữ liệu: từ thao tác trên trình duyệt, lịch sử chi tiết, đánh giá và phản hồi, đến thống kê theo ngày, dữ liệu thời gian thực và dashboard quản trị.
Kiến trúc tách riêng SDK, web runtime, admin runtime và tiến trình tổng hợp giúp hệ thống có thể mở rộng mà không buộc request của người dùng phải thực hiện các phép phân tích nặng. Với cấu hình phù hợp, EzyRating có thể trở thành lớp dữ liệu chung để theo dõi mức độ quan tâm, chất lượng nội dung và hiệu quả chuyển đổi trên website.