🇻🇳
Falcon SDK
Vietnamese
Vietnamese
  • Falcon Core
    • 1. Cấu hình và cài đặt
      • Về FalconMain và Init SDK
    • 2. RemoteConfig và AB Testing
      • a. Ví dụ Remote Config
      • b. Ví dụ về abTesting và remote config
      • c. Xem biểu đồ phân tích
    • 3. Tính năng Force Update
      • Sửa giao diện popup Force Update
    • 4. Lịch sử thay đổi
  • Falcon Analytics
    • 1. Các hàm Log cơ bản
    • 2. Các hàm log tự động
    • 3. Log tự định nghĩa
    • 4. FPlayerInfoRepo
    • 5. QnA
    • 6. Cài đặt Appsflyer or Adjust
    • 7. Lịch sử thay đổi
  • Falcon Mediation
    • 1. Cấu hình và cài đặt
    • 2. Network settings
    • 3. Hướng dẫn sử dụng
    • 4. Lịch sử thay đổi
  • Consent Management Platform (CMP)
    • 1. Trường hợp không sử dụng FalconMediation
    • 2. Trường hợp có sử dụng FalconMediation
    • 3. Lịch sử thay đổi
  • Hướng dẫn chung
    • Hướng dẫn log revenue lên Firebase, Appsflyer, Adjust
    • Hướng dẫn lấy Falcon Key (FKey)
    • Hướng dẫn thêm game
  • Giải thích biểu đồ
    • 📓Tổng quan
    • 🔢Level
    • 💰InApp
    • 💰InApp Cohort
    • ▶️Advertisement
    • 🔄Resources Overview
    • ⬆️Source
    • ⬇️Sink
    • ⏱️Session
    • 📶Retention
    • 📉Funnel
    • 💹Dynamic Chart
    • 🛃Custom Dashboard
    • 🔁Flow Chart
    • ✅Evaluate AB Campaign
  • SDK 2.1.x (bản cũ)
    • I. Cấu hình và cài đặt
    • II. Falcon Analytics
      • DwhLogCache
      • Falcon AB Testing
      • Các hàm log tự động
      • QnA
Powered by GitBook
On this page
  • 1. Khai báo Config
  • 2. Quy trình chạy của SDK
  • 3. Các hàm gọi cơ bản
  • 3.0. Lấy remoteConfig instance
  • 3.1. UpdatedFromNet
  • 3.2. runningABTesting
  • 3.3. Truy cập các remoteConfig
  • 4. Ví dụ về abTesting và remote config
  • 4.1. Yêu cầu đặt ra trong ví dụ:
  • 4.2. Thực hiện phần UI
  • 4.3. Thực hiện tạo code AbTesting và RemoteConfig
  • 4.4. Khai Báo Config trên server
  1. SDK 2.1.x (bản cũ)
  2. II. Falcon Analytics

Falcon AB Testing

PreviousDwhLogCacheNextCác hàm log tự động

Last updated 1 year ago

Là sub-SDK sử dụng giúp game thực hiện AB Testing và Remote Config một cách dễ dàng. Các config sẽ được khai báo ở local và đăng ký ở server, về cụ thể cách đăng ký xin tham khảo tại .

1. Khai báo Config

Để khởi tạo các Config sử dụng, người dùng cần phải tạo một lớp kế thừa abstract class FalconConfig, sau đó khai báo các attributes tượng trưng cho các remoteConfig đã khai báo từ server (có thể khai báo luôn các giá trị khởi tạo).

Ví dụ có thể tham khảo tại FalconAnalytics/Scripts/FalconABTesting/Demo/RealConfig.cs

Trong ảnh trên, có thể thấy, ta khai báo các remoteConfig "config1" (int) và "config2"(String).

Chú ý:

  • Tên các remoteConfig, ở phía client khai báo trong class và khởi tạo phía server, phải tuyệt đối giống nhau.

  • Các remoteConfig cần có access modifier public.

  • Kiểu dữ liệu của các remoteConfig phải phù hợp (khai báo ở server là string thì client cũng phải là string, khai báo ở server là int thì client phải là int/long/string/..., etc), nếu giá trị được gửi tới client không phù hợp, khiến client không thể xử lý thì client sẽ bỏ giá trị này, không lưu lại.

  • Do giới hạn của C#, các config chỉ được có kiểu dữ liệu nguyên thủy (string, float, DateTime, Boolean) nên việc gán giá trị Object, Array, List, ... sẽ không thể thực hiện được.

  • Nếu SDK phiên bản 1.x.x, việc khởi tạo các giá trị nền cho FalconABTesting được thực hiện ở hàm Awake() của scene chứa Game Prefab Falcon (trong FalconCore/Resources), vì vậy việc sử dụng trong scene đó chỉ nên được xử lý tại hàm Start() hoặc Update(), đồng thời phiên bản chỉ hỗ trợ duy nhất 1 class kế thừa (không tính FalconAbConfig có sẵn trong SDK).

  • Nếu SDK phiên bản 2.x.x, việc khởi tạo các giá trị nền cho FalconAnalytic được thực hiện kể từ khi gọi FalconMain.Init(), vì vậy cần kiểm tra giá trị FalconMain.InitComplete trước khi gọi.

if (FalconMain.InitComplete)
{
    //log something
}

2. Quy trình chạy của SDK

Khi chạy, phía SDK sẽ:

  • Nếu là lần chạy đầu tiên, lập tức sử dụng các giá trị khởi tạo (bên trên config1 = 5 và config2 = "ahihi do ngok").

  • Sau khi nhận được giá trị mới từ server, SDK sẽ lưu các giá trị mới lại và sử dụng giá trị này thay cho giá trị khởi tạo vào các lần chạy tiếp theo.

Chú ý:

  • Nếu SDK phiên bản 1.x.x, việc khởi tạo các giá trị nền cho FalconABTesting được thực hiện ở hàm Awake() của scene chứa Game Prefab Falcon (trong FalconCore/Resources), vì vậy việc sử dụng trong scene đó chỉ nên được xử lý tại hàm Start() hoặc Update().

  • Nếu SDK phiên bản 2.x.x, việc khởi tạo các giá trị nền cho FalconABTesting được thực hiện kể từ khi gọi FalconMain.Init(), vì vậy cần kiểm tra giá trị FalconMain.InitComplete trước khi gọi.

3. Các hàm gọi cơ bản

Có thể xem ví dụ có sẵn trong SDK tại FalconAnalytics/Scripts/FalconABTesting/Demo/FalconABConfig.cs

3.0. Lấy remoteConfig instance

Lấy instance của remote config bằng cách sử dụng hàm sau:

FalconConfig.Instance<<Tên class config>>();

VD: RealConfig config = FalconConfig.Instance<RealConfig>();

3.1. UpdatedFromNet

Cho biết các remoteConfig đã được cập nhật thành công từ server chưa (true - đã cập nhật/ false - chưa cập nhật, vẫn sử dụng giá trị khởi tạo).

VD:

while (!FalconConfig.UpdatedFromNet)
{
    Debug.Log("Giá trị của remoteConfig chưa cập nhật ._.");
    yield return null;
}

Debug.Log("Giá trị của remoteConfig đã được cập nhật ^w^");

3.2. runningABTesting

Trả về id của ABTesting campain đang chạy.

VD:

Debug.Log( FalconConfig.runningABTesting);

3.3. Truy cập các remoteConfig

Các giá trị của config được truy cập như các thuộc tính thông thường của class:

VD:

Debug.Log( FalconConfig.Instance<RealConfig>().config1);

Debug.Log( FalconConfig.Instance<RealConfig>().config2);

4. Ví dụ về abTesting và remote config

Để giúp người dùng dễ hiểu hơn về cách SDK hoạt động, chúng tôi xin cung cấp một ví dụ như sau:

4.1. Yêu cầu đặt ra trong ví dụ:

  • Khi người chơi vào game, chúng ta sẽ trao quà tặng hằng ngày cho người chơi, là một lượng tài nguyên nhất định. Trong ví dụ này, quà tặng sẽ là coin - loại tiền tệ cơ bản nhất trong game.

  • Lượng tài nguyên được trao tặng cho người chơi sẽ được thực hiện abTesting trên 60% người chơi mới với 2 trường hợp:

    • Một nửa sẽ được tặng 50 coin.

    • Một nửa sẽ được tặng 100 coin.

  • Trong thông báo quà tặng cho người chơi, thông điệp trong thông báo đó sẽ được thực hiện remoteConfig để có thể thay đổi khi có nhu cầu.

4.2. Thực hiện phần UI

  • Ta tạo một panel trong canvas như sau:

  • Ta tạo một class chứa các thành phần tương ứng với panel:

Trong đó:

  • Message: thông điệp thực hiện remoteConfig.

  • Amount: số lượng tài nguyên tặng trong daily gift được thực hiện abTesting, hiển thị cho người dùng được biết.

  • OnClaim: nút bấm người chơi xác nhận việc nhận daily gift.

4.3. Thực hiện tạo code AbTesting và RemoteConfig

  • Bước 1: Ta tạo code kế thừa FalconConfig, khai báo các giá trị muốn sử dụng, trong đó :

    • DailyGiftAmount: số lượng tài nguyên tặng cho người chơi theo dailyGift (giá trị mặc định là 50).

    • NotifyMessage: thông điệp quà tặng, giá trị mặc định là ("Welcome Back Gift").

    public class AbTestingConfig : FalconConfig
    {
        public int DailyGiftAmount = 50;
        public string NotifyMessage = "Welcome Back Gift";
    }
  • Bước 2: Ta tạo code AbTesting để thực hiện việc gọi DailyGiftPanel.

    public class AbTestingScript : MonoBehaviour
    {
        private static bool Popped = false;
        [SerializeField] private DailyGiftPanel dailyGiftPanel;
        
        private IEnumerator Start()
        {
            //Tạm ẩn dailyGiftPanel khi chưa init xong
            dailyGiftPanel.gameObject.SetActive(false);
            
            //Đợi SDK init
            while (!FalconMain.InitComplete) yield return null;
            
            //Kiểm tra để đảm bảo chỉ thực hiện popup daily gift một lần mỗi ngày
            //Giá trị của RetentionCounter.RetentionChanged sẽ thể hiện đây có phải 
            //lần đăng nhập đầu tiên của người chơi trong ngày không, giá trị này được 
            //cung cấp bởi SDK, chi tiết xem tại FalconAnalytics/Các hàm log tự động
            if (!Popped && RetentionCounter.RetentionChanged)
            {
                Popped = true;
                
                //Hiện dailyGiftPanel
                dailyGiftPanel.gameObject.SetActive(true);
                
                //Điều chỉnh các giá trị dựa theo config
                dailyGiftPanel.Amount.text = 
                        "x" + FalconConfig.Instance<AbTestingConfig>().DailyGiftAmount;
                dailyGiftPanel.Message.text = 
                        FalconConfig.Instance<AbTestingConfig>().NotifyMessage;
    
                dailyGiftPanel.OnClaim.onClick.AddListener(() =>
                {
                    //Điều chỉnh tăng tài nguyên người chơi 
                    //và ẩn panel khi người chơi bấm xác nhận 
                    GameDataHandler.Instance.IncreaseCoin(
                            FalconConfig.Instance<AbTestingConfig>().DailyGiftAmount, 
                            "DailyGift");
                            
                    dailyGiftPanel.gameObject.SetActive(false);
                });
            }
            
        }
    
    }

4.4. Khai Báo Config trên server

  • Bước 2: Khai báo các remoteConfig với giá trị mặc định (hướng dẫn chi tiết theo từng ảnh).

Tại đây các config đã được hệ thống ghi nhận là remote config, giá trị của config đã được điều chỉnh theo server trên 100% các user theo filter.

Các bước tiếp theo ta sẽ tạo abTesting trên biến DailyGiftAmount, thực hiện abTesting trên 60% người chơi mới.

  • Bước 3: Tạo A/B Testing trên data4game (hướng dẫn chi tiết theo từng ảnh).

Vào bước này, quá trình thực hiện tạo A/B Testing cho game thông qua SDK đã hoàn tất.

SDK sẽ ngay lập tức gửi yêu cầu lên server để lấy về các giá trị remoteConfig mới nhất (trong khoảng thời gian này các remoteConfig sẽ có giá trị là các giá trị khởi tạo). Khi server trả về thành công, các remoteConfig sẽ được reset giá trị (có thể kiểm tra giá trị trong config để biết config đã được cập nhật chưa).

Bước 1: Truy cập , tìm đúng tên game muốn tạo config.

https://data4game.com/falcon-x/ab-testing/f-remote-config.xhtml
UpdatedFromNet
Hướng dẫn tạo A/B Testing
Hướng dẫn cơ bản sử dụng remote config và ab testing
Các giá trị tại local giờ đã được cập nhật theo giá trị remote config trên server