本文为您介绍如何使用A/B实验的GO SDK进行实验分流,并获取实验相关的参数配置信息。
前提条件
安装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标识。可以是用户侧的UserID,也可以是设备ID等。
FilterParams:其中sex和male为实验过滤参数,请根据实际情况进行修改。
<DefaultProject>:A/B实验项目名称。请前往A/B实验的新建实验项目。
页面,查看项目名称。具体操作,请参见
文档内容是否对您有帮助?