跳到主要内容

Unity

最近更新 2026/10/03

最新版本:v1.0.0

更新时间:2026-08-04

资源下载:下载

1. 概述​

从 6.1 版本开始,AE 新增实验套件功能,支持在 AE 后台创建实验,设置对照组和实验组的变量值,通过客户端 SDK 拉取至 App,为不同组别的用户展示不同的内容。

本文介绍 Unity 客户端 SDK 的集成过程,App 端只需要关注与数数 SDK 的交互即可,不需要关心 AE 后台的任务细节。

需要注意的是,实验 SDK 必须搭配配置中心 SDK 一起使用。

2. 集成​

2.1 自动集成 SDK​

Unity Package Manager 不支持在包的 package.json 中声明 Git 依赖,因此需要在宿主工程的 Packages/manifest.json 中同时添加分析 SDK、配置中心 SDK 和实验 SDK:

  1. 在 Packages/manifest.json 中添加如下依赖
{
"dependencies": {
"com.thinkingdata.analytics": "https://github.com/ThinkingDataAnalytics/unity-sdk.git",
"com.thinkingdata.remoteconfig": "https://github.com/ThinkingDataAnalytics/tdremoteconfig-unity.git",
"com.thinkingdata.experiment": "https://github.com/ThinkingDataAnalytics/tdexperiment-unity.git"
}
}

也可在 Package Manager → Add package from git URL 中逐个添加。

2.2 手动集成 SDK​

实验 SDK 需要依赖以下 数数 SDK:

SDK 名称功能介绍版本要求
TDAnalytics实现数据采集与处理>= 3.5.0
TDRemoteConfig拉取 AE 后台的配置信息>= 1.2.4
  1. 点击页面上方资源下载链接,下载 SDK 并解压
  2. 先导入分析 SDK、配置中心 SDK 对应的 unitypackage
  3. 再导入 ta_experiment_sdk.unitypackage、ta_core_sdk.unitypackage

3. 初始化​

实验 SDK 需要搭配分析 SDK 使用。请先完成 TDAnalytics 初始化,再初始化实验 SDK。

using System.Collections.Generic;
using ThinkingData.Analytics;
using ThinkingData.Experiment;

// 初始化采集 SDK
TDAnalytics.Init("APP_ID", "https://YOUR_SERVER_URL");

// 初始化 Experiment SDK
TDExperimentSettings settings = new TDExperimentSettings();
settings.appId = "APP_ID";
settings.serverUrl = "https://YOUR_SERVER_URL";
settings.automaticExposureTracking = true;
settings.customBucketId = new Dictionary<string, string>();
settings.customFetchParams = new Dictionary<string, object>();
settings.initCallback = new MyInitCallback();
TDExperiment.EnableLog(true);
TDExperiment.Init(settings);

// 也可使用简化初始化
// TDExperiment.Init("APP_ID", "https://YOUR_SERVER_URL");

class MyInitCallback : TDExperimentFetchListener
{
public void OnFetchSuccess()
{
// 拉取实验配置信息成功
}

public void OnError(int code, string message)
{
// 拉取实验配置信息失败
}
}

初始化参数说明:

  • appId:APP ID
  • serverUrl:数据上报地址
  • automaticExposureTracking:默认设置为 true,在 get 获取实验参数的时候自动上传曝光事件
  • customBucketId:自定义分流主体
  • customFetchParams:客户端配置通道上的自定义参数
  • enableLog:是否开启调试日志(通过 TDExperiment.EnableLog 设置)
  • initCallback.OnFetchSuccess:拉取实验配置信息成功
  • initCallback.OnError:拉取实验配置信息失败

4. 使用​

4.1 获取实验信息​

TDExperiment.GetValueAsString(key);

TDExperiment.GetValueAsDouble(key);

TDExperiment.GetValueAsBoolean(key);

TDExperiment.GetValueAsJson(key);

以上方法均提供带默认值的重载,例如 TDExperiment.GetValueAsString(key, "default")。

如果 automaticExposureTracking 为 true,在 get 的时候会自动上传曝光事件。

4.2 上传曝光事件​

可以调用 Exposure 方法,手动上传曝光事件。

TDExperiment.Exposure(key);

4.3 主动拉取所有实验信息​

TDExperiment.Fetch(new MyFetchCallback());

class MyFetchCallback : TDExperimentFetchListener
{
public void OnFetchSuccess()
{
// 成功
}

public void OnError(int code, string message)
{
// 失败
}
}

4.4 自定义分流主体​

Dictionary<string, string> bucketId = new Dictionary<string, string>();
bucketId["bucket_id"] = "account_id";
TDExperiment.SetCustomBucketId(bucketId);

4.5 自定义请求参数​

Dictionary<string, object> fetchParams = new Dictionary<string, object>();
fetchParams["key"] = "value";
TDExperiment.SetCustomFetchParams(fetchParams);
这篇文档对你有帮助吗?