A/B Testing SDK 依賴於神策分析 SDK v4.3.6 及以上版本,在使用前請確保已經成功整合神策分析 SDK,並進行了 SDK 初始化,詳情可參考 SDK 整合 (Android)

1. SDK 整合

在主 module 的 build.gradle 檔案中增加 A/B Testing SDK 依賴:

apply plugin: 'com.android.application'

dependencies {
   // 增加 A/B Testing SDK 依賴
    implementation 'com.sensorsdata.abtesting:SensorsABTesting:0.1.0'
}
GROOVY

2. 初始化  SDK

在神策分析中建立 A/B Testing 後,會產生分流測試請求 URL,透過該 URL 初始化 A/B Testing SDK:

import com.sensorsdata.abtest.SensorsABTest;
import com.sensorsdata.abtest.SensorsABTestConfigOptions;

    try {
        // 確保先初始化神策分析 SDK(參考文件 https://manual.sensorsdata.cn/sa/latest/tech_sdk_client_android_basic-17563982.html)
        // A/B Testing SDK 初始化
        SensorsABTestConfigOptions abTestConfigOptions = new SensorsABTestConfigOptions("分流測試請求網址");
        SensorsABTest.startWithConfigOptions(this, abTestConfigOptions);
    } catch (Exception e) {
        e.printStackTrace();
    }
JAVA

3. 取得測試變量

初始化 SDK 之後,透過 API 取得具體測試的變量值,根據取得測試變量值的方式,可分為下面三種策略:

  • fetchCacheABTest :讀取本地快取,快取不存在時使用預設值(對照組)
  • asyncFetchABTest 忽略本地快取,從伺服器端取得數據
  • fastFetchABTest 優先讀取本地快取,快取不存在時從伺服器端取得數據

以 fastFetchABTest 為例,可在相應的業務邏輯中增加如下程式碼:

import com.sensorsdata.abtest.SensorsABTest;
import com.sensorsdata.abtest.OnABTestReceivedData;

    try {
        SensorsABTest.shareInstance().fastFetchABTest("具體的測試 ID", 0, new OnABTestReceivedData<Integer>() {
            @Override
            public void onResult(Integer result) {
                // TODO 根據 result 處理相應邏輯
                switch (result) {
                    case 0:
                        // 對照組的處理邏輯
                        break;
                    case 1:
                        // 測試組 1 的處理邏輯
                        break;
                    case 2:
                        // 測試組 2 的處理邏輯
                        break;
                    // ……
                    // ……
                    default:
                        // 其他情況的處理邏輯
                        break;
                }
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
JAVA

目前 A/B Testing 測試變量僅支援 Integer 型別,其他型別測試變量在持續開發中

4. 除錯測試

如果需要將當前裝置指定為某測試組,可透過掃描 QR code 將當前裝置錄入該測試組白名單: 

  • 錄入前請確保 App 已正確設定 Scheme
  • 測試組白名單僅在測試除錯狀態下有效,測試發佈後不受白名單影響