Unity
接続する前に、まず接続前の準備をお読みください。
Unity SDK:iOS、Android、HarmonyOS、Unity Editor、Windows、Mac、WebGL、Switch、Xbox、PS4/5などのゲーム端末に対応し、WeChatミニゲーム、Douyinミニゲーム、OPPOなどのミニゲームプラットフォームにも対応しています
対応する最低バージョンはUnity 5.4.0で、サイズは約320 KBです
最新バージョン: v3.5.3
更新日: 2026-09-22
このドキュメントはv3.0.0以降のバージョンに適用されます。以前のバージョンについては、Unity接続ガイド(V2)、SDKダウンロード(v2.6.1)を参照してください
1. SDKの統合
1.1 手動統合
- Unity SDKのリソースファイルをダウンロードします
ta_unity_sdk.unitypackageファイルをダブルクリックするか、Assets > Import Package > Custom Packageからta_unity_sdk.unitypackageをインポートします
unitypackageを3.3.0から3.4+.xにアップグレードする場合は、既存のSDKを削除してからインポートする必要があります
目的:Unity/Tuanjie EngineでHarmonyOSプラットフォーム向けにエクスポートすると、.tsファイルが失われる問題がまれに発生するため、現在はすべてのtsファイルの名前を.tslibに変更しています。既存のファイルを削除しないと、ファイル名が重複する問題が発生します
1.2 Package Managerによる統合
v2.4.1以降は、Package Managerを使ってSDKを自動的に組み込むことができます。
Window-Package Managerメニューを開きます+をクリックし、Add package from git URL...を選択しますhttps://github.com/ThinkingDataAnalytics/unity-sdk.gitを入力してAddをクリックし、読み込みが完了するまで待ちます
2. 初期化
SDKは手動で初期化することをお勧めします。プレハブによる自動初期化の方法も用意しています。
2.1 手動初期化
using ThinkingData.Analytics;
//初期化方法1
TDAnalytics.Init("APPID","SERVER");
//初期化方法2
TDConfig config = new TDConfig("APPID","SERVER");
TDAnalytics.Init(config);
2.2 自動初期化
Package Managerによる統合でSDKを組み込んだ場合は、一部の設定にのみ対応しています。実際の内容を確認してください。
TDAnalyticsプレハブを追加し、SDKの設定を行います
上図の各設定項目は次のとおりです:
Configuration
-
Start Manually:手動初期化を有効にするかどうか
- 有効にした場合は、
TDAnalytics.Init()を手動で呼び出してSDKを初期化する必要があります。 - 有効にしない場合は、
TDAnalyticsプレハブの読み込み時にSDKが自動的に初期化されます。
- 有効にした場合は、
-
Enable Log:ログを有効にするかどうか。有効にすると送信状況が出力されるため、デバッグに便利です。Editorモードでもイベントが正しく送信されているかを確認でき、条件を満たさないプロパティは
warningログとしてコンソールに表示されます。 -
Network Type:データ送信のネットワーク条件です。デフォルトは
Allで、どのネットワークでも送信します。Wifiを選択すると、WiFiネットワークでのみ送信します。iOS、Android、HarmonyOSプラットフォームでのみ有効で、PC、WebGL、ミニゲームでは設定しても無効です。
Configs
各Configが1つのインスタンスを表します。複数のプロジェクトにデータを送信する場合は、右下の「+」をクリックしてプロジェクトの設定を追加できます。異なるAPP IDを持つ複数のToken設定を追加できます。
-
APP ID: 設定が必要です。プロジェクトのAPP_IDで、プロジェクトの申請時に発行されます。ここに入力してください。
-
SERVER URL: 設定が必要です。データ受信側のURLです:
- クラウドサービスを利用している場合は、次のURLを入力してください: https://global-receiver-ta.thinkingdata.cn
- プライベートデプロイ版を利用している場合は、次のURLを入力してください: https://データ収集アドレス
-
MODE: SDKインスタンスの実行モードです。本番環境では必ずNORMALモードを使用してください。
-
TimeZone:SDKインスタンスのデフォルトタイムゾーンで、イベント時間を揃えるために使用します。応用ガイドのデフォルトタイムゾーンの設定と同じ役割です。デフォルトは
Local(デバイスのローカルタイムゾーン)で、UTC、Asia_Shanghai、Asia_Tokyo、America_Los_Angeles、America_New_Yorkを選択できます。Otherを選択した場合は、右側の入力欄にタイムゾーンIDを入力します。
注意:一部のデバイスではデフォルトで平文での通信が禁止されているため、HTTPS形式の受信側URLを使用することを強く推奨します
3. よく使う機能
よく使う機能を使用する前に、まずユーザー識別ルールを確認することをお勧めします。SDKはデフォルトで乱数を生成してゲストIDとし、ゲストIDをローカルに永続的に保存します。ユーザーがログインするまでは、ゲストIDが識別IDとして使われます。注意:ゲストIDは、ユーザーがAppを再インストールしたり、デバイスを変更したりすると変わります。
3.1 アカウントIDの設定
ユーザーがログインする際にLoginを呼び出してユーザーのアカウントIDを設定できます。AEプラットフォームはアカウントIDを識別IDとして使用し、設定したアカウントIDはLogoutを呼び出すまで保持されます。Loginを複数回呼び出すと、以前のアカウントIDが上書きされます。
// ユーザーのログイン固有識別子。このデータは送信データの#account_idに対応し、この時点で#account_idの値はTA
TDAnalytics.Login("TA");
このメソッドはログインイベントを送信しません
3.2 共通イベントプロパティの設定
共通イベントプロパティとは、すべてのイベントに付与されるプロパティのことです。SetSuperPropertiesを呼び出して共通イベントプロパティを設定できます。イベントを送信する前に、共通イベントプロパティを設定しておくことを推奨します。ユーザーの会員レベルや流入チャネルなどの重要なプロパティは、すべてのイベントに設定する必要があります。その場合は、これらのプロパティを共通イベントプロパティとして設定できます。
Dictionary<string, object> superProperties = new Dictionary<string, object>();
superProperties["channel"] = "ta";//文字列
superProperties["age"] = 1;//数値
superProperties["isSuccess"] = true;//ブール値
superProperties["birthday"] = DateTime.Now;//時間
superProperties["object"] = new Dictionary<string, object>(){{ "key", "value"}};//オブジェクト
superProperties["object_arr"] = new List<object>() {new Dictionary<string, object>(){{ "key", "value" }}};//オブジェクトグループ
superProperties["arr"] = new List<object>() { "value" };//配列
TDAnalytics.SetSuperProperties(superProperties);//共通イベントプロパティを設定
共通イベントプロパティはキャッシュに保存されるため、Appを起動するたびに呼び出す必要はありません。SetSuperPropertiesを呼び出して、以前に設定済みの共通イベントプロパティを設定した場合は、以前のプロパティが上書きされます。
- イベントプロパティは
Dictionary<string, object>型で、各要素が1つのプロパティを表します - Keyはプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア"_"のみを含めることができます。最大長は50文字です。英字の大文字と小文字は区別されず、AEではすべて小文字に変換されます
- Valueはプロパティの値で、文字列、数値、ブール値、時間、オブジェクト、オブジェクトグループ、配列に対応しています
イベントプロパティとユーザープロパティの要件は、共通イベントプロパティと同じです
3.3 自動収集の有効化
次のコード例では、インストール、起動、終了イベントを有効にしています。SDKの自動収集機能について詳しくは、自動収集機能の詳細を参照してください
Harmonyプラットフォームでは、この機能は現在無効になっています
//インストール、起動、終了イベントの自動収集を有効化
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppInstall | TDAutoTrackEventType.AppStart | TDAutoTrackEventType.AppEnd);
3.4 イベントの送信
Trackを呼び出してイベントを送信できます。事前に整理したトラッキングドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。ここでは、ユーザーが商品を購入する場合を例にします
Dictionary<string, object> properties = new Dictionary<string, object>(){{"product_name", "商品名"}};
TDAnalytics.Track("product_buy", properties);
イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
3.5 ユーザープロパティの設定
一般的なユーザープロパティは、UserSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は、新しく作成されます。
//この時点でusernameはTA
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
//この時点でusernameはAE
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
using ThinkingData.Analytics;
if (プライバシーポリシーに同意済み)
{ // SDKを初期化
TDAnalytics.Init("APPID", "SERVER");
//自動収集イベントを有効化
TDAnalytics.EnableAutoTrack(TDAutoTrackEventType.AppInstall | TDAutoTrackEventType.AppStart | TDAutoTrackEventType.AppEnd);
//ユーザーがログイン済みの場合は、ユーザーのアカウントIDを一意の識別子として設定できます
TDAnalytics.Login("TA");
//共通イベントプロパティを設定すると、すべてのイベントに共通イベントプロパティが付与されます
Dictionary<string, object> superProperties = new Dictionary<string, object>();
superProperties["channel"] = "ta";//文字列
superProperties["age"] = 1;//数値
superProperties["isSuccess"] = true;//ブール値
superProperties["birthday"] = DateTime.Now;//時間
superProperties["object"] = new Dictionary<string, object>(){{ "key", "value"}};//オブジェクト
superProperties["object_arr"] = new List<object>() {new Dictionary<string, object>(){{ "key", "value" }}};//オブジェクトグループ
superProperties["arr"] = new List<object>() { "value" };//配列
TDAnalytics.SetSuperProperties(superProperties);//共通イベントプロパティを設定
//イベントを送信
Dictionary<string, object> properties = new Dictionary<string, object>(){{"product_name", "商品名"}};
TDAnalytics.Track("product_buy", properties);
//ユーザープロパティを設定
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
}

