# JavaScript SDKでのAnonymous Visitor ID Visitor IDは、ウェブサイトへのvisitor用の永続的なcookieに関連付けることができます。誰かがサイトを訪問すると、HTTPレスポンスにcookieを含めることで、webサーバーによって永続的なcookieが設定されます。cookieがrequestに含まれていない場合、サーバーは一意のvisitor IDを生成し、HTTPレスポンスヘッダーでcookieとして設定し、requestと一緒に送り返します。 * [前提条件](#prerequisites) * [Cookieの基本](#cookie-basics) * [First-Party CookieとThird-Party Cookieの違い](#differences-between-first-party-cookie-and-third-party-cookie) * [Anonymous IDのリスト](#list-of-anonymous-ids) * [First-Party Cookie ID: td_client_id](#first-party-cookie-id-td_client_id) * [td_client_idの取得](#retrieving-td_client_id) * [Third-Party Cookie ID td_global_id](#third-party-cookie-id-td_global_id) * [td_global_idの取得](#retrieving-td_global_id) # 前提条件 * JavaScript/HTMLの基礎知識 * Treasure Dataの基礎知識 * Treasure Data JavaScript SDKの基礎知識 Treasure Dataは、本番環境で使用を開始する前に、サイトでTreasure Data JavaScript SDK version 3を使用した新機能や機能の実装を検証することをお勧めします。cookieの管理方法が異なります。これらの記事のほとんどを参照する際は、提案されたeventコレクターとTreasure Data JavaScript SDK version 3の呼び出しをソリューション内で定義する必要があることに注意してください。たとえば、//cdn.treasuredata.com/sdk/2.5/td.min.jsを//cdn.treasuredata.com/sdk/3.0.0/td.min.jsに変更します。 # Cookieの基本 Cookieは、訪問したウェブサイトのサーバーによってコンピューターのハードドライブに配置される小さなテキストです。cookieは、特定のbrowserを認識する目的、またはbrowserに固有の情報を記憶する目的で、同じサイトに戻る場合に配置されます。 # First-Party CookieとThird-Party Cookieの違い すべてのcookieには、cookieが誰に属するかを示す所有者がいます。所有者は、cookieで指定されたdomainです。 "third-party cookie"では、"party"という単語はcookieで指定されたdomain、つまりcookieを配置しているウェブサイトを指します。したがって、たとえば、widgets.comにアクセスし、コンピューターに配置されたcookieのdomainがwidgets.comの場合、これはfirst-party cookieです。 ただし、widgets.comにアクセスして、コンピューターに配置されたcookieがstats-for-free.comと表示される場合、これはthird-party cookieです。 # Anonymous IDのリスト Treasure DataのJavaScript SDKは、すべての新しいvisitor用に2種類のanonymous Cookie IDを生成します。 * First-Party Cookie ID: *td_client_id* * Third-Party Cookie ID: *td_global_id* ## First-Party Cookie ID: td_client_id _td_client_id_は、First-Party Cookieとして生成されるIDです。このIDの特性は次のとおりです: * IDは同じトップレベルdomainにわたって永続化されます(たとえば、a.example.comとb.example.comで同じID) * IDは異なるdomainにわたって永続化されません(たとえば、test.comとexample.comで異なるID) * IDはbrowserに応じてcookieに永続化されます: | [Brave](https://www.cookiestatus.com/brave/) | [Chrome](https://www.cookiestatus.com/chrome/) | [Edge](https://www.cookiestatus.com/edge/) | [Firefox](https://www.cookiestatus.com/firefox/) | [Safari](https://www.cookiestatus.com/safari/) | **[Cliqz](https://www.cookiestatus.com/cliqz/)** | | --- | --- | --- | --- | --- | --- | | `document.cookie`で設定されたcookieの場合、有効期限は7日間に設定されます。それ以外の場合、最大有効期限は6か月に設定されます。 | | | | | | | Cookieは最大400日の有効期間に制限されます。 | 制限なし。 | すべてのストレージは、ユーザーが過去45日以内にfirst-partyコンテキストでサイトとインタラクションしていない限り、既知のtrackerから毎日パージされます。 | `document.cookie`で設定されたcookieの場合、サイトでのユーザーインタラクションなしでbrowserを7日間使用すると削除されます。`document.cookie`で設定されたcookieの場合、参照domainが既知のtrackerである場合、URL装飾(queryパラメータまたはfragment)を持つページで有効期限は24時間に設定されます。 | まれにfirst-partyインタラクションを持つtracker domainに設定されたcookieは7日後に期限切れになります。それ以外の場合、有効期限はサイトへの最後の訪問から30日後に設定されます。`document.cookie`で設定されたcookieの最大有効期限は7日間です。 | | ### td_client_idの取得 browserのJavaScriptコンソールから以下の関数を呼び出すことで、自分の_td_client_id_を受け取ることができます。 ```javascript > td.getCookie('_td'); "9eeeed71-8eb8-40f3-9a41-bd8b1f096474" ``` ## Third-Party Cookie ID td_global_id _td_global_id_は、3rd Party Cookieとして生成されるIDです。このIDの特性は次のとおりです: * IDは同じトップレベルdomainにわたって永続化されます(たとえば、a.example.comとb.example.comで同じID) * IDは異なるdomainにわたって永続化されます(たとえば、test.comとexample.comで同じID) * ただし、PCおよびMobileを含むすべてのSafari browserでは、IDはまったく永続化されません。 * 他のbrowserの場合、visitorがbrowserのcookieを明示的にクリアしない限り、IDはcookieに永続化されます 詳細については、[Cross Domain Tracking](/ja/products/customer-data-platform/integration-hub/streaming/td-javascript-sdk/enabling-cross-domain-tracking-with-javascript-sdk)を確認してください。 ### td_global_idの取得 コンテンツパーソナライゼーションなどを行うために、JavaScriptから_td_global_id_変数を受け取りたい場合があります。以下のコード例は、JavaScript endpointをタップして_td_global_id_を受け取ります。 ```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'); // Receive td_global_id var successCallback = function(td_global_id) { console.log({ 'td_global_id': td_global_id }); }; var errorCallback = function(err) { console.log(err); }; // Track pageview information to 'TABLE_NAME' table var afterPageviewCallback = function() { td.fetchGlobalID(successCallback, errorCallback); }; td.trackPageview('TABLE_NAME', afterPageviewCallback); ``` この関数は、browserが[Do Not Track機能](http://donottrack.us/)に設定されている場合は機能しません。_fetchGlobalID_関数に関する詳細な技術情報は、[success-failure-forcefetch](https://github.com/treasure-data/td-js-sdk#treasurefetchglobalidsuccess-failure-forcefetch)で入手できます。