menu
Is this helpful?

# 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 手動実装

  1. Unity SDK (opens new window) をダウンロード
  2. ta_unity_sdk.unitypackageをクリック、もしくはAssets > Import Package > Custom Packageta_unity_sdk.unitypackageをインポート

# 1.2 Package Manager実装

v2.4.1 以降ではPackage Manager を使ってSDK実装を対応できるようになりました。

  1. Window - Package Manager メニューをオープン
  2. + をクリックし、Add package from git URL... を選択する
  3. 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を統合する場合、一部の設定のみがサポートされています。実際の内容に従ってください。

  1. ThinkingAnalytics のプレハブを追加し、SDK構成を設定します

上図の構成は:

Configuration

  • Start Manually:手動初期設定を有効するかどうか
    1. 有効すると、手動でThinkingAnalyticsAPI.StartThinkingAnalytics()呼び出しを設定の上SDKの初期設定を行います。
    2. 有効にしないと、 ThinkingAnalytics でプレハブをローディング時に自動でSDK初期設定を行います。
  • Enable Log:ログを有効にするかどうか。
    • 有効にすると、送信状況をプリントして、デバッグを容易にします。また、イベントが正しく送信されているかどうかはEditorモードでも確認できます。条件を満たさないプロパティについては、warningログとしてコンソールに表示されます。

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"}});
}