> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kameleoon.com/llms.txt
> Use this file to discover all available pages before exploring further.

# データ収集(クライアントサイド)

> Kameleoon のアプリケーションファイルおよび SDK によってクライアントサイドで収集されるすべてのデータ(Cookie、ローカルストレージ、セッションデータを含む)に関するリファレンスガイド。

Kameleoon がバックエンドサーバーに保存するデータ(主に分析およびレポート用)について知るには、[データ収集(バックエンド)](./data-collection-backend)の記事を参照してください。

## はじめに

他の Web 解析ソリューションと同様に、Kameleoon は訪問された URL、ブラウザのバージョン、ウェブサイト滞在時間などのデータを収集します。実験およびパーソナライゼーションプラットフォームとして、Kameleoon は最小限のレイテンシで実験およびパーソナライゼーションキャンペーンをトリガーするため、これらのデータへのリアルタイムかつ永続的なアクセスも必要とします。

JavaScript ランタイム環境はページが変わるたびにリセットされるため、メモリだけにこれらのデータを保存することはできません。代わりに、Kameleoon は異なる Web ページ(URL)間でデータを読み書きします。

各ページの読み込み時にバックエンドサーバーからデータを取得することは 1 つの代替案ですが、このアプローチには 2 つの欠点があります。

* **パフォーマンスコスト**:各ページの読み込み時に追加のサーバー呼び出しが発生する。
* **スケーラビリティコスト**:頻繁なサーバーリクエストは大規模な運用時にパフォーマンスを低下させる。

ローカルストレージはより効率的なアプローチです。Kameleoon はブラウザに直接データを保存できます。

### データ保存メカニズムとしてのローカルストレージ

Kameleoon は以下の 2 つの理由により、データの保存に Cookie を使用しません。

* Cookie は大量のデータを保存することを想定して設計されていません。
* ブラウザは画像のような静的リソースのリクエストを含むすべての HTTP リクエストに対して Cookie を送信するため、帯域使用量が増え、パフォーマンスが低下します。

代わりに Kameleoon は、ほとんどのブラウザがサポートする標準的な Web 技術である Local Storage を使用します。Cookie と同様に動作しますが、はるかに大きなストレージ容量(ブラウザにもよりますが通常は数 MB)をサポートします。

Cookie と比較して、Local Storage には次のような特性があります。

* Local Storage には JavaScript のみが書き込めます。サーバーは書き込めません。
* JavaScript のみが Local Storage からデータを読み取れます。
* ブラウザは Local Storage のデータをリモートの HTTP サーバーに送信することがないため、よりセキュアです。

ただし、Local Storage には 1 つの重要な制限があります。それは、正確に 1 つのサブドメインにスコープが限定されているという点です。

### 統一されたセッションデータに関する Local Storage の制限

Cookie の場合、`http://www.example.com` 上のスクリプトが `buy.example.com` からアクセス可能な Cookie を作成できますが、Local Storage はサブドメインおよびプロトコル単位で分割されています。

たとえば、Eコマースサイトが `https://www.randomshop.com` でホストされていて、コンバージョンファネルが `https://transaction.randomshop.com` で動作している場合、これら 2 つのサブドメイン間で Local Storage がデータを共有することはできません。これにより、カスタマージャーニー全体で実験のバリエーションに不整合が生じ、ユーザー体験と実験の妥当性の両方に影響を及ぼす可能性があります。

Kameleoon はサブドメインをまたいでセッションデータを統合する仕組みを提供します。詳細については、[サブドメイン間でセッションデータを統一する](../web-experimentation/technical-concepts/unify-session-data-storage-across-subdomains)を参照してください。

## 収集されるデータの一覧

このページでは 2 つのカテゴリのデータを扱います。

1. **すべての訪問者に対して収集・保存されるデータ**([オプトアウトした訪問者を除く](./consent-management))。
2. Kameleoon のユーザーがプラットフォーム上で実験を構築する際に **内部利用のために収集されるデータ**。

データプライバシーの観点では、**最初のカテゴリ** に注目してください。2 番目のカテゴリは少数の内部従業員にのみ適用されます。

<Note>
  Kameleoon は常にお客様のドメインに関連付けられた **ファーストパーティ** のコンテキストでデータを保存します。Kameleoon は Kameleoon 所有のドメインにサードパーティデータを **決して** 保存しません。
</Note>

## すべての訪問者について保存されるデータ

### Local Storage に保存されるデータ

<Note>
  Local Storage には組み込みの有効期限メカニズムがありません。これを回避するため、Kameleoon は次の 2 つのフィールドでデータを保存することにより、有効期限をエミュレートします。

  * `"value"`: 保存される情報。
  * `"expirationDate"`: Kameleoon がデータの使用を停止する時点を定義するタイムスタンプ。

  例:

  ```
  kameleoonLegalConsent: {"value": {"AB_TESTING": true, "PERSONALIZATION": true},"expirationDate":1545297630228}
  ```
</Note>

<Tabs>
  <Tab title="Application File (engine.js)">
    | **キー**                                          | **説明**                                                                                                                                                                                                                                                | **有効期間**            |
    | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- |
    | `kameleoonVisitorCode`                          | 一意の Kameleoon **visitorCode** 識別子。                                                                                                                                                                                                                    | 365 日               |
    | `kameleoonData`                                 | 訪問者およびセッションデータ(例:閲覧履歴、セッション情報)。Kameleoon は単純なエンコード方式を用いてこのデータを Local Storage に保存します。このキーに含まれる全データの一覧は以下に記載されています。                                                                                                                                     | 365 日               |
    | `kameleoonExperiment-${experimentId}`           | 実験のバリエーション割り当てと割り当てられたバリエーション ID(「Reference」、バリエーション ID、トラフィック除外が設定されている場合は「none」)、および Kameleoon がバリエーションを割り当てた日付。                                                                                                                                    | 30 日(再訪時に更新)        |
    | `kameleoonPersonalization-${personalizationId}` | この訪問者へのパーソナライゼーションのバリエーション割り当て。                                                                                                                                                                                                                       | 30 日(再訪時に更新)        |
    | `kameleoonGlobalPersonalizationExposition`      | すべてのパーソナライゼーションに対する訪問者のグローバル露出ステータス。`"false"` の値はこの訪問者にパーソナライゼーションを一切表示しません。`"true"` の値は、訪問者が必要なターゲティング条件を満たした場合に露出を許可します。デフォルトでは、グローバルなトラフィック除外は適用されません。この値は [プロジェクト設定](/user-manual/project-management/manage-your-projects#Configuration) で構成できます。 | 365 日               |
    | `kameleoonLegalConsent`                         | Kameleoon の利用に関する法的同意。値のフォーマット例:`{"AB_TESTING": true, "PERSONALIZATION": false}` または `{"PERSONALIZATION": true}`。                                                                                                                                     | 365 日               |
    | `kameleoonOpenTabs`                             | 同じウェブサイト上で開いているタブの ID。                                                                                                                                                                                                                                | 365 日               |
    | `KameleoonProducts_device_id`                   | 訪問者の一意のデバイス ID。Product Recommendation アドオンを利用している場合にのみ、Kameleoon はこのキーを保存します。                                                                                                                                                                         | 365 日               |
    | `kameleoonRequestEvents`                        | ページが即座にリロードされた場合に Kameleoon が送信できなかった失敗したリクエスト。この挙動は Safari に特有のものです。                                                                                                                                                                                 | ページがリロードされると削除されます。 |

    <Note>
      `kameleoonData` キーには各訪問につき以下のデータが保存されます(このデバイスのみ、または[クロスデバイス履歴の調整](../cross-device-experimentation)を使用する場合はすべての訪問)。

      * カスタムデータ
      * デバイスタイプ(モバイル、タブレット、デスクトップ)
      * オペレーティングシステム
      * ブラウザ名およびバージョン
      * 画面サイズ
      * ウィンドウサイズ
      * ブラウザのタイムゾーン
      * ブラウザの言語
      * オリジナルのリファラー(獲得チャネル)
      * 閲覧されたページ数
      * 訪問されたページのタイトルおよび URL
      * ウェブサイト滞在時間
      * 訪問の開始時刻と終了時刻
      * 開いているタブの数
      * 広告ブロッカーがアクティブかどうか
      * コンバージョン一覧(クリック、トランザクション、その他のイベント)
      * 訪問者が見たパーソナライゼーションおよび A/B 実験の一覧
      * 現在の気象条件(ターゲティング条件がアクティブな場合):気温、風、雨、その他の条件
      * 日の入り時刻(気象ターゲティング条件がアクティブな場合。一部の気象条件で必要なため)
      * 天気予報(ターゲティング条件がアクティブな場合):気温、風、雨、その他の条件
      * 位置情報(位置情報または気象ターゲティング条件がアクティブな場合)
      * IP アドレス(ターゲティング条件がアクティブな場合)
      * サードパーティ DMP または CRM からの外部セグメンテーションデータ
      * 閲覧された商品(Product Targeting アドオンが有効化されている場合)
    </Note>
  </Tab>

  <Tab title="JavaScript SDK">
    | **キー**                               | **説明**                                                                                                 | **有効期間**                                                                         |
    | ------------------------------------ | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
    | `kameleoonClientData`                | SDK が取得するリモート設定ファイルのローカルコピー。ライブのフィーチャーフラグの構成詳細が含まれます。                                                  | 手動またはブラウザ設定により削除されるまで。                                                           |
    | `kameleoonConsentData`               | 訪問者から取得した Feature Experiments に対する法的同意。                                                                | [targetingDataCleanupInterval](../sdks/web-sdks/js-sdk#configuration-parameters) |
    | `kameleoonDataInfo`                  | データクリーンアップとリンクされた訪問者セッションの技術情報。[クロスデバイス実験](../sdks/web-sdks/js-sdk#cross-device-experimentation)に必要です。 | トラッキングリクエストが成功するまで。                                                              |
    | `kameleoonForcedExperimentVariation` | 特定のフィーチャーフラグのカスタム評価に必要な特定の実験バリエーション。                                                                   | [targetingDataCleanupInterval](../sdks/web-sdks/js-sdk#configuration-parameters) |
    | `kameleoonForcedFeatureVariation`    | 特定のフィーチャーフラグのシミュレーションに使用される特定のフィーチャーバリエーション。                                                           | セッション                                                                            |
    | `kameleoonTargetingData`             | ターゲティング目的に必要な、閲覧履歴やセッション詳細などを含む訪問者およびセッションデータ。                                                         | [targetingDataCleanupInterval](../sdks/web-sdks/js-sdk#configuration-parameters) |
    | `kameleoonTrackingData`              | トラッキングリクエスト用に、このブラウザ上のすべての **訪問者コード**。                                                                 | トラッキングリクエストが成功するまで。                                                              |
    | `kameleoonVariationData`             | 各フィーチャーフラグに割り当てられたバリエーション。セッション間で訪問者の一貫性を維持するために使用されます。                                                | [targetingDataCleanupInterval](../sdks/web-sdks/js-sdk#configuration-parameters) |

    <Note>
      `kameleoonTargetingData` キーには、訪問者に関連付けられた以下のデータが保存されます。

      * カスタムデータ
      * コンバージョン
      * ページビュー
      * 一意の識別子
      * 位置情報データ
      * ユーザーエージェント
      * ブラウザ
      * デバイス
      * Cookie
      * Kameleoon コンバージョンスコア(AI Predictive ターゲティング)
      * オペレーティングシステム
      * アプリケーションバージョン
      * 訪問データ
      * パーソナライゼーション
    </Note>
  </Tab>
</Tabs>

#### Session Storage に保存されるデータ

| **キー**                            | **説明**                                                                                                                                                              | **有効期間**     |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ |
| `kameleoonDisabledForVisit`       | 現在の訪問について Kameleoon を無効化します。[訪問全体で Kameleoon を無効化する](/user-manual/project-management/manage-your-projects#Configuration) タイムアウトオプションを有効にした場合、Kameleoon がこのキーを設定します。 | セッション継続期間    |
| `kameleoonAnalyticsTrackingTimes` | Web 解析インテグレーションを使用する際に Kameleoon が行うサードパーティ解析トラッキング呼び出しの数を最適化します。                                                                                                   | セッション継続期間    |
| `kameleoonTabId`                  | ブラウザのタブを区別し、複数のトリガーイベントにわたって同じページ URL の冗長なトラッキングを防ぐ、一意の 8 桁の識別子。                                                                                                    | セッション継続期間    |
| `kameleoonActiveScript`           | スクリプトがページにインストールされたことを確認すると、Kameleoon がこの値を設定します。                                                                                                                   | セッションストレージの値 |

#### Cookie に保存されるデータ

<Tabs>
  <Tab title="Application File (engine.js)">
    Kameleoon は **1 つの Cookie のみ** を使用してランダムに生成された **訪問者識別子** を保存します。**Kameleoon CDN** も、アプリケーションファイルを配信する際にオプションの Cookie を設定する場合があります([アプリケーションファイルをセルフホスティング](../web-experimentation/self-hosting/simple-self-hosting-and-on-premises-options#アプリケーションファイルのセルフホスティング)している場合を除く)。

    Kameleoon Product Recommendation アドオンを利用している場合、Kameleoon は追加で 2 つの Cookie を保存します。これらのデータポイントを代わりに Local Storage に保存する Cookie レスオプションを有効化するには、カスタマーサクセスマネージャーにお問い合わせください。

    | **キー**                               | **説明**              | **有効期間**  |
    | ------------------------------------ | ------------------- | --------- |
    | `KameleoonProducts_session_code`     | 一意のセッション識別子。        | セッション継続期間 |
    | `KameleoonProducts_session_last_act` | 最後のアクティビティのタイムスタンプ。 | 1 時間      |
  </Tab>

  <Tab title="JavaScript SDK">
    | **キー**                      | **説明**                                                                             | **有効期間**     |
    | --------------------------- | ---------------------------------------------------------------------------------- | ------------ |
    | `_detectRootDomain`         | Kameleoon がサイトのメインドメインを検出するために使用する一時的なテスト Cookie(値=`testRootDomain`)。              | 使用直後に削除されます。 |
    | `kameleoonVisitorCode`      | 一意の Kameleoon **visitorCode** 識別子。                                                 | 365 日        |
    | `kameleoonReferrer`         | リダイレクト URL 実験用の一時的な Cookie。リダイレクトが発生する前に `document.referrer` の値を Kameleoon が保存します。 | 使用直後に削除されます。 |
    | `kameleoonSimulationFFData` | 特定のフィーチャーフラグのバリエーションをシミュレートするために必要なデータ。                                            | セッション        |
  </Tab>
</Tabs>

### Kameleoon の内部利用のみのために保存される一時データ

#### Cookie に保存されるデータ

| **キー**                                                                                                                                        | **説明**                                                                                                                                                                                   | **有効期間** |
| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| `kameleoonSimulationParameters`                                                                                                               | Kameleoon シミュレーションモードは、サブドメイン間でシミュレーションを有効にするためにこの Cookie を使用します。これがない場合、サイトにサブドメインがあるとシミュレーションが正しく動作しません。すべてのシミュレーションクエリパラメータは、`JSON.stringify` を使って URL エンコードされた JSON 形式で含める必要があります。例: |          |
| `KEY - kameleoonSimulationParameters`, `VALUE - {"kameleoon-experiment-id":"266118","kameleoon-simulation":"true","kameleoon-language":"en"}` | 1 時間、ただしシミュレーションを閉じると即座に削除されます。                                                                                                                                                          |          |

#### Local Storage に保存されるデータ

| **キー**                           | **説明**                                    | **有効期間** |
| -------------------------------- | ----------------------------------------- | -------- |
| `kameleoonSimulation`            | シミュレーション目的に必要なデータ。                        | 1 時間     |
| `kameleoonSimulationShortURL`    | シミュレーションの短縮 URL。                          | 1 時間     |
| `kameleoonSimulationVisitorData` | シミュレーション目的で使用される、訪問者およびその訪問に関するすべての仮想データ。 | 1 時間     |

#### Session Storage に保存されるデータ

| **キー**                              | **説明**                                                                                                   | **有効期間**               |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------- | ---------------------- |
| `kameleoonFullApplicationCode`      | シミュレーションに必要な Kameleoon のコードベース全体。本番用のアプリケーションファイルはサイズ最適化のためすべてのコードを含んでいないため、Kameleoon はフルバージョンをここに保存します。 | 1 時間                   |
| `kameleoonVariation-${variationId}` | プレビューまたはシミュレーション目的のためのバリエーションコードとデータ。                                                                    | 1 時間                   |
| `kameleoonRedirectionURL`           | Kameleoon がリダイレクト実験をトリガーした際のページの絶対 URL。Kameleoon は無限リダイレクトループを防ぐためにこれを保存します。                             | 訪問者が別のページに遷移すると削除されます。 |
