ユースケース: 階層化カスタム属性によるセグメンテーション
これらのユースケースでは、Brazeで階層化カスタム属性を使用してユーザーをセグメント化する方法を紹介します。サンプルJSONとダッシュボードのワークフローが含まれており、ご自身のデータに合わせて活用できます。
あなたが音楽ストリーミングアプリのマーケティングチームに所属しており、残高やタイプを持つアカウントオブジェクトなど、ユーザーの階層化カスタム属性に基づいてメッセージを送信したいとします。これらのユースケースでは、チームがSegmentsで階層化カスタム属性を活用するさまざまな方法を紹介し、以下の方法を学ぶことができます。
- 階層化カスタム属性のSegmentフィルターを設定し、パスを検証し、各プロパティのデータタイプに合ったコンパレーターを選択する。
- ネストされた日付値に対してDay of Year演算子とTime演算子のどちらを使用すべきかを理解し、マルチクライテリアセグメンテーションが配列内の少なくとも1つのオブジェクトがすべての条件を満たす場合にユーザーをマッチさせる仕組みを理解する。
- オブジェクトまたはオブジェクト配列のスキーマを生成し、ダッシュボードで確認し、パスを手入力する代わりにパスピッカーを使用してSegmentを完成させる(例: 残高が100未満のユーザー)。
階層化カスタム属性によるフィルタリング
階層化カスタム属性に基づいてSegmentを構築し、最も再生された曲を300回以上再生したユーザーをターゲットにしましょう。
ステップ 1: フィルターを追加する
Nested Custom Attributesフィルターを選択すると、特定の階層化カスタム属性を選択できるドロップダウンが表示されます。ここでは、ユーザーの最も再生された曲に関するデータを含むmost_played_songを選択します。
ステップ 2: プロパティを選択する
フィルタリングしたい階層化カスタム属性内のプロパティを選択します。ここでは、ユーザーが最も再生された曲を何回再生したかを追跡するplay_analytics.countを選択します。
ステップ 3: 比較演算子と階層化カスタム属性の値を選択する
階層化カスタム属性でフィルタリングする場合、プロパティのデータタイプによって使用できるコンパレーターが決まります。例えば、play_analytics.countは数値であるため、数値カテゴリのコンパレーターを選択できます。
最も再生された曲を少なくとも300回再生したユーザーでフィルタリングするには、More than比較演算子を選択し、値に「300」と入力します。

時間データタイプによるフィルタリング
ネストされた時間カスタム属性でフィルタリングする場合、日付値を比較する際にDay of YearまたはTimeカテゴリの演算子を選択できます。
Day of Yearカテゴリの演算子を選択すると、階層化カスタム属性値の完全なタイムスタンプではなく、月と日のみが比較に使用されます。Timeカテゴリの演算子を選択すると、年を含む完全なタイムスタンプが比較されます。
マルチクライテリアセグメンテーションの使用
マルチクライテリアセグメンテーションを使用して、単一のオブジェクト内で複数の条件に一致するSegmentを作成します。配列内の少なくとも1つのオブジェクトが指定されたすべての条件に一致する場合、そのユーザーはSegmentに適格となります。例えば、キーが空白でなく、かつ数値が0より大きい場合にのみ、ユーザーはこのSegmentに一致します。
SegmentのLiquidをコピー
SegmentのLiquidをコピー機能を使用して、このSegmentのLiquidコードを生成し、メッセージで使用することもできます。例えば、アカウントオブジェクトの配列があり、アクティブな課税対象アカウントを持つ顧客をターゲットにするSegmentがあるとします。顧客にアクティブかつ課税対象のアカウントに関連するアカウント目標への貢献を促すには、ナッジメッセージを作成する必要があります。

SegmentのLiquidをコピーを選択すると、Brazeはアクティブかつ課税対象のアカウントのみを含むオブジェクト配列を返すLiquidコードを自動的に生成します。
1
2
3
4
5
6
7
{% assign segmented_nested_objects = '' | split: '' %}
{% assign obj_array = {{custom_attribute.${accounts}}} %}
{% for obj in obj_array %}
{% if obj["account_type"] == 'taxable' and obj["active"] == true %}
{% assign segmented_nested_objects = obj_array | slice: forloop.index0 | concat: segmented_nested_objects | reverse %}
{% endif %}
{% endfor %}
ここから、segmented_nested_objectsを使用してメッセージをパーソナライズできます。この例では、最初のアクティブな課税対象アカウントから目標を取得してパーソナライズします。
1
Get to your {{segmented_nested_objects[0].goal}} goal faster, make a deposit using our new fast deposit feature!
これにより、顧客に次のメッセージが返されます。「Get to your retirement goal faster, make a deposit using our new fast deposit feature!」
ネストオブジェクトエクスプローラーを使用してスキーマを生成する
オブジェクトのスキーマを生成して、ネストされたオブジェクトパスを記憶する必要なくSegmentフィルターを構築できます。
ステップ 1: スキーマを生成する
例えば、Brazeに送信したばかりのaccountsオブジェクト配列があるとします。
1
2
3
4
5
6
7
8
{"accounts": [
{"type": "taxable",
"balance": 22500,
"active": true},
{"type": "non-taxable",
"balance": 0,
"active": true}
]}
Brazeダッシュボードで、データ設定 > カスタム属性に移動します。
オブジェクトまたはオブジェクト配列を検索します。属性名列で、Generate Schemaを選択します。

送信されたデータ量によっては、スキーマの生成に数分かかる場合があります。
スキーマが生成されると、Generate Schemaボタンの代わりに新しいプラスボタンが表示されます。これをクリックすると、Brazeがこの階層化カスタム属性について把握している内容を確認できます。
スキーマ生成時、Brazeは以前に送信されたデータを参照し、この属性のデータの理想的な表現を構築します。また、Brazeはネストされた値のデータタイプを分析して追加します。これは、指定されたネスト属性に対してBrazeに以前送信されたデータをサンプリングすることで行われます。
accountsオブジェクト配列の場合、オブジェクト配列内に以下を含むオブジェクトがあることがわかります。
activeというキーを持つブール値タイプ(アカウントがアクティブかどうかに関係なく)balanceというキーを持つ数値タイプ(アカウントの残高)typeというキーを持つ文字列タイプ(非課税または課税対象アカウント)

データの分析と表現の構築が完了したので、Segmentを構築しましょう。
ステップ 2: Segmentを構築する
残高が100未満の顧客をターゲットにして、入金を促すメッセージを送信しましょう。
Segmentを作成し、Nested Custom Attributeフィルターを追加してから、オブジェクトまたはオブジェクト配列を検索して選択します。ここではaccountsオブジェクト配列を追加しました。

パスフィールドのプラスボタンを選択します。これにより、オブジェクトまたはオブジェクト配列の表現が開きます。リストされた項目のいずれかを選択すると、Brazeがパスフィールドに自動的に挿入します。この例では、残高を取得する必要があります。残高をパスとして選択すると(この場合は[].balance)、パスフィールドに自動的に入力されます。

コンパレーターとしてless thanを選択し、残高の値として「100」と入力します。

以上です!データの構造を知る必要なく、階層化カスタム属性を使用してSegmentを作成できました。Brazeのネストオブジェクトエクスプローラーがデータの視覚的な表現を生成し、Segmentの作成に必要なものを正確に探索して選択できるようにしました。