メインコンテンツまでスキップ

Unity

最終更新 2026/10/03

最新バージョン: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をまとめて追加する必要があります:

  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から1つずつ追加することもできます。

2.2 SDKの手動統合​

実験SDKには、次のThinkingData SDKが必要です:

SDK名機能紹介バージョン要件
TDAnalyticsデータの収集と処理を行います>= 3.5.0
TDRemoteConfigAE管理画面の設定情報を取得します>= 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:データの送信先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);
このページは役に立ちましたか?