# Treasure AI JavaScript SDKデータプライバシー

Treasure AIのSDKは、EUのGDPR法の多くの一般的な要件への準拠を可能にします。より新しく、より厳格なデータプライバシーポリシーに準拠するのを助けるために、いくつかの方法が有効になっています：

* `blockEvents` / `unblockEvents` - Treasure AIへのすべてのイベント送信をシャットダウンまたは再有効化する引数なしのメソッド。メッセージは送信されず、呼び出しはキャッシュされません。デフォルトではイベントはブロックされていません。これらのメソッドを参照してください：[`blockEvents`](https://github.com/treasure-data/td-js-sdk#treasureblockevents)、[`unblockEvents`](https://github.com/treasure-data/td-js-sdk#treasureunblockevents)、[areEventsBlocked](https://github.com/treasure-data/td-js-sdk#treasureareeventsblocked)。
* `setSignedMode` - 「Signed Mode」に入る引数なしのメソッド。ここでは、一部のPIIがSDKによって自動的に収集される可能性があります。Treasure AIに送信されるデータには、`td_ip`、`td_client_id`、および指定されている場合は`td_global_id`が含まれます。このメソッドを参照してください：[setSignedMode](https://github.com/treasure-data/td-js-sdk#treasuresetsignedmode)。
* `setAnonymousMode` - 「Anonymous Mode」に入る引数なしのメソッド。ここでは、PIIはSDKによって自動的に収集されません。これらのデータは、`td_ip`、`td_client_id`、および指定されている場合は`td_global_id`を特に省略します。これがデフォルトの動作です。このメソッドを参照してください：[setAnonymousMode](https://github.com/treasure-data/td-js-sdk#treasuresetanonymousmode)。
* `resetUUID` - `td_client_id`値をリセットするメソッド。これにより、ユーザーのCookieに保存されている元の値が上書きされ、データ内で完全に新しいユーザーとして表示される可能性があります。リセット中にクライアントIDを指定することも、適切な値を渡すことでカスタムの有効期限を指定することもできます。このメソッドを参照してください：[resetUUID](https://github.com/treasure-data/td-js-sdk#treasureresetuuid)。


新しい設定プロパティも追加されました：`config.startInSignedMode`。この設定オプションは、ユーザーがSignedモードまたはAnonymousモードのどちらにいたいかについて明示的な決定がされていない場合、Signed Modeにデフォルト設定する必要があることをSDKに伝えます。デフォルトの動作は、ユーザーをAnonymous Modeにデフォルト設定することです。

### 例

ユーザーがあなたのサイトにアクセスし、マーケティング目的のウェブトラッキングに同意しているかどうかを知る必要があるとします。この情報を維持するためにConsent Management Vendorと契約があり、同意情報がわかったらウェブトラッキングを設定したいとします。

[Copy Code](<javascript:void(0)>)Code


```javascript
var foo = new Treasure({
  database: 'foo',
  writeKey: 'your_write_only_key'
});
td.trackClicks()

var successConsentCallback = function (consented) {
  if (consented) {
    td.setSignedMode()
  } else {
    td.setAnonymousMode()
  }
}

var failureConsentCallback = function () {
  // error occurred, consent unknown
  td.setAnonymousMode()
}

ConsentManagementVendor.getConsent(userId, successConsentCallback, failureConsentCallback)
```

Consent Management Vendorは、`userId`に関連付けられたユーザーが、マーケティング目的で個人識別情報（*PII*）を使用することに同意しているかどうかに基づいて、コールバックでtrueまたはfalse値を返します。非PIIデータは引き続き収集される可能性があります。

さらに、Consent Management Vendorが同意レベルに基づいて文字列を提供するとします：`MARKETING`、`NON-MARKETING`、`REFUSED`は、それぞれ「マーケティング目的でPIIを使用することに同意した」、「非マーケティング目的でデータを収集することに同意した」、および「すべてのデータ収集を拒否した」を意味します。`successConsentCallback`にわずかな変更を加えるだけです：


```javascript
var successConsentCallback = function (consented) {
  if (consented === 'MARKETING') {
    td.unblockEvents()
    td.setSignedMode()
  } else if (consented === 'NON-MARKETING') {
    td.unblockEvents()
    td.setAnonymousMode()
  } else if (consented === 'REFUSED') {
    td.blockEvents()
  }
}
```

このように書かれたコードは、SignedモードまたはAnonymousモードの場合、Treasure AIでデータを収集します。顧客がすべてのトラッキングを拒否した場合、イベントはブロックされ、このステータスはページの更新を超えて保持されます。