# TD JavaScript SDKを使用したWeb Trackingのチュートリアル

TD JavaScript SDK(TD JS SDK)には、Treasure Dataを通じてウェブサイトの行動を追跡できるsite tagが含まれています。TD JS SDKを使用する利点は、収集する情報が、audience scoring、identity resolution、その他を含む、CDPとしてのTreasure Dataを際立たせる多くのツールに力を与えることです。

Treasure Data JS SDKが実行されるたびに、指定されたtableに新しいレコードが作成され、収集するように指示されたすべてのattributeおよびbehavior dataが追加されます。このデータには、指定した値と、Identity Resolutionおよび個人による行動の追跡に使用できるTreasure Dataで生成されたClientおよびGlobal IDを含めることができます。

このチュートリアルでは、TD JavaScript SDKを使用してウェブサイトの行動を追跡するプロセスについて説明します。

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

* [前提条件](#prerequisites)
* [テストウェブサイトのセットアップまたは既存のウェブサイトの使用](#set-up-test-website-or-use-your-existing-website)
* [テストウェブサイトのセットアップ](#setting-up-test-website)
* [既存のウェブサイトの使用](#use-your-existing-website)
* [新しいDatabaseとTableの作成](#create-new-database-and-table)
* [Treasure Data Write-only API Keyの取得](#get-treasure-data-write-only-api-key)
* [ウェブサイトへのDirect Tagの実装](#implement-direct-tag-on-website)
* [TD JavaScript SDKの追加](#add-the-td-javascript-sdk)
* [API Write-only KeyとTreasure Database情報の追加](#add-the-api-write-only-key-and-treasure-data-database-information)
* [Direct Tagのテスト](#testing-the-direct-tag)
* [Treasure コンソールでの結果の確認](#check-results-on-td-console)
* [td_idの追加](#adding-td_ids)


## 前提条件

* [Website Trackingの開始](/products/customer-data-platform/integration-hub/streaming/td-javascript-sdk/quickstart)を確認してください


### テストウェブサイトのセットアップまたは既存のウェブサイトの使用

[squarespace.com](http://squarespace.com)を使用してテストウェブサイトをセットアップするか、既存のウェブサイトを使用できます。

#### テストウェブサイトのセットアップ

1. [squarespace.com](http://squarespace.com/)に移動し、右上隅の**Get Started**を選択します。
2. templatesにスキップして、希望する古いtemplateを選択します。
3. Googleログインを使用してアカウントを作成します。このチュートリアルを実行するために14日間のトライアルを使用できます。
4. 左側のナビゲーションで**Settings** > **Advanced** > **Code Inject**のパスに従います。


![](/assets/image-20200622-224937.aaf460f15b8b29f66e775f4323d5ae25f7fe0ee2a00a60a908a9073b5b3f65a9.ad50cbca.png)

#### 既存のウェブサイトの使用

既存のウェブサイトを使用し、headerに呼び出しを追加することで、TD JS SDKをテストすることもできます。TD JS SDKの追加の詳細は、JavaScriptコードをラップするHTML tag `<script>`を使用して、HTMLファイルのheaderまたはbodyで指定できます。

### 新しいDatabaseとTableの作成

1. **Treasure コンソール**を開きます。
2. **Data Workbench** > **Databases**に移動します。
3. **New Database**を選択します。名前を`<yourname>_website_tracking`にします。
4. **Create**を選択します。
5. 作成した新しいdatabaseで、**New Table**を選択します。名前を`pageviews_<yourname>`にします。
6. **Create**を選択します。


### Treasure Data Write-only API Keyの取得

1. **My Settings** > **API Keys**に移動します。
2. 必要に応じて、accessを検証します。
3. このアカウントのAPI Keyはこのページにあります。実装のためにこのページを使用可能な状態にしておきます。


![](/assets/image-20201012-194950.bdec9343e9cbea77dbe32ff9a60b34003967e7322e468d343a9cb1b92a4be98b.ad50cbca.png)

# ウェブサイトへのDirect Tagの実装

### TD JavaScript SDKの追加

[Treasure DataJavaScript SDKはGitHubで入手できます](https://github.com/treasure-data/td-js-sdk)。READMEには、JavaScript SDK APIの説明が含まれています。

1. [squarespace.com](http://squarespace.com)のウェブサイトに戻り、**Settings** > **Advanced** > **Code Injection**に移動するか、ページheaderにコードを挿入するためのウェブサイト設定に移動します。
2. 追跡したい各ページのheader(`<head>`)に以下のTD JS SDKコードを追加します。



```html
<!-- Treasure Data --> <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);
</script>
```

### API Write-only KeyとTreasure Database情報の追加

1. TD JS SDKの後のheader、またはbodyやfooterに以下のコードスニペットを追加して、ページビューデータを送信するTreasure Data databaseを指定します。
2. 表にリストされている`<xxxx>`プレースホルダーを置き換えて、write-only API keyを含め、trackerオブジェクトを取得し、サイトからの情報を保存するTreasure Data databaseを指定します。



```html
    <script type="text/javascript">
      // Configure an instance for your database
      var td = new Treasure({
        host: 'in.treasuredata.com',
        writeKey: '<YOUR_WRITE_ONLY_APIKEY_IS_HERE>',
        database: '<DATABASE_NAME>'
      });
      // Enable cross-domain tracking
      td.set('$global', 'td_global_id', 'td_global_id');
      // Track pageview information to 'pageviews' table
      td.trackPageview('<pageviews_table>');
    </script>
```

| **プレースホルダー** | **例** |
|  --- | --- |
| <YOUR_WRITE_ONLY_APIKEY_IS_HERE> | xxxx/xxxxxxxxxxxxxxxxxxxxx[API keyの取得方法](/products/my-settings/getting-your-api-keys)を学びます。 |
| <DATABASE_NAME> | jasonsmith_website_tracking |
| <pageviews_table> | pageviews_jasonsmith |


# Direct Tagのテスト

1. SquareSpaceの左側パネルで**Settings** > **Availability**に移動し、覚えやすいパスワードでサイトを表示可能にします。


![](/assets/image2023-2-10_13-21-43.e45ce8dadba3e2366325cf6671cc29db0575cf944c6e6ddc65c95af509fd42b6.ad50cbca.png)
2. ウェブサイトのベースURLをコピーします。

1. ChromeブラウザでIncognitoウィンドウを新しく開き、URLを貼り付けてサイトにアクセスします。
2. サイトがパスワードを求めます。パスワードを入力する前に、右上の**More Options**メニューを選択します。


![](/assets/image-20200915-221929.5f7b60087080c40743f68920fc408a168f6d26ffd85eb362159ad21230498d3d.ad50cbca.png)
5. **More Tools** > [Developer Tools](https://developers.google.com/web/tools/chrome-devtools/)に移動します。

![](/assets/image-20200915-221636.71e198f8feb839fae43d4aba980dfb6801400f5376ab1bd303a250b2115613ae.ad50cbca.png)

![](/assets/image-20200915-222341.04fbf90fc93b525b9bf2f871ee5f63b6a04941415e44572f1db6a1b88b249d5f.ad50cbca.png)

1. **Network**を選択します。
ウェブサイトとbrowser間の通信で起こっていることすべてをリアルタイムで確認できます。
2. ウェブサイトのパスワードを入力します。
consoleですべての画像ファイルおよび他の要素がロードされるのが表示されます。
3. すべてのtagに'td'が含まれているため、'td'を検索します。


![](/assets/image2022-9-7_18-57-48.848ecd68ec2c7db83045fb281dfd228069eec7418ea564a34c05f2a18ded1522.ad50cbca.png)

1. サイトの他のページに移動して、tagがそこにも表示されるかどうかを確認します。


### Treasure コンソールでの結果の確認

1. **Treasure コンソール**に移動します。
2. **Data Workbench** > **Databases**に移動します。


![](/assets/image-20200916-153622.f12b269b0cf9faa41b31303086ea90879969ddd1b6709297739372e6b5ecabd0.ad50cbca.png)

1. 作成した`<yourname>_website_tracking` databaseを検索して選択します。
2. 作成した`pageviews_<yourname>` tableを選択します。
3. tableでtracking結果を確認できます。


![](/assets/image-20200916-154120.754e55644467cb4b60a7c252c82b464cd6891080c91d9ee50a20eb36046a62f8.ad50cbca.png)

# td_idの追加

次のステップは、個別にtracking eventを有効にすることです。さまざまなドメインでのデータプライバシー規制、特にGDPRに準拠するために、TD JS SDKは**anonymousモード**で動作します。これは、td_client_idやtd_global_idなど、個人を特定できる特定のeventメタデータを収集しないことを意味します。

個々のユーザーを追跡し、ユーザーsession内およびsession間でデータを分析し、追跡された行動を実際の個人と関連付けるなどを行う場合は、td_client_idとtd_global_idが必要です。

1. SquareSpaceに戻ります。
2. **Settings** > **Advanced** > **Code Injection**に移動するか、HTMLファイル内のJavaScriptコードをラップするHTML tag < script>を挿入するウェブサイトに移動します。
3. この例に示すように、既存のコードに以下のコマンドを挿入します。



```javascript
td.setSignedMode()
```

![](/assets/image-20201012-195148.01275316dbbe761878cc109874e69b99d4a6d83b724a1de6e3214d8b09f6d989.ad50cbca.png)

1. データが収集される前にIDが設定されるように、td.trackPageviewの前への配置が重要です。


JSで行の先頭に`'//'`を使用すると、注釈を追加できます。これは、後で解読できるようにJSコードにラベルを付けるのに重要です。