# Unity
TIP
実装する前にデータアクセスの準備を確認しておいてください。
Unity SDK 対応プラットフォーム: iOS、Android、Unity Editor、Windows、Mac、WebGL、Switch、Wechat などのミニアプリプラットフォーム
Unity 5.4.0 以上バージョン対応、サイズ約 320 KBとなります。
最新バージョン: v3.0.3 ダウンロード (opens new window)
更新時間: 2024-02-01
ソースコード: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
TDAnalytics.Init("APPID","SERVER");
//Method 2
TDConfig config = new TDConfig("APPID","SERVER");
TDAnalytics.Init(config);
# 2.2 自動で初期設定
TIP
Package Managerを介してSDKを統合する場合、一部の設定のみがサポートされています。実際の内容に従ってください。
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
TDAnalytics.Login("TA");
この方法ではログインイベントを送信されません
# 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
TDAnalytics.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
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);
イベント名はstringタイプで、英文字と数字、 "_"を含め、最大50文字まで入力可能です。
# 3.5 ユーザープロパティ設定
一般のユーザープロパティに関しては、UserSet
を利用して設定することができますが、 UserSet
は元の値を上書きされます。本来該当プロパティに値がない場合は、プロパティが新規作成されます。以下はコード例となります。
//the username now is TA
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
//the username now is TE
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TE"}});
# コード例のまとめ
以下のコード例で全ての操作が含まれます、以下の順で利用推奨しております:
if (Authorized Privacy Policy)
{
//Initialize SDK
TDAnalytics.Init("APPID", "SERVER");
//if the user has logged in, the account ID of the user could be set as the unique identifier
TDAnalytics.Login("TA");
//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
TDAnalytics.SetSuperProperties(superProperties);//set super properties
//Enable auto-tracking
TDAnalytics.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", "アイテム名")}};
TDAnalytics.Track("product_buy", properties);
//Set user properties
TDAnalytics.UserSet(new Dictionary<string, object>(){{"user_name", "TA"}});
}