# Treasure Data Unity SDK API リファレンス ## 概要 ```cpp class TreasureData; ``` `ITreasureData` インターフェースは、Unity 開発で使用するためにネイティブの iOS および Android SDK をラップします。ご不明な点がある場合は、基盤となる SDK API リファレンスドキュメントを参照してください。 ## パブリックプロパティ ### property Instance ```cpp static ITreasureData Instance; ``` Treasure Data オブジェクトインスタンス。アクセスする前に必ず `InitializeApiKey` を呼び出してください。 ### property DefaultDatabase ```cpp string DefaultDatabase; ``` イベントの送信先となるデフォルトデータベース。初期化時に設定することをお勧めします。 ### property DefaultTable ```cpp string DefaultTable; ``` イベントの送信先となるデフォルトテーブル。初期化時に設定することをお勧めします。 ## パブリック関数 ### InitializeApiKey ```cpp static inline void InitializeApiKey( string apiKey ) ``` 書き込み専用の TD API キーを設定します。初期化時に設定することをお勧めします。 | パラメータ | 説明 | | --- | --- | | apiKey | TD 書き込み専用 API キー | ### EnableLogging ```cpp static inline void EnableLogging() ``` デバッグログを有効にします。 ### DisableLogging ```cpp static inline void DisableLogging() ``` デバッグログを無効にします。 ### InitializeApiEndpoint ```cpp static inline void InitializeApiEndpoint( string apiEndpoint ) ``` 使用する TD API エンドポイントを設定します。デフォルトは `records.in.treasuredata.com` です。 *例* ```cpp TreasureData.InitializeApiEndpoint("https://us01.records.in.treasuredata.com"); ``` | パラメータ | 説明 | | --- | --- | | apiEndpoint | データの送信先 API エンドポイント | ### InitializeEncryptionKey ```cpp static inline void InitializeEncryptionKey( string encryptionKey ) ``` AES 128 暗号化を初期化します。文字列は 128 文字未満である必要があります。これにより `AddEvent` に渡されるイベントデータが暗号化されます。 *例* ```cpp TreasureData.InitializeEncryptionKey("hello world"); : TreasureData.Instance.AddEvent("testdb", "unitytbl", ev); ``` | パラメータ | 説明 | | --- | --- | | encryptionKey | ローカルデバイス暗号化に使用する暗号化キーの文字列 | ### InitializeDefaultApiKey ```cpp static inline void InitializeDefaultApiKey( string apiKey ) ``` 初期化されたすべての TD オブジェクトで自動的に使用されるデフォルト API キーを設定します。書き込み専用 API キーの使用をお勧めします。 | パラメータ | 説明 | | --- | --- | | apiKey | TD 書き込み専用 API キー | ### InitializeDefaultDatabase ```cpp static inline void InitializeDefaultDatabase( string database ) ``` 初期化されたすべての TD オブジェクトで自動的に使用されるデフォルトデータベースを設定します。このデータベースが Treasure Data アカウントにすでに存在していることを確認してください。 *例* ```cpp TreasureData.InitializeDefaultDatabase("testdb"); : TreasureData.Instance.AddEvent("unitytbl", ev); ``` | パラメータ | 説明 | | --- | --- | | database | データベース名 | ### StartGlobalSession ```cpp static inline void StartGlobalSession() ``` グローバルセッションのトラッキングを開始します。 ### EndGlobalSession ```cpp static inline void EndGlobalSession() ``` グローバルセッションのトラッキングを終了します。 ### GetGlobalSessionId ```cpp static inline string GetGlobalSessionId() ``` 現在のグローバルセッション ID を取得します。 ### EnableCustomEvent ```cpp inline void EnableCustomEvent() ``` カスタムイベントトラッキングを有効にします。 ### DisableCustomEvent ```cpp inline void DisableCustomEvent() ``` カスタムイベントトラッキングを無効にします。 ### IsCustomEventEnabled ```cpp inline bool IsCustomEventEnabled() ``` カスタムイベントトラッキングが有効かどうかを返します。 **戻り値**: true: 有効、false: 無効 ### EnableAppLifecycleEvent ```cpp inline void EnableAppLifecycleEvent() ``` アプリライフサイクルトラッキングを有効にします。この設定はカスタムトラッキングには影響しません。 ### DisableAppLifecycleEvent ```cpp inline void DisableAppLifecycleEvent() ``` アプリライフサイクルトラッキングを無効にします。この設定はカスタムトラッキングには影響しません。 ### IsAppLifecycleEventEnabled ```cpp inline bool IsAppLifecycleEventEnabled() ``` アプリケーションライフサイクルトラッキングが有効かどうかを返します。 **戻り値**: true: 有効、false: 無効 ### EnableInAppPurchaseEvent ```cpp inline void EnableInAppPurchaseEvent( bool flag =true ) ``` アプリ内購入イベントの自動トラッキングを有効にします。デフォルトでは無効です。 | パラメータ | 説明 | | --- | --- | | flag | Boolean true / false | ### DisableInAppPurchaseEvent ```cpp inline void DisableInAppPurchaseEvent() ``` アプリ内購入イベントの自動トラッキングを無効にします。デフォルトでは無効です。 ### IsInAppPurchaseEventEnabled ```cpp inline bool IsInAppPurchaseEventEnabled() ``` アプリ内購入トラッキングが有効かどうかを返します。 **戻り値**: true: 有効、false: 無効 ### ResetUniqId ```cpp inline void ResetUniqId() ``` UUID をリセットし、古い UUID で `forget_device_uuid` イベントを送信します。 ### AddEvent ```cpp inline bool AddEvent( string table, string key, object val ) ``` ローカルバッファにイベントを追加します。 | パラメータ | 説明 | | --- | --- | | table | イベントの送信先テーブル | | key | イベントオブジェクトのキー | | val | イベントオブジェクトの値 | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string table, string key, object val, OnSuccess onSuccess, OnError onError ) ``` コールバック付きでローカルバッファにイベントを追加します。 | パラメータ | 説明 | | --- | --- | | table | イベントの送信先テーブル | | key | イベントオブジェクトのキー | | val | イベントオブジェクトの値 | | onSuccess | 正常実行時のコールバック関数 | | onError | 失敗時のコールバック関数 | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string table, Dictionary< string, object > obj ) ``` ローカルバッファにイベントを追加します。データベースとして DefaultDatabase を使用します。 | パラメータ | 説明 | | --- | --- | | table | イベントの送信先テーブル | | obj | イベントオブジェクト | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string table, Dictionary< string, object > obj, OnSuccess onSuccess, OnError onError ) ``` コールバック付きでローカルバッファにイベントを追加します。データベースとして DefaultDatabase を使用します。 | パラメータ | 説明 | | --- | --- | | table | イベントの送信先テーブル | | obj | イベントオブジェクト | | onSuccess | 正常実行時のコールバック関数 | | onError | 失敗時のコールバック関数 | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string database, string table, string key, object val ) ``` ローカルバッファにイベントを追加します。 | パラメータ | 説明 | | --- | --- | | database | イベントの送信先データベース | | table | イベントの送信先テーブル | | key | イベントオブジェクトのキー | | val | イベントオブジェクトの値 | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string database, string table, string key, object val, OnSuccess onSuccess, OnError onError ) ``` コールバック付きでローカルバッファにイベントを追加します。 | パラメータ | 説明 | | --- | --- | | database | イベントの送信先データベース | | table | イベントの送信先テーブル | | key | イベントオブジェクトのキー | | val | イベントオブジェクトの値 | | onSuccess | 正常実行時のコールバック関数 | | onError | 失敗時のコールバック関数 | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string database, string table, Dictionary< string, object > events ) ``` ローカルバッファにイベントを追加します。 | パラメータ | 説明 | | --- | --- | | database | イベントの送信先データベース | | table | イベントの送信先テーブル | | events | イベントデータ | **戻り値**: bool 成功/失敗を示す boolean ### AddEvent ```cpp inline bool AddEvent( string database, string table, Dictionary< string, object > events, OnSuccess onSuccess, OnError onError ) ``` コールバック付きでローカルバッファにイベントを追加します。 | パラメータ | 説明 | | --- | --- | | database | イベントの送信先データベース | | table | イベントの送信先テーブル | | events | イベントデータ | | onSuccess | 正常実行時のコールバック関数 | | onError | 失敗時のコールバック関数 | **戻り値**: bool 成功/失敗を示す boolean ### UploadEvents ```cpp inline void UploadEvents() ``` ローカルバッファから Treasure Data にイベントをアップロードします。 ### UploadEvents ```cpp inline void UploadEvents( OnSuccess onSuccess, OnError onError ) ``` ローカルバッファから Treasure Data にイベントをアップロードします。成功または失敗時に `onSuccess` および `onError` コールバックをトリガーします。 | パラメータ | 説明 | | --- | --- | | onSuccess | アップロード成功時にトリガーするコールバック関数 | | onError | アップロード失敗時にトリガーするコールバック関数 | ### DisableAutoAppendUniqId ```cpp inline void DisableAutoAppendUniqId() ``` 自動付加される `td_uuid` 列を無効にします。 ### EnableAutoAppendUniqId ```cpp inline void EnableAutoAppendUniqId() ``` すべてのイベントに `td_uuid` 列を自動的に付加します。値はランダムに生成され、アプリケーションの起動やイベントをまたいで保持されます。基本的に、アプリケーションの一意のインストールインスタンスを表すために使用されます。デフォルトでは無効です。アプリケーションがアンインストールされるまでこの値は変わりません。 *例* ```cpp TreasureData.Instance.EnableAutoAppendUniqId(); : TreasureData.Instance.AddEvent("unitytbl", "name", "foobar"); // 出力 =>> // {"td_uuid_id":"cad88260-67b4-0242-1329-2650772a66b1", "name":"foobar", ... } ``` ### DisableAutoAppendModelInformation ```cpp inline void DisableAutoAppendModelInformation() ``` モデル情報の自動トラッキングを無効にします。 ### EnableAutoAppendModelInformation ```cpp inline void EnableAutoAppendModelInformation() ``` デバイスモデル情報の自動トラッキングを有効にします。 *例* ```cpp TreasureData.Instance.EnableAutoAppendModelInformation(); : TreasureData.Instance.AddEvent("unitytbl", "name", "foobar"); // 出力 =>> // {"td_device":"iPod touch", "name":"foobar", ... } ``` 以下の列名と値が出力されます: * iOS * `td_device` : UIDevice.model * `td_model` : UIDevice.model * `td_os_ver` : UIDevice.model.systemVersion * `td_os_type` : "iOS" * Android * `td_board` : android.os.Build::BOARD * `td_brand` : android.os.Build::BRAND * `td_device` : android.os.Build::DEVICE * `td_display` : android.os.Build::DISPLAY * `td_model` : android.os.Build::MODEL * `td_os_ver` : android.os.Build.VERSION::SDK_INT * `td_os_type` : "Android" ### DisableAutoAppendAppInformation ```cpp inline void DisableAutoAppendAppInformation() ``` アプリケーション情報の自動トラッキングを無効にします。 ### EnableAutoAppendAppInformation ```cpp inline void EnableAutoAppendAppInformation() ``` アプリケーションパッケージのバージョン情報が各イベントに自動的に追加されます。 *例* ```cpp TreasureData.Instance.EnableAutoAppendAppInformation(); : TreasureData.Instance.AddEvent("unitytbl", "name", "foobar"); // 出力 =>> // {"td_app_ver":"1.2.3", "name":"foobar", ... } ``` 以下の列名と値が出力されます: * iOS * `td_app_ver` : Core Foundation キー `CFBundleShortVersionString` * `td_app_ver_num` : Core Foundation キー `CFBundleVersion` * Android * `td_app_ver` : android.content.pm.PackageInfo.versionName(Context.getPackageManager().getPackageInfo() から取得) * `td_app_ver_num` : android.content.pm.PackageInfo.versionCode(Context.getPackageManager().getPackageInfo() から取得) ### DisableAutoAppendLocaleInformation ```cpp inline void DisableAutoAppendLocaleInformation() ``` ロケール情報の自動トラッキングを無効にします。 ### EnableAutoAppendLocaleInformation ```cpp inline void EnableAutoAppendLocaleInformation() ``` 各イベントに追加することでロケール情報の自動トラッキングを有効にします。 *例* ```cpp TreasureData.Instance.EnableAutoAppendLocaleInformation(); : td.AddEvent("unitytbl", "name", "foobar"); // 出力 =>> // {"td_locale_lang":"en", "name":"foobar", ... } ``` 以下の列名と値が出力されます: * iOS * `td_locale_country` : [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode] * `td_locale_lang` : [[NSLocale currentLocale] objectForKey: NSLocaleLanguageCode] * Android * `td_locale_country` : java.util.Locale.getCountry()(Context.getResources().getConfiguration().locale から取得) * `td_locale_lang` : java.util.Locale.getLanguage()(Context.getResources().getConfiguration().locale から取得) ### EnableServerSideUploadTimestamp ```cpp inline void EnableServerSideUploadTimestamp() ``` サーバーでイベントが受信された際に、サーバーサイドのアップロードタイムスタンプを自動的に付加します。デフォルトでは無効です。列名はデフォルトで `time` に設定されます。 *例*: サーバーサイドのアップロード時刻を `time` 列として使用する場合 ```cpp td.EnableServerSideUploadTimestamp(); ``` ### EnableServerSideUploadTimestamp ```cpp inline void EnableServerSideUploadTimestamp( string v ) ``` サーバーでイベントが受信された際に、サーバーサイドのアップロードタイムスタンプを自動的に付加します。デフォルトでは無効です。 *例*: サーバーサイドのアップロード時刻をカスタム列名で追加する場合 ```cpp td.EnableServerSideUploadTimestamp("server_upload_time"); ``` | パラメータ | 説明 | | --- | --- | | columnName | アップロード時刻の値を書き込む列を設定します | ### DisableServerSideUploadTimestamp ```cpp inline void DisableServerSideUploadTimestamp() ``` アップロード時刻列を無効にします。 ### EnableAutoAppendRecordUUID ```cpp inline void EnableAutoAppendRecordUUID() ``` 各イベントにランダムかつ一意の ID を自動的に付加します。デフォルトの列名は `record_uuid` です。各イベントには異なる UUID が付与されます。デフォルトでは無効です。 *例* ```cpp TreasureData.Instance.EnableAutoAppendRecordUUID(); // 列名をカスタマイズする場合は API に渡してください // TreasureData.Instance.EnableAutoAppendRecordUUID("my_record_uuid"); : TreasureData.Instance.AddEvent(...); ``` ### EnableAutoAppendRecordUUID ```cpp inline void EnableAutoAppendRecordUUID( string v ) ``` 各イベントにランダムかつ一意の ID を自動的に付加します。デフォルトでは無効です。 | パラメータ | 説明 | | --- | --- | | columnName | ID を書き込む列 | ### DisableAutoAppendRecordUUID ```cpp inline void DisableAutoAppendRecordUUID() ``` 各イベントへの ID 付加を無効にします。 ### DisableRetryUploading ```cpp inline void DisableRetryUploading() ``` 自動再試行アップロードを無効にします。無効にした後、アプリケーションはアップロードイベントごとに1回のみイベントのアップロードを試みます。 ### EnableRetryUploading ```cpp inline void EnableRetryUploading() ``` 自動再試行アップロードを有効にします。有効にすると、すべてのイベントが正常にアップロードされるまでアプリケーションはイベントのアップロードを継続して試みます。 ### ClearFirstRun ```cpp inline void ClearFirstRun() ``` 初回起動フラグをクリアします。 ### GetSessionId ```cpp inline string GetSessionId() ``` 現在のセッション ID を取得します。 **戻り値**: string セッション ID