# 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
)
```

書き込み専用の Treasure API キーを設定します。初期化時に設定することをお勧めします。

| パラメータ | 説明 |
|  --- | --- |
| apiKey | TD 書き込み専用 API キー |




### EnableLogging


```cpp
static inline void EnableLogging()
```

デバッグログを有効にします。



### DisableLogging


```cpp
static inline void DisableLogging()
```

デバッグログを無効にします。



### InitializeApiEndpoint


```cpp
static inline void InitializeApiEndpoint(
    string apiEndpoint
)
```

使用する Treasure 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 アカウントにすでに存在していることを確認してください。

*例*


```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