Unity
最新バージョン:v1.0.0
更新日:2026-08-04
リソースのダウンロード:ダウンロード
1. 概要
バージョン6.1から、AEに実験スイート機能が追加されました。AE管理画面で実験を作成し、コントロールグループとテストグループの変数値を設定して、クライアントSDKでAppに取得することで、グループごとに異なるコンテンツをユーザーに表示できます。
このドキュメントでは、UnityクライアントSDKの統合手順を説明します。App側はThinkingData SDKとのやり取りだけを考慮すればよく、AE管理画面のタスクの詳細を気にする必要はありません。
なお、実験SDKは構成センターSDKと組み合わせて使用する必要があります。
2. 統合
2.1 SDKの自動統合
Unity Package Managerは、パッケージのpackage.jsonでGit依存関係を宣言することに対応していません。そのため、ホストプロジェクトのPackages/manifest.jsonに、分析SDK、構成センターSDK、実験SDKをまとめて追加する必要があります:
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から1つずつ追加することもできます。
2.2 SDKの手動統合
実験SDKには、次のThinkingData SDKが必要です:
| SDK名 | 機能紹介 | バージョン要件 |
|---|---|---|
| TDAnalytics | データの収集と処理を行います | >= 3.5.0 |
| TDRemoteConfig | AE管理画面の設定情報を取得します | >= 1.2.4 |
- ページ上部のリソースのダウンロードリンクをクリックし、SDKをダウンロードして解凍します
- 先に分析SDKと構成センターSDKのunitypackageをインポートします
- 次に
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:データの送信先URL
- 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);

