# Cookie Consentを使用したJavaScriptでのWeb Tracking

Cookie Consentは、ウェブサイトでのcookieの使用についてユーザーに警告するための無料のJavaScript pluginです。GDPRなどのデータプライバシー規制に準拠しながら、高品質なユーザー体験を提供するのに役立つように設計されています。

[https://cookieconsent.insites.com/documentation/about-cookie-consent/](https://cookieconsent.insites.com/documentation/about-cookie-consent/)

Treasure Dataは、サイトでTreasure Data JavaScript SDK version 3を使用した新機能や機能の実装を推奨しています。cookieの管理方法が異なります。これらの記事のほとんどを参照する際は、提案されたeventコレクターとTreasure Data JavaScript SDK version 3の呼び出しをソリューション内で定義する必要があることに注意してください。

* [レイアウトのカスタマイズ](/ja/products/customer-data-platform/integration-hub/streaming/td-javascript-sdk/web-tracking-with-javascript-using-cookie-consent#customize-your-layout)
* [ユーザービュー](/ja/products/customer-data-platform/integration-hub/streaming/td-javascript-sdk/web-tracking-with-javascript-using-cookie-consent#user-views)
* [サンプルの実行](/ja/products/customer-data-platform/integration-hub/streaming/td-javascript-sdk/web-tracking-with-javascript-using-cookie-consent#run-a-sample)


# レイアウトのカスタマイズ

以下の例を含む、幅広いレイアウトとカラースキームから選択できます:

![](/assets/screen_shot_2019-08-20_at_6.35.39_pm.faadffcfb5aed073a31c735948e0339aa15ae2114079072c23c30f11286d33a8.ad50cbca.png)

![](/assets/image-20191008-205449.e893c72cab6bc03544429c9c828ac3acf7ef8d8653eefd6a4811f4eba52c995f.ad50cbca.png)

# ユーザービュー

ユーザーが初めてwebページにアクセスすると、デフォルトで以下の情報が保存されたcookieに含まれます(td_ip、td_client_id、td_global_id)。

![](/assets/screen_shot_2019-08-20_at_6.35.39_pm.faadffcfb5aed073a31c735948e0339aa15ae2114079072c23c30f11286d33a8.ad50cbca.png)

ユーザーがcookie consent promptで"Decline"を選択した場合、以下のfield(td_ip、td_client_id、td_global_id)は、このユーザーによる後続のページ訪問では送信**されません**。

![](/assets/screen_shot_2019-08-20_at_6.39.09_pm.9b301e0d788206942b968860edf07df290c17ab01a4f9e9bba0ebda10e38fe5e.ad50cbca.png)

# サンプルの実行

1. テストを実行するには、test.mdを使用してHTMLを作成する必要があります
以下の内容をカスタマイズした詳細に置き換えます:


a. 'WRITE YOUR WRITE ONLY API KEY'

b. 'WRITE YOUR DB NAME'

c. 'WRITE YOUR TABLE NAME'


```html
<html>
  <head>
  <script type="text/javascript">
    !function(t,e){if(void 0===e[t]){e[t]=function(){e[t].clients.push(this),this._init=[Array.prototype.slice.call(arguments)]},e[t].clients=[];for(var r=function(t){return function(){return this["_"+t]=this["_"+t]||[],this["_"+t].push(Array.prototype.slice.call(arguments)),this}},s=["addRecord","blockEvents","fetchServerCookie","fetchGlobalID","fetchUserSegments","resetUUID","ready","setSignedMode","setAnonymousMode","set","trackEvent","trackPageview","trackClicks","unblockEvents"],n=0;n<s.length;n++){var c=s[n];e[t].prototype[c]=r(c)}var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=("https:"===document.location.protocol?"https:":"http:")+"//cdn.treasuredata.com/sdk/2.5/td.min.js";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)}}("Treasure",this);

    // Configure an instance for your database
    var td = new Treasure({
      host: 'in.treasuredata.com',
      writeKey: 'WRITE YOUR WRITE ONLY API KEY',
      database: 'WRITE YOUR DB NAME',
      startInSignedMode: true
    });

    // Enable cross-domain tracking
    td.set('$global', 'td_global_id', 'td_global_id');
    // Track pageview information to a table
    td.trackPageview('WRITE YOUR TABLE NAME');
    </script>
    <!-- =======================================================
      Start https://cookieconsent.insites.com/ tag
    ======================================================= -->
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js"></script>
    <script>
    window.addEventListener("load", function(){
      window.cookieconsent.initialise({
        "palette": {
        "popup": {
          "background": "#3c404d",
          "text": "#d6d6d6"
        },
        "button": {
          "background": "#8bed4f"
        }
      },
        "type": "opt-out",
        "revokable": true,
        onStatusChange: function(status) {
          this.hasConsented() ? td.setSignedMode() : td.setAnonymousMode();
          },
        })
      });
      </script>
    </head>
  <body></body>
</html>
```

1. 簡単なHTTPサーバーをセットアップします。


たとえばMacの場合:


```bash
sudo apachectl start
sudo cp test.md /Library/WebServer/Documents
# setup owner and permission same with other files in copy destination folder above
# sudo chown
# sudo chmod
```

ブラウザから次のURLにアクセスしてみてください: http://127.0.0.1/test.md

または、このライブデモを参照できます: [https://treasure-data.github.io/js-examples/consensus-management/index.html](https://treasure-data.github.io/js-examples/consensus-management/index.html)

下部にバーが表示された空白のページが表示されます。

1. "Allow cookies"オプションを選択しないでください。


![](/assets/screen_shot_2019-03-13_at_18.28.45.ed34df1f38e7b557e489b90bfbf7161a4e292df6e91cd2845493a3bfa8832eb6.ad50cbca.png)

1. ページを数回更新し、tracking情報が送信される宛先tableを確認します。
最大で数分後には、宛先tableでstreamingデータが表示され始めるはずです。
2. 以下のようなqueryを実行して、streamingデータを確認します:



```sql
select td_ip,td_client_id,td_global_id from <db name>.<tbl name>
```

![](/assets/screen_shot_2019-03-13_at_18.18.35.050e9f4360943cc3501eea0b94af96ca31e47f6bdbedfb4a98442b5a57d3245d.ad50cbca.png)
6. test.mdページでDeclineを選択します。

1. ページを更新します。更新後、consent promptは表示されなくなります。


![](/assets/screen_shot_2019-03-13_at_18.28.45.ed34df1f38e7b557e489b90bfbf7161a4e292df6e91cd2845493a3bfa8832eb6.ad50cbca.png)

1. web trackingの宛先tableを再度確認します。
最大で数分後には、宛先tableで新しいstreamingデータが表示され始めるはずです。
2. 以下のようなqueryを実行して確認します:



```sql
select td_ip,td_client_id,td_global_id from <db name>.<tbl name>
```

以下のtableでは、td_ip、td_client_id、td_global_id columnがTDに送信されたstreamingデータから除外されていることがわかります。

![](/assets/screen_shot_2019-03-13_at_18.21.49.95acf0d08ec7aa9dc7bf145888f3f1096245066fbd356463fb64f9aea013aca7.ad50cbca.png)

1. ローカルPCでHTTPサーバーの実行を停止し、test.mdファイルを削除することでファイルをクリーンアップできます。



```bash
sudo apachectl stop
sudo rm -f Library/WebServer/Documents/test.md
```