目录
此内容是否有帮助?

# C#

:::: Tips

実装する前にデータアクセスの準備を確認しておいてください。

C# SDK はMac、Windows プラットフォームに対応しており、サイズは29KBとなります。

:::

最新バージョン: v1.1.0

更新時間: 2022-09-27

ダウンロード:SDK Source Code (opens new window)

# SDK実装

GitHub (opens new window) から C# SDK ソース コードをダウンロードし、ディレクトリ内の ThinkingData.cs ファイルをプロジェクトに追加します。

SDKはNewtonsoft.Jsonフレームが依存しjson解析に使用されます。Visual Studioを使用する場合はNuGetを利用してNewtonsoft.Jsonのライブラリに入れてください。

# 初期設定

ThinkingData.Analyticsを入れ、ThinkingdataAnalyticsを利用してTEインスタスの初期設定を行います。

using ThinkingData.Analytics;
ThinkingdataAnalytics ta = new ThinkingdataAnalytics(APPID,SERVER_URL);

パラメータ説明:

  • APPID: プロジェクトのAPPID、TEプロジェクト管理画面にて取得可能
  • SERVER_URL: データ送信URL
    • SaaSの場合はプロジェクト管理→データアクセスURLにて確認してください
    • プライベート構築の場合は、データ送信URLを指定することが可能

# メイン機能

メイン機能を利用する前に、ユーザー識別ルールを確認してくだ;

SDKはゲストIDを自動で作成し、ローカルで保存される;ユーザーがログインする前に、ゲストIDを身分識別IDとして使われます。

注意:ゲストIDはユーザーがアプリを再インストール時にリセットされます。

# 3.1 アカウントIDを設置

ユーザーがログインする時に、loginを呼び出して、ユーザーのアカウントIDを設定できます。TEプラットフォームはアカウントIDを身分識別IDとしてlogoutを呼び出しする前までに保留します。loginを数回呼び出すと、前のアカウントIDが上書きされます。

te.Login("TE");

Login 複数回呼び出すことができ、呼び出しごとに、着信したアカウント ID が以前に保存された ID と一致するかどうかが判断されます。一致する場合、呼び出しは無視され、一致しない場合は、以前の ID が上書きされます。

この方法ではログインイベントを送信されません

# 3.2 イベント送信

trackを呼び出してイベントの送信を行います。事前にデータプランをご用意の上、送信してください。以下はモデルコードとなります。例:アイテム購入

Dictionary<string, object> dic = new Dictionary<string, object>();
properties.Add("channel", "te");//string
dic.Add("id", 618834);//number
dic.Add("isSuccess", true);//boolean
dic.Add("create_date", Convert.ToDateTime("2019-7-8 20:23:22"));//time
List<string> arr = new List<string>();
arr.Add("value");
dic.Add("arr", arr);//array
te.Track("product_buy", dic);
  • イベント名称はstringタイプで、英文字と数字、 "_"を含め、最大50文字
  • イベントプロパティはDictionaryタイプです。
    • Key は当プロパティの名称でstringタイプで、英文字と数字、 "_"を含め、最大50文字。TEシステムは一律で小英文字に統一されます
    • Value は当プロパティの値で、String, Number, Bloon, Time, object, array, list objectを対応しております。

ユーザープロパティはイベントプロパティと一致する必要があります

# 3.3 ユーザープロパティを設定

一般のユーザープロパティに関しては、UserSetを利用して設定することができますが、 UserSetは元の値を上書きされます。本来該当プロパティに値がない場合は、プロパティが新規作成されます。以下はコード例となります。

te.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});

# コード例のまとめ

以下のコード例で全ての操作が含まれます、以下の順で利用推奨しております。

using ThinkingData.Analytics;

ThinkingdataAnalytics te = new ThinkingdataAnalytics(APPID,SERVER_URL);
//if the user has logged in, the account ID of the user could be set as the unique identifier 
te.Login("TE");
//track
Dictionary<string, Object> dic = new Dictionary<string, object>();
properties.Add("channel", "te");//string
dic.Add("id", 618834);//number
dic.Add("isSuccess", true);//boolean
dic.Add("create_date", Convert.ToDateTime("2019-7-8 20:23:22"));//time
List<string> arr = new List<string>();
arr.Add("value");
dic.Add("arr", arr);//array
te.Track("product_buy", dic);
// object
Dictionary<string, object> json = new Dictionary<string, object>();
json.Add("key", "value");
dic.Add("object", json);
//array object
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);
//Set user properties
te.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});