Triển khai thử nghiệm A/B cho trò chơi Unity của bạn bằng Cấu hình từ xa Firebase

1. Giới thiệu

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách tạo thử nghiệm Cấu hình từ xa bằng tính năng Thử nghiệm A/B cho trò chơi mẫu MechaHamster: Nâng cấp bằng phiên bản Firebase. Bạn đã sửa đổi phiên bản này trong bài viết Đo lường trò chơi bằng Cấu hình từ xa Firebase.

Tính năng Thử nghiệm A/B thông qua Cấu hình từ xa cho phép bạn thử nghiệm các thay đổi đối với giao diện người dùng, tính năng hoặc chiến dịch thúc đẩy mức độ tương tác của ứng dụng cho một đối tượng mục tiêu trước khi triển khai cho nhiều đối tượng hơn. Bạn cũng có thể sử dụng kết quả thử nghiệm để:

  • Xác định biến thể giá trị thông số nào giúp cải thiện các chỉ số chính như doanh thu và tỷ lệ giữ chân.
  • Khám phá xem nhóm người dùng con nào thích biến thể nào.
  • Thu thập và lưu trữ dữ liệu thử nghiệm để phân tích thêm về tác động của việc đặt các giá trị thông số khác nhau.

Đây là bản chất của Thử nghiệm A/B: tính năng này cho phép bạn sử dụng mã được đo lường cho Cấu hình từ xa và khởi chạy thử nghiệm kiểm soát các giá trị mà ứng dụng nhận được, dựa trên điều kiện Cấu hình từ xa (bao gồm thuộc tính người dùng Google Analytics), lượt phát hành theo tỷ lệ phần trăm, sự kiện chuyển đổi Analytics và một số kiểu kết hợp của những yếu tố này.

Trước tiên, bạn sẽ triển khai một điều kiện giúp kiểm soát những người được đưa vào thử nghiệm bằng cách đặt thuộc tính người dùng dựa trên hành động của người dùng. Sau đó, bạn sẽ tạo một Thử nghiệm A/B, trong đó sử dụng các thuộc tính người dùng Google Analytics để xác định những khách hàng được đưa vào thử nghiệm. Cuối cùng, bạn cần dùng dữ liệu đó để hiểu thêm về khán giả của mình.

Kiến thức bạn sẽ học được

  • Cách thiết lập tính năng Thử nghiệm A/B bằng giá trị Cấu hình từ xa được đo lường
  • Cách sử dụng thuộc tính người dùng Google Analytics trong điều kiện để được phép tham gia thử nghiệm A/B

Điều kiện tiên quyết

Bạn cần có

  • Unity 2019.1.0f1 trở lên có hỗ trợ bản dựng dành cho iOS và/hoặc Android

2. Bật trình đơn gỡ lỗi

Có một Trình đơn gỡ lỗi bị ẩn trong dự án và nút truy cập vào trình đơn này tồn tại trong trò chơi nhưng hiện không được bật. Bạn phải bật nút để truy cập nút này từ prefab MainMenu.

  1. Trong trình chỉnh sửa Unity, hãy chọn thẻ Project (Dự án), sau đó trong phần Assets (Tài sản), hãy mở rộng Hamster > Ưu tiên > Trình đơn rồi nhấp vào MainMenu.

Thẻ Dự án của trình chỉnh sửa Unity hiển thị\nThành phần. Hamster, ưu tiên, thực đơn

  1. Trong hệ phân cấp prefab, hãy tìm đối tượng phụ bị tắt có tên là DebugMenuButton, rồi nhấp vào đối tượng đó để mở đối tượng đó trong thẻ Inspector (Trình kiểm tra).

Trình chỉnh sửa Unity cho thấy Trình đơn chính,\ntrong đó DebugMenu bị tắt

  1. Trong thẻ Inspector (Trình kiểm tra), hãy chọn hộp ở góc trên bên trái bên cạnh trường văn bản chứa DebugMenuButton (Trình gỡ lỗi) để bật.

Thẻ Trình kiểm tra cho DebugMenuButton\ncó hộp đánh dấu

  1. Lưu prefab.

Nếu bạn chạy trò chơi trong trình chỉnh sửa hoặc trên thiết bị, thì lúc này trình đơn sẽ truy cập được.

3. Bật trình đơn phụ Cấu hình từ xa

  1. Trên thẻ Project (Dự án) trong Trình chỉnh sửa Unity, hãy mở rộng Assets (Tài sản) > Hamster > Ưu tiên > Trình đơn rồi nhấp đúp vào đối tượng DebugMenu để mở đối tượng đó trong thẻ Phân cấp của trình chỉnh sửa.

    Mục DebugMenu được lồng trong các Thành phần,\nHamster, Prefabs, Trình đơn
  2. Trong thẻ Phân cấp, hãy mở rộng hệ phân cấp rồi nhấp vào đối tượng phụ trong DebugMenu > Bảng điều khiển có gắn nhãn Thao tác Cấu hình từ xa.

Thao tác cấu hình từ xa được lồng trong\nCanvas, DebugMenu

  1. Trong thẻ Inspector (Trình kiểm tra) của Unity, hãy bật Remote Config Actions (Hành động cấu hình từ xa) bằng cách đánh dấu vào hộp ở bên trái trường văn bản chứa tên của đối tượng.

Trình chỉnh sửa Unity với Cấu hình từ xa\nBật các Thao tác trong DebugMenu, Panel (Bảng điều khiển)

Thao tác này có hai phần tử con TIÊU ĐỀ được đặt tên là Set Bored Of Subtitle và Đặt thích phụ đề. Cả hai đều được định cấu hình để gọi các phương thức hiện có nhưng chưa được triển khai trong DebugMenu.cs.

4. Đặt lại chế độ ghi đè phụ đề về chế độ mặc định trong ứng dụng

Trong lớp học lập trình trước, bạn đã ghi đè giá trị mặc định của một tham số dưới dạng JSON và sử dụng các điều kiện để phân phát nhiều biến thể. Trong lớp học lập trình này, bạn sẽ xoá điều kiện bạn đã tạo và giới thiệu lại chế độ mặc định trong ứng dụng, đồng thời bạn sẽ chỉ ghi đè điều kiện đó bằng kết quả của Thử nghiệm A/B.

Cách bật lại chế độ mặc định trong ứng dụng:

  1. Mở trang Cấu hình từ xa trong bảng điều khiển của Firebase rồi nhấp vào biểu tượng bút chì bên cạnh thông số subtitle_override để mở bảng điều khiển bên Chỉnh sửa thông số.
  2. Nhấp vào biểu tượng X bên cạnh điều kiện để xoá.
  3. Bên cạnh giá trị mặc định còn lại, hãy bật nút bật/tắt Sử dụng giá trị mặc định trong ứng dụng.

Xoá một điều kiện khỏi trình chỉnh sửa thông số\nCấu hình từ xa

  1. Nhấp vào Lưu để lưu các thay đổi, rồi nhấp vào Xuất bản các thay đổi để xuất bản các thay đổi.Lựa chọn xuất bản\nthay đổi trên trang Cấu hình từ xa

5. Đặt thuộc tính người dùng trong hàm Gỡ lỗi

Bây giờ, bạn sẽ viết nội dung hàm cho một số hàm của Google Analytics được định cấu hình sẵn nhưng chưa triển khai trong DebugMenu.cs (bạn có thể tìm thấy các hàm này trong phần Assets > Hamster > Scripts > States).

Các hàm này đặt thuộc tính người dùng. Đây là cách mô tả các phân khúc trong cơ sở người dùng và dùng để ghi lại cảm nhận của người dùng về phụ đề của trò chơi.

Triển khai SetUserBoredOfSubtitleSetUserEnjoysSubtitle bằng cách tìm các phiên bản hiện có của chúng trong DebugMenu.cs và ghi đè lên như sau:

void SetUserBoredOfSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "bored");
}
void SetUserEnjoysSubtitle()
{
  Firebase.Analytics.FirebaseAnalytics.SetUserProperty("subtitle_sentiment", "enjoys");
}

Nếu ứng dụng của bạn được định cấu hình chính xác với Google Analytics, bạn có thể gọi một trong các chức năng sau để làm cho thuộc tính có sẵn theo điều kiện của Cấu hình từ xa. Để gọi SetUserBoredOfSubtitle từ thiết bị di động, hãy khởi động trò chơi và nhấn nút Trình đơn gỡ lỗi trong trình đơn chính, sau đó nhấn Set Bored of Subtitle (Trình đơn gỡ lỗi).

6. Tạo Phương diện tùy chỉnh

Tiếp theo, bạn sẽ thiết lập nhiều biến thể phụ đề cho subtitle_override để xem biến thể phụ đề nào phù hợp nhất. Tuy nhiên, trong thử nghiệm A/B, bạn sẽ chỉ phân phát các biến thể này cho những người dùng có cảm nhận về phụ đề hiện tại (như được ghi lại trong subtitle_sentiment) chứa từ "chờ".

Bạn sẽ sử dụng phương diện tuỳ chỉnh để tạo và theo dõi các thông số tuỳ chỉnh trên sự kiện Analytics. Xem bài viết Phương diện và chỉ số tuỳ chỉnh để biết thêm thông tin.

Cách tạo một phương diện tuỳ chỉnh mới:

  1. Mở bảng điều khiển của Firebase, mở rộng trình đơn Analytics rồi chọn Định nghĩa tuỳ chỉnh.
  2. Trên trang Định nghĩa tuỳ chỉnh, hãy nhấp vào Tạo phương diện tuỳ chỉnh.
  3. Trong cửa sổ Phương diện tuỳ chỉnh mới, hãy đặt Tên phương diện thành "Ý kiến phụ đề" rồi chọn Người dùng trong trình đơn thả xuống Phạm vi.
  4. Đối với trường Thuộc tính người dùng, hãy chọn subtitle_sentiment.

7. Thiết lập thử nghiệm A/B

Tiếp theo, hãy tạo một Thử nghiệm A/B để đặt các giá trị khác nhau của subtitle_override cần thử nghiệm với nhau nhằm tối ưu hoá tỷ lệ giữ chân người dùng từ 2 đến 3 ngày.

  1. Trước tiên, hãy chọn Chỉnh sửa cho thông số subtitle_override trên trang Cấu hình từ xa của bảng điều khiển Firebase:

Thông số sub_override trên\ntrang Cấu hình từ xa, hiển thị tuỳ chọn Chỉnh sửa.

  1. Trong hộp thoại Chỉnh sửa thông số vừa xuất hiện, hãy nhấp vào Thêm mới.

Tuỳ chọn Thêm thử nghiệm mới trên trang\nChỉnh sửa thông số Cấu hình từ xa.

  1. Từ danh sách xuất hiện, hãy chọn Thử nghiệm.

Trang thông số Cấu hình từ xa: Thêm thử nghiệm\nmới

  1. Nhập tên và nội dung mô tả cho thử nghiệm của bạn.

Phần tên và nội dung mô tả\nthử nghiệm

  1. Tiếp theo, hãy chọn các điều kiện nhắm mục tiêu. Trước tiên, hãy chọn Ứng dụng của bạn trong trình đơn thả xuống.

Bước Nhắm mục tiêu của cấu hình Thử nghiệm A/B\nvới một ứng dụng được chọn

  1. Tiếp theo, hãy nhấp vào để thêm một điều kiện mới, sau đó chọn Thuộc tính người dùng rồi chọn subtitle_sentiment. Nếu mã này không xuất hiện, hãy nhập mã theo cách thủ công.
  2. Vì bạn chỉ muốn đặt phụ đề cho những video có biểu tượng cảm xúc phụ đề hiện tại bao gồm "chóng mặt", chọn contains (chứa) rồi nhập vào bored.
  3. Nếu muốn, bạn có thể chọn tỷ lệ phần trăm đối tượng phù hợp với các tiêu chí ở trên để hiển thị cho thử nghiệm. Chọn 100% để tránh ngẫu nhiên mà bạn không dễ kiểm soát.

Phần Nhắm mục tiêu trong thử nghiệm A/B với\nphụ_sentiment được chọn

  1. Tiếp theo, hãy chọn một mục tiêu mà cuộc thử nghiệm sẽ cố gắng tối đa hoá. Chọn Tỷ lệ giữ chân người dùng (2-3 ngày).

Phần Mục tiêu thử nghiệm A/B

  1. Tiếp theo, hãy thiết lập các thông số của thử nghiệm và tạo các biến thể phụ đề khác nhau . Các biến thể này là các giá trị khác nhau mà Thử nghiệm A/B sẽ phân phát cho những người dùng có subtitle_sentiment chứa nội dung "chán", và Thử nghiệm A/B sẽ xác định biến thể nào phù hợp nhất để tăng tối đa tỷ lệ giữ chân người dùng.
  2. Nhập giá trị thông số sau đây cho Biến thể A:
    {"text":"A: A game about a mechanical hamster","fontSize":8,"textColor":{"r":0.0,"g":255.0,"b":0.0,"a":255.0}}
    
  3. Nhập giá trị thông số sau đây cho Biến thể B:
    {"text":"B: A game about a mechanical hamster","fontSize":14,"textColor":{"r":255.0,"g":0.0,"b":0.0,"a":255.0}}
    
  4. Thiết lập các tỷ lệ biến thể với số nguyên như sau:
    • Đường cơ sở: 1
    • Biến thể A: 100
    • Biến thể B: 100
    Điều này sẽ dẫn đến tổng trọng số là 0,5% cho Biến thể cơ sở, 49,8% cho Biến thể A và 49,8% cho Biến thể B.Phần\ncấu hình trọng số biến thểNhững biến thể này chỉ định rằng cứ 201 lần, Thử nghiệm A/B phục vụ mặc định cho những người đã chán phụ đề, nhưng 200/201 lần, nó sẽ phân phát một trong hai giá trị mới và ghi đè màn hình tiêu đề.
  5. Lưu và gửi bằng cách nhấp vào Bắt đầu thử nghiệm, rồi nhấp vào Bắt đầu trên cửa sổ xác nhận bật lên.Nhấp vào Bắt đầu để bắt đầu\nthử nghiệm

8. Chạy phương thức Đặt thuộc tính người dùng rồi làm mới

Bạn hiện đã đặt nhiều thuộc tính về người dùng. Sau đó, bạn có thể dùng các thuộc tính này để điều khiển logic hoặc trình bày trò chơi.

Nếu trước đây chưa chạy phương thức SetUserProperty hoặc đã đặt phương thức này thành enjoys, bạn vẫn sẽ thấy tiêu đề phụ mặc định khi mở trò chơi.

Nếu đã thiết lập giá trị này thành bored (trước khi tìm nạp lại), bạn sẽ thấy một trong các giá trị mới theo tỷ lệ khoảng 50/50.

Sau khi một thiết bị tham gia một thử nghiệm Thử nghiệm A/B, các giá trị mà thiết bị nhận được từ thử nghiệm đó sẽ không thay đổi và duy trì được trên mỗi lượt cài đặt. Do vậy, để nhận được một trong các giá trị thử nghiệm khác, bạn phải tạo một lượt cài đặt mới bằng cách cài đặt lại trò chơi trên cùng một thiết bị/trình mô phỏng hoặc cài đặt trò chơi trên một thiết bị/trình mô phỏng mới.

Trong một thử nghiệm A/B thực tế được chạy trên cơ sở người dùng, bạn nên đặt trọng số cho biến thể cơ sở tương tự như các biến thể khác. Nhưng trong trường hợp này, bạn chỉ định các xác suất rất sai lệch để xác thực rằng thử nghiệm đang hoạt động. Nếu (trong trường hợp 1/201), bạn vẫn nhận được giá trị mặc định, hãy thử cài đặt lại trò chơi vào thiết bị/trình mô phỏng của bạn.

Một ảnh hưởng khác của việc này là việc chuyển thuộc tính người dùng về enjoys sẽ không thay đổi giá trị về đường cơ sở, nhưng một lần nữa, bạn có thể thực hiện việc này bằng cách chuyển sang enjoys rồi cài đặt lại.

9. Xin chúc mừng!

Bạn đã sử dụng tính năng Thử nghiệm A/B cho Cấu hình từ xa để thử nghiệm nhiều giá trị Cấu hình từ xa và xác định mức độ ảnh hưởng của từng giá trị đến các chỉ số của Analytics.

Nội dung đã đề cập

  • Cách thiết lập tính năng Thử nghiệm A/B bằng giá trị Cấu hình từ xa được đo lường
  • Cách sử dụng Thuộc tính người dùng Google Analytics trong điều kiện để được phép tham gia thử nghiệm A/B

Các bước tiếp theo

Sau khi thử nghiệm kết thúc, bạn có thể chọn một thử nghiệm trong danh sách thử nghiệm trong dự án của mình để quyết định hành động mà bạn muốn thực hiện với thử nghiệm đó. Bạn có muốn chọn một ứng dụng/trò chơi làm "người chiến thắng" không? hay tiến hành thêm thử nghiệm?