C#
接続する前に、まず接続前の準備をお読みください。
C# SDKはWindows、Macプラットフォームで動作します。
最新バージョン: 2.0.1
更新日: 2025-10-13
このドキュメントはv2.0.0以降のバージョンを対象としています。以前のバージョンについては、C#接続ガイド(旧)を参照してください
1. SDKの統合
1.1 SDKのダウンロード
GitHubからC# SDKのソースコードをダウンロードし、TDAnalyticsSDKディレクトリ配下のファイルをプロジェクトに追加します。
SDKはjsonの解析にNewtonsoft.Jsonフレームワークを使用しています。Visual Studioを使用している場合は、NuGetでNewtonsoft.Jsonライブラリを追加してください。
1.2 動的ライブラリの追加
-
dllをダウンロードして解凍します(どちらか一方をダウンロードすれば十分です)
-
Windowsプラットフォームでは、windowsフォルダー内のdllファイルをプロジェクトのルートディレクトリにコピーします。(注意:dllがプロジェクトの既存のdllと競合する場合は、プロジェクトの既存のものを使用してください)
-
Macプラットフォーム
- ステップ1:homebrewでsqlite、curl、zlib、opensslの4つのライブラリをインストールします
- ステップ2:macOSフォルダー内のライブラリファイル(libCppWrapper.dylib、libthinkingdata.a)をプロジェクトのルートディレクトリにコピーします
2. 初期化
ThinkingData.Analyticsをインポートし、TDAnalyticsクラスを使用してAEインスタンスを初期化します。
using ThinkingData.Analytics;
TDAnalytics.Init(APPID,SERVER_URL);
パラメータの説明:
-
APPID: プロジェクトのAPPIDです。AE管理画面の「プロジェクト管理」ページで取得できます -
SERVER_URL: データの送信先URL- クラウドサービスをご利用の場合は、次を入力します: https://global-receiver-ta.thinkingdata.cn
- プライベートデプロイ版をご利用の場合は、データ収集アドレスにドメインをバインドし、HTTPS証明書を設定してください:https://データ収集アドレスにバインドしたドメイン
3. よく使う機能
よく使う機能を使用する前に、まずユーザー識別ルールを確認することをお勧めします。SDKはデフォルトで乱数を生成してゲストIDとし、ゲストIDをローカルに永続的に保存します。ユーザーがログインするまでは、ゲストIDが識別IDとして使われます。注意:ゲストIDは、ユーザーがAppを再インストールしたり、デバイスを変更したりすると変わります。
3.1 アカウントIDの設定
ユーザーがログインする際にLoginを呼び出してユーザーのアカウントIDを設定できます。AEプラットフォームはアカウントIDを識別IDとして使用し、設定したアカウントIDはLogoutを呼び出すまで保持されます。Loginを複数回呼び出すと、以前のアカウントIDが上書きされます。
TDAnalytics.Login("TA");
Loginは複数回呼び出せます。呼び出すたびに、渡されたアカウントIDが以前に保存したIDと一致するかどうかを判定し、一致する場合は呼び出しを無視し、一致しない場合は以前のIDを上書きします。
このメソッドはログインイベントを送信しません
3.2 イベントの送信
Trackを呼び出してイベントを送信できます。事前に整理したトラッキングドキュメントに従って、イベントのプロパティと送信条件を設定することをお勧めします。ここでは、ユーザーが商品を購入する場合を例にします:
Dictionary<string, object> dic = new Dictionary<string, object>();
dic.Add("channel", "ta");//文字列
dic.Add("id", 618834);//数値
dic.Add("isSuccess", true);//ブール
dic.Add("create_date", Convert.ToDateTime("2019-7-8 20:23:22"));//時間
List<string> arr = new List<string>();
arr.Add("value");
dic.Add("arr", arr);//配列
TDAnalytics.Track("product_buy", dic);
-
イベント名は文字列型で、英字で始まり、数字、英字、アンダースコア"_"を含めることができます。最大長は50文字です。
-
イベントのプロパティはDictionary型です
- Keyはプロパティの名前で、文字列型です。英字で始まり、数字、英字、アンダースコア"_"のみを含めることができます。最大長は50文字です。英字の大文字と小文字は区別されず、AEではすべて小文字に変換されます
- Valueはそのプロパティの値で、文字列、数値、ブール、時間、オブジェクトを使用できます
ユーザープロパティの要件は、イベントプロパティと同じです
3.3 ユーザープロパティの設定
一般的なユーザープロパティは、UserSetを呼び出して設定できます。このインターフェースで送信したプロパティは、既存のプロパティ値を上書きします。そのユーザープロパティが以前に存在しない場合は新しく作成され、タイプは渡されたプロパティのタイプと同じになります。ここでは、ユーザー名の設定を例にします:
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
4. ベストプラクティス
次のサンプルコードには、上記のすべての操作が含まれています。次の手順で使用することをお勧めします:
using ThinkingData.Analytics;
//SDKを初期化
TDAnalytics.Init(APPID,SERVER_URL);
//ユーザーがログイン済みの場合は、ユーザーのアカウントIDを一意の識別子として設定できます
TDAnalytics.Login("TA");
//イベントを送信
Dictionary<string, Object> dic = new Dictionary<string, object>();
dic.Add("channel", "ta");//文字列
dic.Add("id", 618834);//数値
dic.Add("isSuccess", true);//ブール
dic.Add("create_date", Convert.ToDateTime("2019-7-8 20:23:22"));//時間
List<string> arr = new List<string>();
arr.Add("value");
dic.Add("arr", arr);//配列
// 複合データオブジェクト
Dictionary<string, object> json = new Dictionary<string, object>();
json.Add("key", "value");
dic.Add("object", json);
// 複合データオブジェクトの配列
List<Dictionary<string, object>> arr1 = new List<Dictionary<string, object>>();
Dictionary<string, object> json1 = new Dictionary<string, object>();
json1.Add("key", "value");
arr1.Add(json1);
dic.Add("objects", arr1);
TDAnalytics.Track("product_buy", dic);
//ユーザープロパティを設定
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});

