カスタムイベント内の階層化オブジェクト
このページでは、カスタムイベントや購入のプロパティとして階層化された JSON データを送信する方法と、メッセージングでそれらの階層化オブジェクトを使用する方法について説明します。
階層化オブジェクト(別のオブジェクトの内部にあるオブジェクト)を使用して、カスタムイベントや購入のプロパティとして階層化された JSON データを送信できます。この階層化データは、メッセージ内のパーソナライズ情報のテンプレート化、メッセージ送信のトリガー、ユーザーのセグメンテーションに使用できます。
考慮事項
- ネストされたデータはカスタムイベントと購入イベントの両方でサポートされていますが、その他のイベントタイプではサポートされていません。
- 配列またはオブジェクト値を含むイベントプロパティオブジェクトは、最大100 KBのイベントプロパティペイロードを持つことができます。
- イベントプロパティスキーマは、購入イベントに対しては生成できません。
- イベントプロパティスキーマは、過去24時間のカスタムイベントをサンプリングすることで生成されます。
SDKの最小バージョン
以下のSDKバージョンがネストされたオブジェクトをサポートしています。
ステップ1:スキーマを生成する
階層化イベントプロパティを持つ各イベントのスキーマを生成することで、カスタムイベント内の階層化データにアクセスできます。スキーマを生成するには、次の手順に従います。
- データ設定 > カスタムイベントに移動します。
- 階層化プロパティを持つイベントのプロパティの管理を選択します。
- ボタンを選択してスキーマを生成します。スキーマを表示するには、 プラスボタンを選択します。

今後新しいプロパティが送信された場合、スキーマが再生成されるまでそれらはスキーマに含まれません。スキーマは24時間ごとに再生成できます。
ステップ2: ネストされたオブジェクトを使用する
ネストされたデータは、セグメンテーションやパーソナライゼーションの際に参照できます。スキーマは必須ではありません。使用例については、以下のセクションを参照してください。
APIリクエストボディ
以下は、「Created Playlist」カスタムイベントを使用した /users/track の例です。プレイリストが作成された後、以下を送信してプレイリストのプロパティをキャプチャします。
- 「songs」をプロパティとしてリストするAPIリクエスト
- 曲のネストされたプロパティの配列
...
"properties": {
"songs": [
{
"title": "Smells Like Teen Spirit",
"artist": "Nirvana",
"album": {
"name": "Nevermind",
"yearReleased": "1991"
}
},
{
"title": "While My Guitar Gently Weeps",
"artist": "the Beatles",
"album": {
"name": "The Beatles",
"yearReleased": "1968"
}
}
]
}
...
以下は、「Ordered」カスタムイベントを使用した /users/track の例です。注文が完了した後、以下を送信してその注文のプロパティをキャプチャします。
r_detailsをプロパティとしてリストするAPIリクエスト- その注文のネストされたプロパティ
...
"properties": {
"r_details": {
"name": "SandwichEmperor",
"identifier": "12345678",
"location" : {
"city": "Montclair",
"state": "NJ"
}
}
}
...

ネストされたカスタムイベントプロパティでは、年が0未満または3000より大きい場合、Brazeはその値をユーザーに保存しません。
Liquidテンプレート
以下は、前述のAPIリクエストでリクエストされたネストされたプロパティを参照するLiquidテンプレートの作成方法を示しています。
「Created Playlist」イベントによってトリガーされるメッセージでのLiquidテンプレート:
{{event_properties.${songs}[0].album.name}}:「Nevermind」
{{event_properties.${songs}[1].title}}:「While My Guitar Gently Weeps」
「Ordered」イベントによってトリガーされるメッセージでのLiquidテンプレート:
{{event_properties.${r_details}.location.city}}:「Montclair」
メッセージのトリガー
これらのプロパティを使用してキャンペーンやキャンバスをトリガーするには、カスタムイベントまたは購入を選択し、Nested Property フィルターを追加します。Place Order と Update Cart の e コマーストリガーは、同じフィルタータイプを受け入れます。

Nested Property フィルターは、アプリ内メッセージのトリガーではサポートされていません。ただし、アプリ内メッセージでのLiquidパーソナライゼーションにネストされたプロパティを使用することは可能です。
トップレベル(基本的な)イベントプロパティフィルター(配列型のプロパティを含む)は、アプリ内メッセージのトリガーに使用できます。これらのフィルターは Nested Property フィルターとは別のものです。
「Created Playlist」イベントからのネストされたプロパティを使用してキャンペーンをトリガーする:

トリガー条件 songs[].album.yearReleased が「1968」に「等しい」場合、いずれかの曲のアルバムが1968年にリリースされたイベントに一致します。配列を走査するためにブラケット表記 [] を使用し、走査された配列内のいずれかの項目がイベントプロパティに一致する場合にマッチします。

does not equal フィルターは、配列内のプロパティのいずれも指定した値に等しくない場合にのみ一致します。
例えば、キャンバスAにはアクションベースのカスタムイベントのネストされたプロパティフィルター equals「smartwatch」があり、キャンバスBにはアクションベースのカスタムイベントのネストされたプロパティフィルター does not equal「simphone」があるとします。プロパティに「smartwatch」と「simphone」の両方がある場合、両方のキャンバスがトリガーされます。しかし、いずれかのプロパティに「simphone」または「sim only」がある場合、どちらのキャンバスもトリガーされません。
「Ordered」イベントからのネストされたプロパティを使用してキャンペーンをトリガーする:

r_details.name:「SandwichEmperor」
r_details.location.city:「Montclair」

イベントプロパティに [] または . の文字が含まれている場合は、該当部分をダブルクォーテーションで囲んでエスケープしてください。例えば、"songs[].album".yearReleased はリテラルプロパティ "songs[].album" を持つイベントに一致します。
セグメンテーション
ネストされたイベントプロパティに基づいてユーザーをセグメント化するには、セグメントエクステンションを使用する必要があります。スキーマを生成すると、ネストされたオブジェクトエクスプローラーがセグメンテーションセクションに表示されます。

セグメンテーションは、トリガーと同じ表記法を使用します(メッセージのトリガーを参照)。
セグメントエクステンションを編集または作成するには、「Edit セグメント」の権限が必要です。
パーソナライゼーション
Add Personalization モーダルを使用して、パーソナライゼーションタイプとして Advanced Event Properties を選択します。これにより、スキーマが生成された後にネストされたイベントプロパティを追加するオプションが利用可能になります。

メッセージでのネストされたオブジェクトのテスト
ダッシュボードのプレビューとテストツールは、ネストされたオブジェクトや階層化カスタム属性のモックデータの追加をサポートしていません。Liquidを通じてネストされたデータを参照するメッセージをテストするには、そのネストされた属性を持つ既存のユーザーとしてメッセージをプレビューするか、テストユーザーにライブキャンペーンを送信してカスタムイベントプロパティを含むメッセージをプレビューします。
階層化カスタム属性
- APIを使用して、テストユーザープロファイルにネストされた属性をインポートします。
- キャンペーンまたはキャンバスで、プレビューとテストに移動します。
- ユーザーとしてプレビューを選択し、テストユーザーを検索します。Liquidは、そのユーザーのプロファイルにある実際のネストされた属性を使用して解決されます。
ネストされたイベントプロパティ
ネストされたイベントプロパティは、ライブイベントトリガーが必要なため、ダッシュボードでプレビューできません。テストするには、以下の手順に従います。
- テストユーザーのみを対象とし、ネストされたプロパティを持つカスタムイベントによってトリガーされる(またはそのカスタムイベントを参照する)キャンペーンまたはキャンバスステップを作成します。
- テストオーディエンスにキャンペーンを配信します。
- ネストされたオブジェクトペイロードを含むカスタムイベントを、テストユーザーのプロファイルに記録します(APIまたはSDKを使用)。
- ネストされたプロパティの値でメッセージが正しくレンダリングされることを確認します。
よくある質問
階層化オブジェクトを使用すると、追加のデータポイントが記録されますか?
この機能を追加しても、データポイントの記録方法に変更はありません。階層化オブジェクトに基づくセグメンテーションではセグメントエクステンションを使用しますが、追加のデータポイントは消費されません。
どのくらいの量の階層化データを送信できますか?
イベントのプロパティの1つ以上に階層化データが含まれている場合、イベントのすべてのプロパティを合わせた最大ペイロードは100 KBです。このサイズ制限を超えるリクエストは拒否されます。