> ## 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設定の技術的負債を削減します。

時間の経過とともに、実験、セグメント、ゴールが蓄積されると、テスト環境が乱雑になり、非効率やエラーの可能性につながることがあります。古くなった要素を定期的に確認してクリーンアップすることは、合理化された高性能な Kameleoon 設定を維持するために不可欠です。本記事では、技術的負債を削減し、精度を向上させ、最適化作業のためのよりスムーズなワークフローを確保するために、古い実験、セグメント、コードを特定して削除するための主要な手順について説明します。

負債のクリーンアップは、見返りのある時間投資です。古くなった実験、未使用のセグメント、不要なコードなど、技術的負債のクリーンアップに時間を費やすことで、長期的にパフォーマンスが大幅に向上します。

以下に挙げるアクションを実施する前に、後で改善を測定できるように、ウェブサイトの **パフォーマンスベンチマークを保存してください**。

* 🧪 [PageSpeed Insights](https://pagespeed.web.dev/)(または使い慣れた他のパフォーマンス分析ツール)を使用して、サイト(デスクトップとモバイル)を分析します。レポートが生成されたら、右上の **Copy Link** をクリックします。これにより、分析した日のデータを含むレポートが保存されます(以下のスクリーンショットを参照)。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/code-debt-cleanup/pagespeed-insights.jpg)
</Frame>

* 🧩 [Kameleoon Chrome 拡張機能](/user-manual/experimentation/web-experimentation/graphic-based-experiments/getting-started-with-the-graphic-editor#kameleoon-graphic-エディタ拡張機能) を使用して、実験、セグメント、ゴール、カスタムデータ、カスタムスクリプトのパフォーマンスとサイズを確認します。以下のスクリーンショットを参照してください。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/code-debt-cleanup/kameleoon-code-extension.jpg)
</Frame>

以下のクリーンアップアクションを完了したら、上記の両方の分析を再度実行し、**結果を比較して** 最適化の効果を確認してください。

## 1. Web実験/パーソナライゼーション

**Experiments** ページで:

### 古いドラフト実験を削除する

右側のメニューを使用してドラフト実験でフィルタリングし、3か月以上前のすべての実験(**key date** フィルタを使用)と、不要になった最近の実験を削除します。これを行うには:

1. 実験の **三点メニュー** を右クリックし、**「Select」** をクリックします。
2. 上部の **「Select all experiments」** をクリックします。
3. 右側のメニューから **「Delete」** を選択します。代わりに **Archive** することもできます。

### 一時停止された実験を停止する

一時停止された実験でフィルタリングし、3か月以上前のすべての実験と、再開しないことが確実な最近の実験を停止します。実験の停止には一括選択が利用できないため、1つずつ手動で選択し、右側のメニューで **Stop** をクリックする必要があります。

### オンライン実験を流用/停止する

オンライン実験でフィルタリングし、データが信頼できる場合は、トラフィックの100%を勝利バリエーションに振り向けます。この振り向けにより、すべての訪問者がバリエーション間で分割されることなく、最適化されたバージョンの恩恵を受けられます。実験のトラフィック割り当て設定でトラフィックを振り向けることができます。勝利バリエーションがオリジナルである場合、実験を停止できます。

### 振り向けられた実験の移行とクリーンアップ

振り向けられた実験でフィルタリングし、IT チームに勝利バリエーションのコードをサイトのソースコードに統合するよう依頼します。実装されたら、実験を停止してアーカイブします。これには以下の利点があります:

* 不要な実験スクリプトを排除し、ページの読み込み速度を向上させます。
* 例えば、Kameleoon のようなツールが広告ブロッカーによってブロックされる可能性があるため、すべてのユーザーが実験条件なしで最適化されたバージョンを体験できるようにします。
* 古い実験と新しい最適化の競合のリスクを低減します。

### 停止した実験をアーカイブする

停止した実験でフィルタリングし、残りのすべての停止した実験をアーカイブします。これを行うには:

1. 実験の **三点メニュー** を右クリックします。
2. **Select** > **Select all experiments** をクリックします。
3. 右側のメニューで **Archive** をクリックします。代わりに削除することもできます。

<Tip>
  **パーソナライゼーション** の場合は、上記と同じ手順に従います。**フィーチャーフラグ** の場合は、こちらの [ガイド](/user-manual/experimentation/feature-experimentation/create-and-manage-flags/manage-feature-flag-technical-debt) に従ってください。
</Tip>

## 2. セグメント/トリガー

**Segments and triggers** ページで:

### 古いドラフトセグメントを削除する

右側のメニューを使用して「0 campaign」に付与されたセグメントでフィルタリングし、3か月以上前のすべてのセグメント(「key date」フィルタを使用)と、不要になった最近のセグメントを削除します。これを行うには:

1. セグメントの **三点メニュー** を右クリックします。
2. **Select** > **Select all experiments** > **Delete** をクリックします。

<Note>
  フィルタを適用すると、一部のセグメントは引き続きキャンペーンにリンクされて表示されることがあります。これらはアーカイブされたキャンペーンで、**i** アイコンにカーソルを合わせると識別できます。アーカイブされた実験名はグレー表示されます(以下のスクリーンショットを参照)。

  <Frame>
    ![](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/code-debt-cleanup/segments.jpg)
  </Frame>
</Note>

### JSベースのセグメントを最適化する

「1つ以上のキャンペーン」に付与されたセグメントでフィルタリングします。次に、[このドキュメント](./best-practices-for-ab-testing) のガイドラインに従って、「JSカスタム条件」に基づくすべてのセグメントを最適化します。これらのセグメントをすばやく識別するには、ウェブサイトを訪問してブラウザのコンソールを開きます。次に、以下のコードを実行します:

```javascript theme={null}
const obtainSegmentsBasedOnJS = info =>
    Kameleoon.Internals.runtime.targetingSegments.filter(
        item => JSON.stringify(item.tree).match(info)
    );
// All segments based on a JS condition include the keyword "return" or "setTargeting"
console.log(obtainSegmentsBasedOnJS('return'));
console.log(obtainSegmentsBasedOnJS('setTargeting'));
```

上記のコードは、JSカスタム条件を使用するセグメントのリストを返します(以下のスクリーンショットを参照)。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/code-debt-cleanup/javascript.jpg)
</Frame>

<Note>
  JS条件は2025年第3四半期以降、Triggersに移動されます。
</Note>

### セグメントの名前を変更する

Kameleoon は、ターゲティング条件に「page URL」や「Custom JavaScript」が含まれていない限り、過去90日以内にアカウントで作成または変更されたすべてのセグメントを実行します。たとえそれらが実験にリンクされていなくてもです。このプロセスは [機会検出](/user-manual/ai-opportunity-detection/get-started) に使用されます。このプロセスから特定のセグメントを除外したい場合は、次のいずれかのプレフィックスを使用して名前を変更できます: `[DEV]`、`[TEST]`、または `[QA]`。

## 3. ゴール

**Goals** ページで:

### コンバートされていないゴールを無効にする

右側のメニューを使用して「1つ以上のキャンペーン」にリンクされたゴールでフィルタリングします。次に、過去24時間にコンバージョンを記録していないゴールが関連性がないと考える場合、それらを無効にします。コンバージョン数を確認するには、各ゴールの **i** アイコンにカーソルを合わせます。ポップインに過去24時間のコンバージョン数が表示されます(以下のスクリーンショットを参照)。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/code-debt-cleanup/goals.jpg)
</Frame>

### 未使用のゴールを削除する

「0 campaign」に付与されたゴールでフィルタリングし、不要になったゴールを削除します。キャンペーンにリンクされていなくても、アクティブなゴールはオンラインで実行されたままなので、未使用のゴールを削除するとパフォーマンスが向上します。これを行うには:

1. ゴールの **三点メニュー** を右クリックします。
2. **Select** > **Select all experiments** をクリックします。
3. 右側のメニューで **Delete** をクリックします。代わりに **Disable** することもできます。

### 非アクティブなゴールを削除する

「inactive」ゴールでフィルタリングし、不要になったものをすべて削除します。

## 4. カスタムデータ

すべてのカスタムデータはオンラインで実行されるため、未使用のカスタムデータを削除するとパフォーマンスが向上します。

**Custom data** ページで:

### 未使用のカスタムデータを削除する

不要になったすべてのカスタムデータを削除します。

### JavaScriptに基づくカスタムデータを最適化する

カスタムデータが **カスタムJavaScriptコード** を使用して定義されている場合、コードが無限ループで実行されないようにしてください。パフォーマンスの問題を避けるには、[このガイド](../../custom-data#custom-code) に従ってください。

JavaScriptを使用しているカスタムデータを特定するには、ウェブサイトを訪問し、ブラウザのコンソールを開いて、以下のコードを実行します:

```javascript theme={null}
Object.values(Kameleoon.Internals.runtime.Gatherer.configuration.customData)
  .filter(custom_data => custom_data.method === "CUSTOM_CODE");
```

このコードは、JavaScriptを使用しているカスタムデータのリストを返します(以下のスクリーンショットを参照)。

<Frame>
  ![](https://storage.googleapis.com/kameleoon-storage-documentation/developers/images/code-debt-cleanup/custom-data.jpg)
</Frame>

## 5. グローバルスクリプト

上記のすべての手順を完了したら、*Admin ⇒ Projects ⇒ Configuration ⇒ General ⇒ Global custom script* に移動し、削除されたセグメント、ゴール、またはカスタムデータを参照しているスクリプト内のコードを削除します。

グローバルスクリプトをさらに最適化するには、[こちら](./best-practices-for-ab-testing) のガイドラインに従ってください。これらのヒントは、コードが効率的に実行され、保守可能で、すべての実験で良好に動作することを保証するのに役立ちます。

<Tip>
  グローバルスクリプトのリファクタリングをより簡単で安全にするには、Cookie条件を使用して2つのバージョンに分割できます。このCookie条件により、他のすべての訪問者に対して元のスクリプトをアクティブに保ちながら、ブラウザで新しいスクリプトをライブテストできます。

  ブラウザに `newKamGS=true` のようなカスタムCookieを追加し、以下のコードを使用してグローバルスクリプトを条件付きで読み込みます:

  ```javascript theme={null}
  if (document.cookie.includes('newKamGS=true')) {
      // new Global Script (for your own QA/testing)
  }
  else {
      // old Global Script (for all users)
  }
  ```
</Tip>
