> ## 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 がいつ訪問者をグループに割り当てるか、そして作成前に検討すべきトレードオフについて説明します。

同じウェブサイトやプロダクトの領域で複数のキャンペーンや実験を実行すると、それらが重複することがあります。1 人の訪問者が同時に複数の変更に露出し、どの変更がどの結果を生んだのかを判断できなくなります。相互排他グループ（MEG）は、キャンペーンや実験をグループ化することでこの問題を解決し、各訪問者がグループ内の 1 つのキャンペーンまたは実験にのみ露出するようにします。

<Note>
  この記事では、相互排他グループの背景にある考え方について説明します。実際に設定する方法については、[Web 実験用の相互排他グループを作成する](./prevent-overlapping-campaigns-with-mutually-exclusive-groups)、[フィーチャー実験用の相互排他グループを作成する](./mutually-exclusive-groups-for-feature-experiments)、または[クライアントサイドとサーバーサイド実験をまたぐ相互排他グループを作成する](./creating-mutually-exclusive-groups-across-client-side-and-server-side-experiments-with-kameleoon)を参照してください。
</Note>

## 相互排他グループとは

相互排他グループを使用すると、各訪問者がグループ内の 1 つのメンバーによってのみターゲティングされるように、キャンペーンや実験のグループを作成できます。このようにキャンペーンや実験をグループ化すると、複数のテストが互いに競合する可能性がある場合、たとえば複数のチームが同じページで実験を実行している場合に役立ちます。

MEG は、Web 実験とフィーチャー実験のどちらでも同じ仕組みで機能します。各実験をトリガーするテクノロジーは異なりますが、MEG の背後にあるグループ化とバケティングのロジックは変わりません。

## Kameleoon が訪問者をグループに割り当てるタイミング

Kameleoon は、他の実験のターゲティングやバケティングの判断よりも先に、訪問者を相互排他グループに割り当てます。この割り当てはビジットの開始時に行われるため、Kameleoon がグループ内の個々のキャンペーンや実験のターゲティング条件を評価したりトラフィックを割り当てたりする時点では、訪問者のグループメンバーシップはすでに確定しています。

一貫した体験を維持するため、訪問者が以前にグループ内のキャンペーンまたは実験に割り当てられていた場合は、ビジットの残りの期間もその割り当てが維持されます。そうでない場合、Kameleoon はグループ内で表示するキャンペーンまたは実験をランダムに選択し、グループのメンバー間で均等な分配になるようにします。

## メリット

相互排他グループは、重複するキャンペーンや実験が互いに干渉するのを防ぎます。

* **より明確な結果:** 各グループ内で訪問者が 1 つのキャンペーンまたは実験のみを見るようにすることで、矛盾するデータを回避します。
* **訪問者体験の向上:** 一度に複数の変更に露出することによる訪問者の疲労を軽減し、よりスムーズな体験を実現します。
* **フィーチャー実験のセットアップが簡単:** MEG によって相互排他性を強制する場合、追加のターゲティング条件は不要なため、実験ルールを含むフィーチャーフラグ全体への実装が容易になります。

## デメリット

相互排他グループには重要なデメリットがあります。グループ内の実験に露出した訪問者について、組み合わせたパフォーマンスを測定できないという点です。

たとえば、相互排他グループ内で 3 つの実験を実行し、それぞれで勝者となるバリエーションを特定した後、その 3 つの勝者バリエーションを同時にリリースした場合、元の実験だけでは、それらの勝者が組み合わさったときにどう機能するかはわかりません。勝者バリエーション間の相互作用効果は、良いものであれ悪いものであれ、一切測定されません。

そのため、実験を並行して実行し、組み合わせた効果を測定しないままでいると、それぞれの変更が単独では勝ちに見えても、組み合わせると相性が悪い変更を出荷してしまうリスクがあります。このリスクについて詳しくは、[並行して行う A/B テストに関する Ronny Kohavi の解説](https://www.linkedin.com/posts/ronnyk_running-concurrent-ab-tests-is-essential-activity-7368103083437953024-RxP7)を参照してください。

後で組み合わせて出荷し、まとめて評価したくなる可能性のあるキャンペーンや実験をグループ化する前に、このトレードオフを検討してください。

## 相互排他グループの例

ウェブサイトのホームページをターゲットとする 2 つのキャンペーングループがあるとします。

* **グループ A:** Campaign 1（新しいホームページレイアウト）と Campaign 2（強調表示された「今すぐ購入」ボタン）
* **グループ B:** Campaign 3（簡素化されたナビゲーション）と Campaign 4（更新された商品説明）

相互排他的なセットアップでは、次のようになります。

* 訪問者はグループ A から Campaign 1 または Campaign 2 のいずれか一方を見ますが、両方は見ません。
* 同じ訪問者は、グループ B から Campaign 3 または Campaign 4 のいずれかを見ることがありますが、両方は見ません。

このセットアップにより、訪問者は各グループ内で複数の競合する変更に露出することがなくなり、各キャンペーンの効果をより正確に測定できます。

### グループ間の露出

相互排他グループが防ぐのは、同じグループ**内**での重複だけです。Kameleoon は、グループ A のキャンペーン 1 つ**と**グループ B のキャンペーン 1 つに、訪問者を同時に露出させることができます。

たとえば、訪問者は次のいずれの組み合わせも経験する可能性があります。

* Campaign 1（グループ A から）**と** Campaign 3（グループ B から）
* Campaign 1（グループ A から）**と** Campaign 4（グループ B から）
* Campaign 2（グループ A から）**と** Campaign 3（グループ B から）
* Campaign 2（グループ A から）**と** Campaign 4（グループ B から）

## 露出率が MEG とどのように相互作用するか

個々のキャンペーンや実験に設定された露出率は、それらが同じ相互排他グループに属している場合、各キャンペーンや実験の全トラフィックに対して独立に適用されるわけではありません。MEG はまず、グループ内でどの 1 つのキャンペーンまたは実験が訪問者の対象となるかを決定し、そのキャンペーンまたは実験自体の露出率は、その割り当ての上に適用されます。

MEG 内の各キャンペーンまたは実験は、個々の露出設定にかかわらず、対象グループ人口のほぼ均等な取り分（たとえばグループに 3 つのメンバーがある場合は 3 分の 1）を受け取ります。

### 例

同じ MEG 内に 3 つのキャンペーンがあり、それぞれが 200,000 件のリクエストを受信する別々のページで実行されていると想像してください。

| キャンペーン     | ページトラフィック | 露出率 | 露出された訪問者                    |
| ---------- | --------- | --- | --------------------------- |
| Campaign A | 200k      | 10% | 200k × 1/3 × 10% ≈ **6.7k** |
| Campaign B | 200k      | 30% | 200k × 1/3 × 30% ≈ **20k**  |
| Campaign C | 200k      | 60% | 200k × 1/3 × 60% ≈ **40k**  |

結果は 20k、60k、120k には**なりません**。その結果を想定するには、露出率が適用される前に各キャンペーンがページトラフィックのすべてを受け取ると仮定する必要がありますが、MEG はそのようには機能しません。

<Note>
  MEG は露出が適用される前に対象トラフィックをグループ全体で分割するため、MEG は重複する可能性があり相互排他にする必要のあるキャンペーンや実験、通常は同じページや画面で実行されているキャンペーンに最も適しています。
</Note>

<Note>
  相互排他グループはシミュレーションモードでは無効になります。
</Note>
