見出し画像

【第407回】 Data Cloud : セグメント演算子の解説

Data Cloud では、セグメントのキャンバスに属性をドラッグすると、データ型に応じて「演算子(オペレーター)」を選択できます。これらを正確に理解することで、オーディエンスを精密に絞り込むことが可能になります。

演算子は、以下の 4 種類に分類されます。

  • 日付(Date / DateTime)

  • 数値(Numeric)

  • テキスト(Text)

  • ブール値(Boolean)

この記事では、それぞれの演算子がどう機能するのかを解説します。



日付(Date / DateTime)演算子

日付型属性に使用できる演算子です。

重要:このセグメントの画面では「タイムゾーン変換後」の日時データが利用されます。そのため、Salesforce 組織で設定されているタイムゾーンが適用されています。

小話:少し背景を説明すると、Data Cloud では取り込んだ日時データをいったんすべて UTC タイムゾーンに変換して保存しています。内部的には UTC で保持されていますが、そのままだと扱いにくいため、画面に表示する際に組織のタイムゾーンへ再変換(例:UTC → JST の場合は +9 時間)して表示しています。

セグメント画面やセグメントのプレビュー画面でも、このタイムゾーン変換後(例:JST)の日時を基準に動作するという話になります。

一方で、タイムゾーン変換が適用されない(取り込んだデータのまま表示される)代表例としては以下が挙げられます。

クエリエディターで日時項目をクエリで実行した場合
データグラフでコンテンツに日時を表示する場合

これらでは UTC のままの値、つまり日本時間より 9 時間前の取り込まれた時刻で表示されますのでご注意ください。

※ Marketing Cloud Engagement の環境は、CST タイムゾーンで動いていますので、Marketing Cloud Engagement の日付データは、すべて 15 時間プラスされてセグメントでは表示されていることになります。(取り込みデータは 6 時間プラスです。CST ⇒ UTC)Marketing Cloud Engamgenet の Date データ(実質、すべて Datetime データ)で 9 時以降の時間データを持っている場合は、15時間がプラスされた結果、日付が翌日に繰り上がりますので注意が必要してください。MC からのデータの場合は、セグメントの条件で利用する日付項目がどのように処理されて、取り込まれているかを、インプリ担当者へ事前にご確認ください。

① Has No Value (値なし)

日付型属性の値が Null のオーディエンスを探します。


② Has Value (値あり)

日付型属性の値が Null ではなく、値があるオーディエンスを探します。


③ Is On (当日)

カレンダーで指定した日(当日)に、イベントが発生したオーディエンスを探します。


④ Is Before (次の日の前)

カレンダーで指定した日より前に、イベントが発生したオーディエンスを探します。指定した日(当日)は含みません。


⑤ Is After (次の日の後)

カレンダーで指定した日より後に、イベントが発生したオーディエンスを探します。指定した日(当日)は含みません。


⑥ Is Between (次の範囲内にある)

カレンダーで指定した開始日(00:00:00)から終了日(23:59:59)までにイベントが発生したオーディエンスを探します。指定した日をそれぞれ含みます。


⑦ Is Anniversary Of (次のアニバーサリーの日付)

属性の日付の「月」と「日」が、今日の「月」と「日」と一致するオーディエンスを探します。この演算子では、「年」の部分は無視されます。例えば、今日が誕生日である人や、今日が結婚記念日である人を抽出します。


⑧ Is Not Anniversary Of (次のアニバーサリーの日付ではない)

属性の日付の「月」と「日」が、今日の「月」と「日」と一致しないオーディエンスを探します。「年」の部分は無視されます。


⑨ Greater Than Last Number Of Days (最後の日数より大きい)

この「大きい」の意味は、時間的に古いものという意味になります。

今日の日付から 指定した日数分を遡り、それより前の日付で発生したイベントを探します。遡った結果の日付自体は、その結果に含まれません

例えば、入会年月日が 180 日より前の人(入会して半年が経過している人)だけに絞りたいような時に利用できます。

例:2025 年 11 月 30 日の任意の時間で再計算をする場合に、5 を指定したとすると、5 日前の 11 月 25 日 00:00:00 より前(過去)のイベントがすべて抽出されます。この場合の 5 日前自体のデータは含まれません


⑩ Last Number Of Days (最後の日数)

抽出を開始する現在の時刻までの「直近で過去 〇 日間」でイベントが発生したオーディエンスを探します。
3 ヶ月以内(90 日)に入会したした人を探す場合など

例:6 を指定して 2025 年 11 月 30 日 15:00 に再計算 →
2025 年 11 月 24 日 00:00:00 〜 2025 年 11 月 30 日 15:00:00 が対象となります。

Tips:
「今日から○日前“だけ”を取得する」ための専用演算子は存在しませんが、⑨「最後の日数で □ 日間」⑩「最後の日数より大きい □ 日」 を組み合わせることで、実現できます。

例えば、11 月 30 日にセグメントが再計算されるケースで、
“今日から 6 日前(= 11 月 24 日)だけのデータを取得したい” 場合は、次のように指定します。
⑨ 最後の日数で:6(11 月 24 日以上のデータが取得される)
⑩ 最後の日数より大きい:511 月 24 日以下のデータが取得される)

この 2 つの条件を重ねることで、結果的に 11 月 24 日分のデータのみに絞り込まれます。このテクニックは、「入会日から○日目にメールを送る」 といったシナリオでも非常に有効です。


⑪ Next Number Of Days (次の日数)

抽出を開始する現在の時刻から「将来の 〇 日間の終わり(23:59:59)まで」に発生するイベントを探します。

例:2 を指定して 2025 年 11 月 30 日 15:00 に再計算 →
2025 年 11 月 30 日 15:00 〜 2025 年 12 月 2 日 23:59:59 が対象となります。


⑫ Last Number Of Months (最後の月数)

過去の「〇 ヶ月」でイベントが発生したオーディエンスを探します。
当月は含まれません。

例:2 を指定し 2025 年 11 月 30 日に再計算 →
2025 年 9 月〜 10 月のすべてのイベントが対象となります。11 月は含まれません。


⑬ Next Number Of Months (次の月数)

将来の「〇 ヶ月」でイベントが発生する予定のオーディエンスを探します。
当月は含まれません。

例:1 を指定し 2025 年 11 月 30 日に再計算 →
来月(2025 年 12 月)のすべてのイベントが対象となります。当月は含まれません。


⑭ Last Year (昨年)

前年全体を対象にして、イベントが発生したオーディエンスを探します。


⑮ This Year (今年)

今年全体を対象にして、イベントが発生したオーディエンスを探します。


⑯ Next Year (来年)

来年全体を対象にして、イベントが発生するオーディエンスを探します。


⑰ Day Of Week (曜日)

指定した「曜日」にイベントが発生したオーディエンスを探します。


⑱ Day Of Month (月の日)

指定した日(1〜31)にイベントが発生したオーディエンスを探します。


⑲ Not Day Of Month (月の日ではない)

指定した日(1〜31)以外にイベントが発生したオーディエンスを探します。


⑳ Before Day Of Month (月の日の前)

このオペレーターは 日付の “日” の部分だけ を比較します。
つまり、月や年は比較せず、日付の「何日か」だけを使ってフィルターします。例えば、フィルターで次のように設定したとします。

Before Day Of Month = 10(※数字だけを入力)この場合、

  • 「1 日〜 9 日の間の日付」を持つレコードだけが対象となります

  • 月や年は無視されます


㉑ After Day Of Month (月の日の後)

このオペレーターは 日付の “日” の部分だけ を比較します。
つまり、月や年は比較せず、日付の「何日か」だけを使ってフィルターします。例えば、フィルターで次のように設定したとします。

After Day Of Month = 10(※数字だけを入力)この場合、

  • 「11 日〜 31 日の日付」を持つレコードだけが対象となります

  • 月や年は無視されます

※ この結果、⑳も㉑も 〇 月 10 日のデータは含みません。


㉒ Month Of The Year (今年の月)※ 日本語では「月」と表示

指定した月(1〜12)にイベントが発生したオーディエンスを探します。


㉓ Not Month Of The Year (今年の月ではない)※ 日本語では「月ではない」と表示

指定した月(1〜12)以外でイベントが発生したオーディエンスを探します。


㉔ Is This Month (今月)

今月イベントが発生したオーディエンスを探します。


㉕ Is Next Month (来月)

来月イベントが発生する予定のオーディエンスを探します。


㉖ Is Last Month (先月)

昨月イベントが発生したオーディエンスを探します。


㉗ Is Today (今日)

今日イベントが発生したオーディエンスを探します。


㉘ Is Tomorrow (明日)

明日イベントが発生する予定のオーディエンスを探します。


㉙ Is Yesterday (昨日)

昨日イベントが発生したオーディエンスを探します。


㉚ Last Number Of Years (最後の年数)

※ ㉚は、計算済みインサイト限定の演算子です。

過去の「カレンダー年(〇 年前)」でイベントが発生したオーディエンスを探します。

例:2025 年にセグメントが再カウントされた場合、5 の値を指定すると、2020 年 1 月から 2020 年 12 月に発生したすべてのイベントが返されます。


数値(Numeric)演算子

数値型属性に使用できる演算子です。パーセンテージ型も含まれます。

① Has Value (値あり)

値が Null または 空 でないオーディエンスを探します。


② Has No Value (値なし)

値が Null または 空 のオーディエンスを探します。


③ Is Equal To (次の値と等しい)

指定した値と一致するオーディエンスを探します。


④ Is Not Equal To (次の値と等しくない)

指定した値と一致しないオーディエンスを探します。

※ 対象のフィールドが Null の場合はセグメントに含まれません
Null も含めたい場合は、「Has No Value」と「Is Not Equal To」を OR ブロックに入れます。


⑤ Is Less Than (次の値未満)

指定した値より小さいオーディエンスを探します。


⑥ Is Less Than or Equal To (次の値以下)

指定した値以下のオーディエンスを探します。


⑦ Is Greater Than (次の値より大きい)

指定した値より大きいオーディエンスを探します。


⑧ Is Greater Than or Equal To (次の値以上)

指定した値以上のオーディエンスを探します。


⑨ Is Between (次の範囲内にある)

開始値と終了値の範囲に含まれるオーディエンスを探します。


⑩ Is Not Between (次の範囲内にない)

開始値と終了値の範囲外のオーディエンスを探します。


テキスト(Text)演算子

URL、メール、電話番号などもテキスト型として扱われます。

※ すべて大文字・小文字は区別されません。

① Has Value (値あり)

値が Null または 空 でないオーディエンスを探します。


② Has No Value (値なし)

値が Null または 空 のオーディエンスを探します。


③ Is Equal To (次の値と等しい)

指定した文字列と一致するオーディエンスを探します。


④ Is Not Equal To (次の値と等しくない)

指定した文字列と一致しないオーディエンスを探します。

※ 対象のフィールドが Null の場合はセグメントに含まれません
Null も含めたい場合は、「Has No Value」と「Is Not Equal To」を OR ブロックに入れます。


⑤ Contains (次の文字列を含む)

指定した文字列を含むオーディエンスを探します。


⑥ Does Not Contain (次の値を含まない)

指定した文字列を含まないオーディエンスを探します。


⑦ Matches(一致)

正規表現パターンに一致するオーディエンスを探します。

例えば、属性の値に TestSearch という文字列が含まれているかを調べたい場合、正規表現を使うと TestSearch を含むすべてのデータ が検索結果としてヒットします。

例:

  • TestSearch Results

  • TestingSearching(⇒ Test(ing)Search(ing)のように、部分でも OK)

このように、完全一致だけでなく「部分的に含まれているもの」もまとめて検索できるのが、正規表現演算子の便利なポイントです。


⑧ Doesn’t Match (一致しません)

正規表現パターンと一致しないオーディエンスを探します。


⑨ Begins With (次の値で始まる)

指定した文字列で始まるオーディエンスを探します。


⑩ Exists As A Whole Word (次の単語が存在する)

指定した文字列が「単語として」存在するかを判定します。

例:hello world には hello は存在、hel は存在しない


⑪ Is Not In (次の値のいずれとも一致しない)

指定した複数の値のいずれにも一致しないオーディエンスを探します。
最大 100 個まで指定可能で、「値の提案」機能が有効ならドロップダウンから選択できます。
カンマ区切りも投入が可能です。以下のような例です。

alpha,beta,gamma,delta,echo,foxtrot,golf,hotel,india,juliet,kilo,lima,mike,november,oscar,papa,quebec,romeo,sierra,tango,uniform,victor,whiskey,xray,yankee,zulu,apple,banana,cherry,date,elderberry,fig,grape,honeydew,ice,juice,kiwi,lemon,mango,nectarine,orange,peach,quince,raspberry,strawberry,tomato,ugli,vanilla,watermelon,xenon,yogurt,zephyr,cloud,storm,rain,snow,wind,sky,river,lake,forest,mountain,valley,desert,ocean,beach


⑫ Is In (次の値のいずれかと一致する)

指定した複数の値のいずれかに一致するオーディエンスを探します。
最大 100 個まで指定可能で、「値の提案」機能が有効ならドロップダウンから選択できます。カンマ区切りも投入が可能です。


ブール値(Boolean)演算子

① Has Value (値あり)

値が Null でないオーディエンスを探します。


② Has No Value (値なし)

値が Null のオーディエンスを探します。


③ Is True (True)

値が Null でなく、True のオーディエンスを探します。


④ Is False (False)

値が Null でなく、False のオーディエンスを探します。


いかがでしたでしょうか。

特に注意したいポイントは、やはり 日付データのタイムゾーン変換 の部分かと思います。それ以外については、比較的シンプルに使える印象です。

たとえば、「今日の日付から過去 6 カ月分」というような取得は直接できないため、“過去 180 日” のように日数へ変換して指定する必要がある など、少し痒いところに手が届かない部分も存在します。この点は注意してください。

Data Cloud のセグメンテーション演算子は、データ型ごとに豊富で奥が深い機能です。それぞれの演算子が どのようなレコードを対象にするのか を理解しておくことで、より精度の高いオーディエンスセグメントを構築できるようになります。迷ったときは、ぜひこのページを参考にしてください。

今回は以上です。


次の記事はこちら

前回の記事はこちら

私の note のトップページはこちら