A/B testing đã trở thành tài sản không thể thiếu cho các nhà marketing và chủ trang web cạnh tranh trong kinh tế số ngày nay. Nó cho phép người dùng kiểm tra ý tưởng hiện có, thử nghiệm ý tưởng mới và làm nổi bật điều gì hoạt động và điều gì không.
Nếu không có thông tin này, việc cố gắng tối ưu hóa trang web có thể là một quá trình chán nản và tốn thời gian. Nhưng tiếc thay, phần mềm A/B testing có thể đắt đỏ, ngăn cản nhiều người tiếp cận lợi ích của nó.
Nhưng với Redis, lập trình viên Thiago Camargo đã có thể loại bỏ các rào cản này bằng cách tạo một công cụ A/B testing mở có thể hoạt động theo thời gian thực. Các tính năng xử lý dữ liệu mạnh mẽ của Redis cho phép người dùng thử nghiệm các biến số theo chọn lọc và khám phá cách hiệu quả nhất để tối ưu hóa trang web của họ.
Hãy xem Thiago đã lắp ráp ứng dụng này như thế nào. Nhưng trước khi đi xa hơn, chúng tôi muốn chỉ ra rằng chúng tôi có nhiều ứng dụng đổi mới đa dạng để bạn khám phá trên Redis Launchpad.
Vì vậy hãy chắc chắn duyệt sau bài này!
- Bạn sẽ xây dựng gì?
- Bạn sẽ cần gì?
- Kiến trúc
- Bắt đầu
- Cách nó hoạt động
1. Bạn sẽ xây dựng gì?
Bạn sẽ xây dựng một công cụ A/B testing mạnh mẽ nhưng đơn giản, có khả năng mở rộng và hoạt động theo thời gian thực. Dưới đây chúng tôi sẽ chỉ cho bạn cách xây dựng ứng dụng này từ nền tảng, làm nổi bật các thành phần cần thiết cùng với chức năng của chúng.
2. Bạn sẽ cần gì?
- Kotlin: dùng như ngôn ngữ lập trình mã nguồn mở cũng được Google dùng để phát triển app Android.
- Gradle: dùng như công cụ tự động hóa build cho phát triển phần mềm đa ngôn ngữ.
- Lettuce: xây dựng ứng dụng reactive non-blocking
- RedisGraph: dùng ma trận thưa (sparse matrices) để biểu diễn ma trận kề trong đồ thị và đại số tuyến tính để truy vấn đồ thị
- RedisTimeSeries: cho phép nạp (ingest) và truy vấn hàng triệu sample và event với hiệu quả siêu cao.
- RedisJSON: cho phép lưu trữ, cập nhật, và lấy giá trị JSON từ key Redis
3. Kiến trúc
- Một experiment được tạo trên Swagger dựa trên các biến bạn muốn test trên trang web. User này chọn test tác động của màu sắc khác nhau lên doanh số.
- Trigger events (sự kiện kích hoạt) xác định user sẽ tự động được đăng ký vào experiment.
- User đăng ký subscription sẽ được ghi nhận như một trigger event (một conversion). Màu của nơi mỗi trigger event xảy ra cũng sẽ được ghi lại để đo kết quả.
A/B testing là gì?
Còn được gọi là split testing, A/B testing đề cập đến một quy trình thử nghiệm có phương pháp nơi hai hoặc nhiều phiên bản của một biến được hiển thị cho người truy cập trang web để xác định phiên bản nào có tác động lớn hơn đến conversion.
Nó được thiết kế để thêm sự rõ ràng về cách bạn có thể định vị thương hiệu, sản phẩm, và dịch vụ của mình hiệu quả hơn trên thị trường.
Giả sử ví dụ bạn có một sản phẩm trên trang web bạn đang cố bán. Một biến bạn có thể thử nghiệm là nút call to action (CTA) bên cạnh sản phẩm. Có nhiều cách khác nhau bạn có thể A/B test CTA, bao gồm:
- Vị trí (Placement)
- Thiết kế (Design)
- Màu sắc (Colour)
- Kích thước (Size)
- Viết copy (Copywriting)
Bằng cách split testing các biến này, bạn sẽ khám phá phiên bản CTA nào sẽ tối ưu nhất để thúc đẩy conversion.
4. Bắt đầu
Điều kiện tiên quyết
- Docker
- Cài Gradle 7.2
- Maven 3.8.1
- Cài OpenJDK
- Swagger API documentation
Bước 1: Clone repository
Bước 2. Thực hiện task build
Bước 3: Thiết lập Redis modules
Nếu bạn dùng Docker desktop, hãy chắc chắn tùy chọn file sharing được bật cho volume mount. Dùng code dưới để thiết lập Redis:
Bước 4. Chạy ứng dụng
Dùng code dưới để khởi động docker:
Cách nó hoạt động
Experiments API
Ở đây chúng ta sẽ chỉ cho bạn cách tạo scalable A/B testing experiments với trigger-based weighted enrollment (đăng ký có trọng số dựa trên trigger).
Cách tạo experiment
Trong bước này, chúng ta sẽ chỉ cho bạn cách tạo một experiment cho phép bạn A/B test các biến khác nhau. Chúng ta sẽ đặt mình ở vị trí một marketer muốn split test các màu màn hình khác nhau để xem tác động của chúng lên doanh số.
Để bắt đầu, dùng code dưới.
Có giá trị ghi nhận rằng chúng ta đã thay 'goalIds' ở trên thành 'purchase' để đo số lượng bán hàng từ mỗi màu màn hình. Dưới đó, chúng ta đã làm 'id' của experiment thành 'subscription1.'
Để xác định trigger event, chúng ta chèn 'user-plan-screen-view.' Điều này có nghĩa là khi một event được kích hoạt, user sẽ tự động được đăng ký vào experiment.
Tiếp theo, chúng ta xác định variants (biến thể) là 'red' và 'blue' vì đây là hai biến chúng ta sẽ A/B test.
Cách truy xuất experiment
Response.
Remote Config API
Ở đây chúng ta sẽ chỉ cho bạn cách tạo một dynamic và scalable remote client configuration service (Firebase Replacement).
Cách cập nhật remote config
Cách truy xuất remote config
Response
Event API
Bước này liên quan đến Timeseries Event Indexing.
Cách push event
Summary API – Generic Summary Service
Đây là một summary service đơn giản và linh hoạt có khả năng giữ và duy trì summary của nhiều loại ứng dụng. Chúng bao gồm: game scoreboards, product ratings, user ratings, incremental metrics và nhiều hơn nữa.
Cập nhật summary
Lấy Summary
Response:
Drawer API – Generic Key/Value Service
Flexible Property Storage
Cập nhật Drawer
Lấy Drawer
Response:
Một số Redis Queries Đã Dùng
Hầu hết các lệnh dưới được triển khai dùng Lettuce Redis Command Annotation.
Graph
- enrollEmitterOnExperiment
- fetchParticipantsOnExperiment
- graphQuery
TimeSeries
- pushEvent
JSON
- setObject
- getObject
- setPathValue
- getPathValue
Core
- HSET
- HGET / HGETALL
- HEXISTS
- …
Kết luận: Làm Cho A/B Testing Dễ Dàng Tiếp Cận Cho Mọi Người
A/B testing đã trở thành không thể tách rời cho bất kỳ marketer nào cạnh tranh trong sân chơi số ngày nay. Nhưng có được phần mềm này có thể đắt đỏ, buộc nhiều người phải vận hành với trang web không tối ưu. Và để làm trầm trọng thêm, tự tạo phần mềm split-testing của riêng mình có khó khăn lập trình riêng.
Để tạo một ứng dụng như vậy đòi hỏi một cơ sở dữ liệu linh hoạt và mạnh mẽ có thể truyền dữ liệu hiệu quả giữa các thành phần. Tuy nhiên dù có những chướng ngại đó, Redis đã loại bỏ tất cả các chướng ngại này.
Chỉ bằng việc dùng Redis trên laptop của bạn, bạn có thể A/B test bất kỳ biến nào trên trang web và làm cho bản thân gần hơn với thị trường mục tiêu. Nếu bạn muốn khám phá thêm về cách ứng dụng này được làm, hãy chắc chắn xem Video YouTube này.
Dù có những yêu cầu đó, các khả năng xử lý dữ liệu nâng cao của Redis đã làm cho việc truyền dữ liệu giữa các thành phần vừa siêu hiệu quả vừa tin cậy, tạo ra một ứng dụng phản hồi cao.
Điều đó có nghĩa là không lag, không delay, và không nguyên nhân ma sát giữa user và ứng dụng. Chỉ bằng việc dùng Redis trên laptop của bạn, bạn có thể A/B test bất kỳ biến nào trên trang web và làm cho bản thân gần hơn với thị trường mục tiêu.
Nếu bạn muốn khám phá thêm về cách ứng dụng này được làm, hãy chắc chắn xem Video YouTube này.
Nếu bạn thích bài viết này thì chúng tôi cũng còn nhiều hơn cho bạn khám phá trên Redis Launchpad. Từ tạo hệ thống theo dõi xe thời gian thực đến xây dựng hệ thống drone mạnh mẽ bảo vệ người bảo hiểm nông nghiệp ở quốc gia đang phát triển, Redis đã được tận dụng bởi lập trình viên khắp thế giới để cải thiện cuộc sống hàng ngày.
Bạn có thể làm gì với Redis?
Ai đã tạo ứng dụng?
Thiago Camargo
Nếu bạn thích ứng dụng này thì hãy chắc chắn ghé trang GitHub của Thiago để cập nhật tất cả dự án ông đã tham gia.