概要
これは Early Access 機能です。アカウントで有効にするには、MoEngage のカスタマーサクセスマネージャー(CSM)またはサポートチームにお問い合わせください。
- MoEngage ダッシュボードの Create segment ページでは、Object データ型のユーザーセグメンテーション機能が、Select audience セクションの User property タブと User behaviour タブに表示されます。
- セグメンテーションは、オブジェクトの配列に対して最大 2 レベルのネストをサポートしています。2 レベルを超えるネストの場合、属性は文字列化された形式で表示されます。

- オブジェクトの配列 データ型の属性の場合、セグメンテーションでは高度なクエリのために With 演算子と And 演算子が提供されます。
オブジェクトを使用したセグメンテーションクエリの作成
オブジェクトの属性には、任意のプリミティブデータ型を使用できます。このセクションでは、次のデータ型を使用して、ユーザー属性およびイベント属性のシナリオでセグメンテーションクエリを作成するいくつかの例を紹介します。String 属性のクエリ
ユーザー属性
犬を飼っているユーザーをセグメント化したい場合は、string データ型の Animal.pets と演算子 is を使用して、ペットとして犬を飼っているユーザーを取得できます。
イベント属性
過去 3 日間に少なくとも 1 回 Adopted a pet を実行し、Membership(String データ)が Gold で、ペットが Cat(Object データ)であるユーザーをセグメント化したい場合です。 説明:ここで、Membership は string データ型のイベント属性であり、Pets.species は string の Object データ型を持つ別のイベント属性です。And 演算子により、データベースから取得されるユーザーが両方の条件を満たしていることが保証されます。

セグメンテーションを使用した空文字列値のクエリ
特定の属性に空文字列の値を持つユーザーをセグメント化したい場合です。保存値は "" です(キーは設定されていますが、値は null です)。 説明:ここで、ListOfPets は内部にユーザー属性として Name を持つオブジェクトです。そのため、クエリでは ListOfPets.Name 属性を is empty フィルターとともに使用しています。

Numeric 属性のクエリ
ユーザー属性
6 歳未満のペットを飼っているユーザーをセグメント化したい場合です。 説明:ここで、Pets.age は numeric データ型のユーザー属性であり、less than は 6 歳未満のペットを飼っているユーザーをフィルタリングするための関係演算子です。

イベント属性
$500 の T シャツを購入したユーザーをセグメント化したい場合です。 説明:ここで、User behaviour ドロップダウンには Object 属性 product.price と値 $500 が表示されています。セグメンテーションクエリには、次のイベント属性が含まれています。
- string データ型の属性としての Product.Colour
- numeric データ型の Object 属性としての Product.Price
- string データ型の Object 属性としての Product.Currency

Date Time 属性のクエリ
イベント属性:
価格が $500 で、購入日が 2024 年 5 月 30 日より前の赤い T シャツを購入したユーザーをセグメント化したい場合です。 説明:ここで、セグメンテーションクエリには次の Object イベント属性が含まれています。
- Colour は string データ型のイベント属性で、値は Red です。
- Product.Price は string データ型のイベント属性です。
- Product.Purchase-date は date データ型の Object イベント属性です。

Array 属性のクエリ
イベント属性
過去 60 日間に少なくとも 1 回ワクチン接種を受け、犬種が Lab、年齢が 5 歳未満で、好きなおやつが bone である犬を飼っているユーザーをセグメント化したい場合です。
ネストされたオブジェクトのクエリ
イベント属性
価格が 300 USD の本を購入したユーザーをセグメント化したい場合です。
“With” 演算子の機能
Object データ型を使用したクエリの作成には、“With” 演算子と AND/OR 演算子の両方を使用できます。AND/OR 演算子はオブジェクト間にわたって属性フィルターを適用するのに対し、With 演算子は 1 つのオブジェクト内で属性フィルターを適用します。
With 演算子の使用
With 演算子を使用して以下のユースケースを実現する例として、次のペットの Object データ型を考えてみましょう。 Pets オブジェクト例 1
With 演算子を使用して、過去 60 日間に 3 回ワクチン接種を受け、犬種が Lab で、年齢が 5 歳未満、好きなおやつが Bone である犬を飼っているユーザーをセグメント化したい場合です。 このユースケースを実現するには、クエリを次のように分解します。- ペットが犬種 Lab の犬であるユーザーを見つける
- Lab 種の中から、年齢が < 5 歳の犬を見つける
- < 5 歳の Lab 種の中から、好きなおやつが Bone の犬を見つける

例 2
過去 60 日間に 3 回ワクチン接種を受け、犬種が Lab で、年齢が 5 歳未満、好きなおやつが Fish である犬を飼っているユーザーをセグメント化したい場合です。
And 演算子の使用
And 演算子を使用して以下のユースケースの一部を実現する例として、次のペットの Object データ型を考えてみましょう。 Pets オブジェクト例 1
過去 60 日間に 3 回ワクチン接種を受けた犬を飼っていて、ペットが犬種 Lab の犬であるユーザー AND 年齢が > 3 歳のペットを飼っているユーザー AND ペットの好きなおやつが Fish であるユーザーをセグメント化したい場合です。 このクエリは、次の条件を満たすユーザーを返します。- 過去 60 日間に 3 回ワクチン接種を受けたペットを飼っている
- 犬種 Lab の犬をペットとして飼っている
- 年齢が > 3 歳のペットを飼っている
- 好きなおやつが Fish のペットを飼っている
OR 演算子の使用
OR 演算子を使用して以下のユースケースの一部を実現する例として、次のペットの Object データ型を考えてみましょう。 Pets オブジェクト例 1
過去 60 日間に 3 回ワクチン接種を受けた犬を飼っていて、ペットが犬種 Lab の犬であるユーザー OR 年齢が > 3 歳のペットを飼っているユーザー OR ペットの好きなおやつが Duck であるユーザーをセグメント化したい場合です。
With 演算子を使用すると、前のフィールドと同じネストレベルの属性が表示されます。一貫性を保つため、他のネストレベルの属性は表示されません。このユースケースを実現するには、And 演算子を使用できます。

ネストされたオブジェクトの配列にまたがるクエリ
これは Early Access 機能です。アカウントで有効にするには、MoEngage のカスタマーサクセスマネージャー(CSM)またはサポートチームにお問い合わせください。
- インデントされた 1 つ目の “With” 演算子では、同じネストレベル(レベル 2)の属性に条件を追加できます。
- 2 つ目の “With” 演算子では、親レベル(レベル 1)の属性に条件を追加できます。
例
オブジェクトの配列であるユーザー属性 “nations” を考えてみましょう。各 nation オブジェクトには、name や population などの詳細に加えて、“cities” と呼ばれるネストされたオブジェクトの配列が含まれています。各 city オブジェクトにも、それぞれ独自の属性が含まれています。 Nations オブジェクトの例- Create Segment ページで、User property タブをクリックします。
- まず、属性でフィルタリングします:
nations.populationis greater than 1 - インデントされた “With” 演算子が表示されます。これを使用して、
nations.cities.name1などの city 属性に別の条件を追加できます。 - 1 つ目の下に 2 つ目の “With” 演算子が表示されます。これを使用して、レベル 1 属性の条件を追加します:
nations.cities.population1is greater than 10。

Object データ型に関する考慮事項
Object データ型は強力なセグメンテーション機能を提供しますが、MoEngage における現在の対応範囲を把握しておくことが重要です。これを理解しておくと、データ取り込み戦略を計画し、オブジェクトベースのセグメンテーションで何が実現できるかを把握するのに役立ちます。- ファイルアップロード: Object データ型は現在、File segment アップロード機能ではサポートされていません。
- ユーザーエクスポート: CSV によるユーザーエクスポートは、Object ユーザー属性をサポートしていません。ユーザーデータをエクスポートする際、Object 属性は CSV に含まれません。
- 集計のサポート: オブジェクトの配列の集計はサポートされていません。ただし、個々のオブジェクトおよび(配列ではない)ネストされたオブジェクトの集計はサポートされています。
- 属性の比較: ユーザー属性の比較では、オブジェクト同士の属性比較はサポートされていません。ただし、オブジェクトとプリミティブの属性比較(例えば、オブジェクト内の値を単純な文字列や数値と比較する)は引き続きサポートされています。
- Object データをサポートしていない機能: 次の MoEngage 機能は現在、Object データ型を完全にはサポートしていません。
- カスタムセグメントフィルターベースの public API
- Segment payload generator
- App marketplace(Sync segment のカスタム宛先)
- リアルタイムセグメンテーション
- User affinity(Object 属性に直接定義した場合) これらのサポートされていない機能で Object データが必要なシナリオでは、取り込み前にデータをよりシンプルなプリミティブ型に変換することを検討してください。
よくある質問
同じ属性に対して、オブジェクトと文字列など異なるデータ型を送信するとどうなりますか?
同じ属性に対して、オブジェクトと文字列など異なるデータ型を送信するとどうなりますか?
同じ 属性に対して複数のデータ型が取り込まれた場合、MoEngage は自動的に優先順位を付け、最初に検出したデータ型をクエリ用に選択します。その属性について 2 番目のデータ型の値をクエリすることはできません。回避策: 類似したデータについてオブジェクトとオブジェクトの配列の両方の値をクエリするには、データ取り込みで 2 つの別々の属性を使用することをお勧めします。データ管理でそれぞれをオブジェクトとして設定し、オブジェクトの値を一方の属性に、オブジェクトの配列の値をもう一方の属性に渡します。これにより、両方を個別にクエリできるようになります。
セグメントの作成時に、Object データ型の属性で値の候補は利用できますか?
セグメントの作成時に、Object データ型の属性で値の候補は利用できますか?
はい、Object データ型の属性で Value Suggestions がサポートされるようになりました。セグメントを作成する際、オブジェクト内の特定の値を検索できます。Object データの値の候補は、プリミティブデータ型と同じ生成ルールに従います。詳細については、こちらを参照してください。