
ネストとは
上記の例のような複雑なセグメントを作成する場合、いくつかのセグメントブロックをグループ化する必要があります。論理的には、セグメントブロック A と B を括弧内にグループ化する、つまり「(A AND B)」とすると、複数のセグメントブロックが「ネスト」されたことになります。つまり、セグメントブロックの組み合わせが「ネストされたブロック」を表します。 ネストされた AND/OR 機能を使用すると、次のような組み合わせで複雑なセグメントを作成できます。- (A AND B) OR (C AND D)。ここでは、(A AND B) と (C AND D) の 2 つのネストされたブロックが OR 演算子で組み合わされています。
- (A OR B) AND (C OR D)。ここでは、(A OR B) と (C OR D) の 2 つのネストされたブロックが AND 演算子で組み合わされています。
- (A OR B) AND C AND D。ここでは、1 つのネストされたブロック (A OR B) が、他の 2 つのセグメントブロック C および D と AND 演算子で組み合わされています。
- (A AND B) OR C OR D。ここでは、1 つのネストされたブロック (A AND B) が、他の 2 つのセグメントブロック C および D と OR 演算子で組み合わされています。

ネストレベルについて
上記の例は、1 レベルのネストです。たとえば、複雑なセグメント (A AND B) OR (C AND D) の場合です。上記の例では、A、B、C、D はユーザー属性またはイベント属性を使用したシンプルな定義です。これらはセグメントではなく、シンプルなユーザー属性またはイベント属性です。 しかし、A、B、C、D 自体がシンプルな定義ではなく、ネストされたブロックやセグメントである場合、ネストは 1 レベルを超えます。 ネストレベルを増やすアクション:- クエリでカスタムセグメントを使用する: クエリでカスタムセグメントを使用すると、クエリのネストレベルは次のように増加します。
[そのクエリのネストレベル = カスタムセグメントの n レベル + 1 レベル増加] - クエリでネストされたフィルターを使用する: クエリでネストされたフィルターを使用すると、クエリのネストレベルが 1 レベル増加します

- クエリに通常のフィルターボタンを使用しても、ネストレベルには影響しません。このロジックを使用して作成されたカスタムセグメントは、ネストレベル 1 のカスタムセグメントになります。
- クエリに複数のネストされたフィルターを追加しても、ネストレベルがその数だけ増加するわけではありません。ネストレベルを 1 増やすには、少なくとも 1 つのネストされたフィルターがあれば十分です。

ネストレベルのさまざまなケース:
いくつかの例で理解しましょう:
ケース 1: レベル 1 のネスト
F はイベント「過去 3 日間に App Inbox Icon Clicked を少なくとも 1 回実行した」 G はイベント「Email viewed in Browser」 H はユーザー属性「Install status is True」 I はイベント「WhatsApp message clicked」
- 属性またはネストされたフィルターのみを使用して作成されたカスタムセグメントは、レベル 1 のカスタムセグメントになります

ケース 2: レベル 2 のネスト
セグメント F = Unsubscribe is False とします

- そのクエリのネストレベル = カスタムセグメントの n レベル + 1 レベル増加
ケース 3: レベル 3 のネスト
セグメントの定義: F は、イベント属性「Best time to send Email is between 10 Hrs and 13 Hrs」で構成されるカスタムセグメントです。これにより、ネストレベル 1 のカスタムセグメント F が作成されます。

- カスタムセグメント F(ネストレベル 1)がクエリに追加されているため 2 レベル(カスタムセグメント F のレベル 1 + 1 レベル = ネストレベル 2)
- さらに 1 レベル - ネストされたフィルターを使用してイベント属性が使用されており、ネストレベルが 2 増加します



ケース 4: > レベル 3 のネスト
セグメントの定義: F はユーザー属性またはイベント属性 J、K、L、M で構成されるカスタムセグメントで、F はセグメント E の定義でカスタムセグメントとして使用されます F は (J OR K) AND (L OR M) として定義されたネストされたセグメントです。 J はイベント「過去 3 日間に主に (Device Model is Nexus 5 (case insensitive)) で Notification Received Android を実行した」 K はユーザー属性「Best time to send Email is between 10 and 13」 L はユーザー属性「SPAM is false」 M はユーザー属性「Mobile user is True」
( {(J OR K) AND (L OR M)} AND G) OR (H AND I) として定義されます。

- カスタムセグメント F(ネストレベル 2)が導入されているため 3 レベル(カスタムセグメント F のレベル 2 + 1 レベル = レベル 3)- 冒頭で説明したルールに従う。
- さらに 1 レベル - ネストされたフィルターを使用してイベント属性が使用されており、ネストレベルが 4 に増加します

ネストされたフィルターの使用方法
ネストされたブロックを追加するには、「+ Nested Filter」ボタンを使用します。1 レベルを超えるネストを持つセグメントを作成するには、まずカスタムセグメント(上記の例のセグメント E)を作成し、そのカスタムセグメントをフィルターで使用する必要があります。 ネストされた条件は、外側の条件と反対の条件があらかじめ選択されています。そのため、外側の条件が AND の場合、ネストされた条件は OR になり(例: (A AND B) OR (C AND D))、その逆も同様です(例: (A OR B) AND (C OR D))。 ネストされた条件と外側の条件はどちらも変更できます。外側の条件を変更すると(たとえば AND から OR へ)、ネストされた条件は自動的に反対の条件(この場合は OR から AND)に更新され、その逆も同様です。 ネストされた AND/OR 機能は、セグメンテーションページおよびキャンペーン作成ページのターゲットオーディエンスセクションで利用できます。イベントトリガーキャンペーンのトリガー条件ではサポートされていません。 特定のユーザーセグメントを、選択したユーザーセグメントから除外することもできます。これを使用するには、Exclude user チェックボックスをクリックします。 MoEngage は最大 6 レベルのネストをサポートしています。これらの組み合わせにより、ユーザーをセグメント化するための特定の条件を柔軟に定義できます。 注:ファイルセグメントは、ネストの上限にカウントされません。
ネストが 6 レベルを超える場合に簡素化する方法
セグメントクエリは、条件の論理式です。どのような論理式も、1 レベルのネストに簡素化できます。論理ルールを活用して簡素化できます。 ネストを簡素化するために使用される論理ルール:- (X AND Y) AND Z = X AND Y AND Z
- (X OR Y) OR Z = X OR Y OR Z
- (X AND Y) OR Z = (X OR Z) AND (Y OR Z)
- (X OR Y) AND Z = (X AND Z) OR (Y AND Z)
A と B を A AND B として組み合わせた状態から始め、それ自体がセグメントである各ブロックを展開します。
A = C OR Dなので、セグメントは(C OR D) AND Bになります。C = E AND Fなので、セグメントは((E AND F) OR D) AND Bになり、これは(E OR D) AND (F OR D) AND Bに簡素化されます。E = G AND Hなので、セグメントは((G AND H) OR D) AND (F OR D) AND Bになります。
(G OR D) AND (H OR D) AND (F OR D) AND B に簡素化され、ネストレベル 1 のクエリになります。どのようなセグメント定義も、この方法で 1 レベルのネストに分解できます。