A/B實驗GO SDK
更新時間:
本文為您介紹如何使用A/B實驗的GO SDK進(jìn)行實驗分流,并獲取實驗相關(guān)的參數(shù)配置信息。
前提條件
安裝A/B實驗GO SDK
go get github.com/aliyun/aliyun-pai-ab-go-sdk
使用示例
package main
import (
"fmt"
"log"
"os"
"github.com/aliyun/aliyun-pai-ab-go-sdk/api"
"github.com/aliyun/aliyun-pai-ab-go-sdk/experiments"
"github.com/aliyun/aliyun-pai-ab-go-sdk/model"
)
func main() {
// init config
region := "cn-beijing"
accessId := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")
accessKey := os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
config := api.NewConfiguration(region, accessId, accessKey)
// init client
client, err := experiments.NewExperimentClient(config, experiments.WithLogger(experiments.LoggerFunc(log.Printf)))
if err != nil {
log.Fatal(err)
}
// set up experiment context
experimentContext := model.ExperimentContext{
RequestId: "pvid",
Uid: "157",
FilterParams: map[string]interface{}{
"sex": "male",
"age": 35,
},
}
// match experiment
// DefaultProject is project name
experimentResult := client.MatchExperiment("<DefaultProject>", &experimentContext)
// print experiment info
fmt.Println(experimentResult.Info())
// print exp id
fmt.Println(experimentResult.GetExpId())
// get experiment param value
param := experimentResult.GetExperimentParams().GetString("ab_param_name", "not_exist")
if param != "not_exist" {
// experiment logic
} else {
// default logic
}
}
其中:
region:地域ID,例如華東1(杭州)配置為cn-hangzhou。
RequestId:自定義配置請求ID。
Uid:實驗分流ID標(biāo)識??梢允怯脩魝?cè)的UserID,也可以是設(shè)備ID等。
FilterParams:其中sex和male為實驗過濾參數(shù),請根據(jù)實際情況進(jìn)行修改。
<DefaultProject>:A/B實驗項目名稱。請前往A/B實驗的新建實驗項目。
頁面,查看項目名稱。具體操作,請參見
文檔內(nèi)容是否對您有幫助?