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

時間データ型のフィルター
階層化カスタム属性の時間型をフィルタリングする際、日付値を比較するときに年間日付または時間カテゴリのオペレーターを選択してフィルタリングできます。
年間日付カテゴリのオペレーターを選択すると、階層化カスタム属性値の完全なタイムスタンプではなく、月と日のみが比較対象としてチェックされます。時間カテゴリのオペレーターを選択すると、年を含む完全なタイムスタンプが比較されます。

日単位と週単位をサポートする時間オペレーター(次の値より大きい、次の値より小さい、正確に、次の値より後など)を使用する場合、セグメントを保存する際にBrazeが自動的に値を週に変換します。たとえば、91日は13週に変換されます。これらのフィルターでは日単位と週単位の両方がサポートされています。
マルチ条件セグメンテーションの使用
マルチ条件セグメンテーションを使用して、単一のオブジェクト内で複数の条件に一致するセグメントを作成します。これにより、配列内に指定されたすべての条件に一致するオブジェクトが少なくとも1つある場合、ユーザーはそのセグメントに適格となります。たとえば、ユーザーがこのセグメントに一致するのは、キーが空白でなく、かつ数値が0より大きい場合のみです。
セグメント用のLiquidをコピー
セグメント用のLiquidをコピー機能を使用して、このセグメントのLiquidコードを生成し、メッセージで使用することもできます。たとえば、アカウントオブジェクトの配列があり、アクティブな課税対象アカウントを持つ顧客をターゲットにするセグメントがあるとします。アクティブかつ課税対象のアカウントに関連するアカウント目標に顧客が貢献するよう促すメッセージを作成する必要があります。

セグメント用の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!」
ネストオブジェクトエクスプローラーを使用してスキーマを生成する
オブジェクトのスキーマを生成して、ネストされたオブジェクトパスを記憶する必要なくセグメントフィルターを構築できます。
ステップ 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というキーを持つ文字列タイプ(非課税または課税対象アカウント)

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

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

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

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