# Unity
::: Tips
実装する前にデータアクセスの準備を確認しておいてください。
Unity SDK 対応プラットフォーム: iOS、Android、Unity Editor、Windows、Mac、WebGL、Switch、Wechat などのミニアプリプラットフォーム
Unity 5.4.0 以上バージョン対応、サイズ約 320 KB となります。
:::
最新バージョン: v2.5.1
更新時間: 2022-11-21
ダウンロード:SDK (opens new window), Source Code (opens new window)
# SDK 実装
# 1.1 手动集成
- Unity SDK (opens new window) をダウンロード
ta_unity_sdk.unitypackage
をクリック、もしくはAssets > Import Package > Custom Package
でta_unity_sdk.unitypackage
をインポート
# 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
をクリックしたら、ローディング完了を待つ
# 初期設定
SDK を手動で初期設定することをお勧めします。また自動的に初期設定する方法も提供しています。
# 2.1 手動で初期設定
//Initialize SDK
//Method 1
new GameObject("ThinkingAnalytics", typeof(ThinkingAnalyticsAPI));
ThinkingAnalyticsAPI.StartThinkingAnalytics("APPID","SERVER");
//Method 2
new GameObject("ThinkingAnalytics", typeof(ThinkingAnalyticsAPI));
ThinkingAnalyticsAPI.Token token = new ThinkingAnalyticsAPI.Token("APPID","SERVER");
ThinkingAnalyticsAPI.StartThinkingAnalytics(token);
# 2.2 自動で初期設定
ThinkingAnalytics
のプレハブを追加し、SDK 構成を設定します
上図の構成は:
Configuration
- Start Manually:手動初期設定を有効するかどうか
- 有効すると、手動で
ThinkingAnalyticsAPI.StartThinkingAnalytics()
呼び出しを設定の上 SDK の初期設定を行います。 - 有効にしないと、
ThinkingAnalytics
でプレハブをローディング時に自動で SDK 初期設定を行います。
- 有効すると、手動で
- Enable Log:ログを有効にするかどうか。
- 有効にすると、送信状況をプリントして、デバッグを容易にします。また、イベントが正しく送信されているかどうかは Editor モードでも確認できます。条件を満たさないプロパティについては、
warning
ログとしてコンソールに表示されます。
- 有効にすると、送信状況をプリントして、デバッグを容易にします。また、イベントが正しく送信されているかどうかは Editor モードでも確認できます。条件を満たさないプロパティについては、
Tokens
Token ごとでインスタスを識別されます。複数のプロジェクトにデータ送信する必要がある場合は、右下の「+」をクリックし、プロジェクト構成を追加し、異なる APP ID で複数の Token 構成を設定できます。
APPID
: プロジェクトの APPID、TE プロジェクト管理画面にて取得可能SERVER_URL
: データ送信 URL- SaaS の場合はプロジェクト管理 → データアクセス URL にて確認してください
- プライベート構築の場合は、データ送信 URL を指定することが可能
MODE: SDK インスタンス実行モード、本番環境には必ず NORMAL モードを使用してください。
注: 一部のデバイスでは、デフォルトで平文の送信が禁止されているため、HTTPS 形式の受信側アドレスを使用することを推奨します。
# メイン機能
メイン機能を利用する前に、ユーザー識別ルールを確認してくだ;
SDK はゲスト ID を自動で作成し、ローカルで保存される;ユーザーがログインする前に、ゲスト ID を身分識別 ID として使われます。
注意:ゲスト ID はユーザーがアプリを再インストール時にリセットされます。
# 3.1 アカウント ID を設置
ユーザーがログインする時に、login
を呼び出して、ユーザーのアカウント ID を設定できます。TE プラットフォームはアカウント ID を身分識別 ID としてlogout
を呼び出しする前までに保留します。login
を数回呼び出すと、前のアカウント ID が上書きされます。
// The login unique identifier of the user, corresponding to the #account_id in data tracking. #Account_id now is TE
ThinkingAnalyticsAPI.Login("TE");
この方法ではログインイベントを送信されません
# 3.2 共通イベントプロパティ設定
共通イベントプロパティは全てのイベントに含まれるプロパティとなります。setSuperProperties
を呼び出しして設定することできます。イベント送信する前に、共通イベントプロパティを設定しておいてください。
例えば:プレイヤーのレベル、戦闘力、所持資源などのプロパティ
Dictionary<string, object> superProperties = new Dictionary<string, object>();
superProperties["channel"] = "te";//string
superProperties["age"] = 1;//number
superProperties["isSuccess"] = true;//boolean
superProperties["birthday"] = DateTime.Now;//time
superProperties["object"] = new Dictionary<string, object>(){{ "key", "value"}};//object
superProperties["object_arr"] = new List<object>() {new Dictionary<string, object>(){{ "key", "value" }}};//object array
superProperties["arr"] = new List<object>() { "value" };//array
ThinkingAnalyticsAPI.SetSuperProperties(superProperties);//set super properties
共通イベントプロパティはキャッシュに保存され、App を起動する度に呼び出す必要はありません。もし呼び出す場合はsetSuperProperties
:以前設定した共通イベントプロパティは上書きされます。
- イベントプロパティは Dictionary<string, object> タイプの場合は、エレメントごとにプロパティとして切り分けられます
- Key は当プロパティの名称で string タイプで、英文字と数字、 "_"を含め、最大 50 文字。TE システムは一律で小英文字に統一されます
- Value は当プロパティの値で、String, Number, Bloon, Time, object, array, list object を対応しております。
イベントプロパティ、ユーザープロパティは共通イベントプロパティと一致する必要があります。
# 3.3 自動収集イベントの On/Off
クライアント SDK は一部イベントを自動収集することが可能で、実際業務状況に応じて on/off にしてください。以下は参考となります。
//enable auto-tracking events
ThinkingAnalyticsAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.APP_INSTALL | AUTO_TRACK_EVENTS.APP_START | AUTO_TRACK_EVENTS.APP_END);
# 3.4 イベント送信
track
を呼び出してイベントの送信を行います。事前にデータプランをご用意の上、送信してください。以下はモデルコードとなります。例:アイテム購入
Dictionary<string, object> properties = new Dictionary<string, object>(){{"product_name", "アイテム名")}};
ThinkingAnalyticsAPI.Track("product_buy", properties);
イベント名は string タイプで、英文字と数字、 "_"を含め、最大 50 文字まで入力可能です。
# 3.5 ユーザープロパティ設定
一般のユーザープロパティに関しては、UserSet
を利用して設定することができますが、 UserSet
は元の値を上書きされます。本来該当プロパティに値がない場合は、プロパティが新規作成されます。以下はコード例となります。
//the username now is TA
ThinkingAnalyticsAPI.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
//the username now is TE
ThinkingAnalyticsAPI.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});
# コード例のまとめ
以下のコード例で全ての操作が含まれます、以下の順で利用推奨しております:
if (privacy policy is authorized)
{
//Initialize SDK
new GameObject("ThinkingAnalytics", typeof(ThinkingAnalyticsAPI));
ThinkingAnalyticsAPI.StartThinkingAnalytics("APPID", "SERVER");
//if the user has logged in, the account ID of the user could be set as the unique identifier
ThinkingAnalyticsAPI.Login("TE");
//After setting super properties, each event would have super properties
Dictionary<string, object> superProperties = new Dictionary<string, object>();
superProperties["channel"] = "te";//string
superProperties["age"] = 1;//number
superProperties["isSuccess"] = true;//boolean
superProperties["birthday"] = DateTime.Now;//time
superProperties["object"] = new Dictionary<string, object>(){{ "key", "value"}};//object
superProperties["object_arr"] = new List<object>() {new Dictionary<string, object>(){{ "key", "value" }}};//object array
superProperties["arr"] = new List<object>() { "value" };//array
ThinkingAnalyticsAPI.SetSuperProperties(superProperties);//set super properties
//Enable auto-tracking
ThinkingAnalyticsAPI.EnableAutoTrack(AUTO_TRACK_EVENTS.APP_INSTALL | AUTO_TRACK_EVENTS.APP_START | AUTO_TRACK_EVENTS.APP_END);
//Upload events
Dictionary<string, object> properties = new Dictionary<string, object>(){{"product_name", "アイテム名")}};
ThinkingAnalyticsAPI.Track("product_buy", properties);
//Set user properties
ThinkingAnalyticsAPI.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
}