接続オーディエンスオブジェクト
接続オーディエンスは、APIリクエスト内でインラインに定義するダイナミックなオーディエンスフィルターです。Brazeダッシュボードでセグメントを作成・管理することなく、送信時に適切なユーザーをターゲットにできます。
あらゆるオーディエンスの組み合わせに対してセグメントを事前に構築する代わりに、APIコールにフィルター条件を直接渡します。エンドポイントに応じて、このオブジェクトはaudienceまたはcustom_audienceとして渡されます。Brazeはリアルタイムで各ユーザーをその条件に照らして評価し、条件に一致するユーザーにのみメッセージを配信します。つまり、1つのキャンペーン、キャンバス、またはAPIのみのメッセージ定義で、ビジネスロジックに完全に基づいた無制限のオーディエンスバリエーションに対応できます。
仕組み
- Brazeダッシュボードで API トリガーのキャンペーンまたはキャンバスを作成してメッセージを定義するか、API リクエスト内のメッセージングオブジェクトを使用してメッセージコンテンツを完全にインラインで定義します。ダイナミックなパーソナライゼーションには、トリガープロパティまたはキャンバスコンテキストを使用します。
- サポートされているエンドポイントを呼び出し、
audienceパラメーターにコネクテッドオーディエンスフィルターを含めます(/messages/live_activity/startの場合はcustom_audienceに含めます)。カスタム属性、プッシュ購読ステータス、メール購読ステータス、最終アプリ使用日時でフィルタリングできます。 - Brazeは送信時にフィルターを評価し、条件に一致するユーザーにのみメッセージを配信します。

audience パラメーターを使用する場合、campaign_id は必須ではありません。/messages/send および /messages/schedule/create エンドポイントでは、事前にキャンペーンを作成しなくてもメッセージコンテンツをインラインで定義できます。ただし、ダッシュボードでキャンペーンレベルの指標(送信数、クリック数、バウンス数など)を追跡したい場合は、campaign_id を含めてください。
オーディエンスはリクエストごとに定義されるため、バックエンドシステムは、ダッシュボードでの操作なしに、あらゆるビジネスイベント(価格変更、天気アラート、ライブスコア更新など)に応じて状況に即したメッセージをトリガーできます。
互換性のあるエンドポイント
以下のエンドポイントでコネクテッドオーディエンスオブジェクトを使用できます。
/messages/send/campaigns/trigger/send/canvas/trigger/send/messages/schedule/create/campaigns/trigger/schedule/create/canvas/trigger/schedule/create/messages/live_activity/start(custom_audienceを使用)
audience パラメーターはオブジェクトの配列をサポートしていません。
ユースケース
コネクテッドオーディエンスは、バックエンドシステムがイベントを検出し、動的に決定されたユーザーセットに通知する必要があるシナリオで使用します。
| カテゴリ | 例 |
|---|---|
| 天気アラート | 気象データプロバイダーが深刻な気象イベントを検出し、preferred_city 属性が影響を受ける地域と一致するユーザーにプッシュ通知を送信します。 |
| スポーツ・ライブイベント | スポーツアプリが、favorite_team 属性が試合中のチームのいずれかと一致するユーザーにリアルタイムのスコア更新や試合アラートを送信します。 |
| コンテンツ・エンターテイメント | ストリーミングサービスが、新しいエピソードがリリースされるたびに、favorite_shows 配列にそのシリーズタイトルが含まれるユーザーに通知します。 |
| Eコマース | オンライン小売店が、wishlisted_products 配列に該当する商品IDが含まれるユーザーに値下げや再入荷のアラートを送信します。 |
| 旅行 | 旅行アプリが、booked_flight 属性が影響を受けるフライト番号と一致するユーザーにフライト遅延通知を送信します。 |
| 金融サービス | 取引プラットフォームが、watchlist 配列に価格しきい値を超えた銘柄コードが含まれるユーザーにアラートを送信します。 |
いずれの場合も、単一のキャンペーンまたはAPIのみのメッセージ定義ですべてのバリエーションに対応できます。バックエンドがフィルター値を決定し、APIリクエストで渡すため、商品、番組、チーム、場所ごとに個別のセグメントやキャンペーンを作成する必要はありません。
リクエスト例
以下の例では、/campaigns/trigger/send エンドポイントを使用して、特定の番組をお気に入りに登録し、プッシュ通知をオプトインしているユーザーをターゲットにしています。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"campaign_id": "YOUR_CAMPAIGN_ID",
"audience": {
"AND": [
{
"custom_attribute": {
"custom_attribute_name": "favorite_shows",
"comparison": "includes_value",
"value": "Example Show"
}
},
{
"push_subscription_status": {
"comparison": "is",
"value": "opted_in"
}
}
]
},
"trigger_properties": {
"show_title": "Example Show",
"episode_title": "Season 3, Episode 1",
"deep_link": "https://example.com/shows/example-show/s3e1"
},
"broadcast": false
}
オブジェクト本体
コネクテッドオーディエンスオブジェクトは、単一のコネクテッドオーディエンスフィルター、または AND と OR 演算子で組み合わされた複数のコネクテッドオーディエンスフィルターで構成されます。
複数フィルターの例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
"AND":
[
Connected Audience Filter,
{
"OR" :
[
Connected Audience Filter,
Connected Audience Filter
]
},
Connected Audience Filter
]
}
コネクテッドオーディエンスフィルター
複数のフィルターを AND および OR 演算子で組み合わせて、コネクテッドオーディエンスフィルターを作成します。
考慮事項
コネクテッドオーディエンスでは、以下の条件でユーザーをフィルタリングすることはできません。
- デフォルト属性
- カスタムイベント
- セグメント
- メッセージエンゲージメントイベント
- 階層化カスタム属性
これらのフィルターを使用するには、オーディエンスセグメントに組み込み、/messages/send エンドポイントの segment_id パラメーターでそのセグメントを指定することをお勧めします。他のエンドポイントを使用する場合は、まずBrazeダッシュボードでAPIトリガーのキャンペーンまたはキャンバスにセグメントを追加する必要があります。階層化属性でフィルタリングする必要がある場合は、代わりに標準セグメントを使用してください。
カスタム属性フィルター
このフィルターを使用すると、ユーザーのカスタム属性に基づいてセグメント化できます。これらのフィルターには最大3つのフィールドが含まれます。
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": (String) the name of the custom attribute to filter on,
"comparison": (String) one of the allowed comparisons to make against the provided value,
"value": (String, Numeric, Boolean) the value to be compared using the provided comparison
}
}
データ型別の許可される比較
カスタム属性のデータ型によって、特定のフィルターで有効な比較が決まります。
| カスタム属性の型 | 許可される比較 |
|---|---|
| String | equals, not_equal, matches_regex, does_not_match_regex, exists, does_not_exist, is_any_of, is_none_of |
| Array | includes_value, does_not_include_value, exists, does_not_exist, is_any_of, is_none_of |
| Numeric | equals, not_equal, greater_than, greater_than_or_equal_to, less_than, less_than_or_equal_to, exists, does_not_exist |
| Boolean | equals, not_equal, exists, does_not_exist |
| Time | less_than_x_days_ago, greater_than_x_days_ago, less_than_x_days_in_the_future, greater_than_x_days_in_the_future, after, before, exists, does_not_exist |
属性比較に関する注意事項
| 比較 | 追加の考慮事項 |
|---|---|
value |
exists または does_not_exist の比較を使用する場合、value は不要です。before および after の比較を使用する場合、value はISO 8601日時文字列である必要があります。 |
matches_regex |
matches_regex の比較を使用する場合、渡される値は文字列である必要があります。Brazeでの正規表現の使用について詳しくは、正規表現およびカスタム属性のデータ型を参照してください。 |
複数値の比較
is_any_of と is_none_of は、1回の比較で複数の値に対するマッチングをサポートしています。これらの比較は、文字列型と配列型の両方のカスタム属性で使用できます。
is_any_of: 属性値が指定された値のいずれかと一致するユーザーにマッチします。valueは単一の文字列または文字列の配列にすることができます。is_none_of: 属性値が指定された値のいずれとも一致しないユーザーにマッチします。valueは単一の文字列または文字列の配列にすることができます。プロファイルにその属性を持たないユーザーは、常にこの比較の対象となることに注意してください。
配列属性の場合:
includes_valueは、ユーザーの配列に指定された値のいずれかが含まれているかどうかを確認するために、値の配列を受け入れることもできます。- 配列属性で
is_any_ofまたはis_none_ofを使用する場合、それぞれincludes_valueおよびdoes_not_include_valueと同じように機能します。

複数値のマッチングには、includes_value ではなく is_any_of を使用してください。
カスタム属性の例
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": "eye_color",
"comparison": "equals",
"value": "blue"
}
}
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": "favorite_foods",
"comparison": "includes_value",
"value": "pizza"
}
}
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": "last_purchase_time",
"comparison": "less_than_x_days_ago",
"value": 2
}
}
複数値の比較例
文字列の配列を使用した is_any_of
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": "favorite_color",
"comparison": "is_any_of",
"value": ["red", "blue", "green"]
}
}
文字列の配列を使用した is_none_of
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": "subscription_tier",
"comparison": "is_none_of",
"value": ["bronze", "silver"]
}
}
配列を使用した includes_value(配列属性)
1
2
3
4
5
6
7
8
{
"custom_attribute":
{
"custom_attribute_name": "subscribed_products",
"comparison": "includes_value",
"value": ["1001", "1002", "1003"]
}
}
これは、subscribed_products 配列に "1001"、"1002"、または "1003" のいずれかの値が含まれるユーザーにマッチします。
プッシュ購読フィルター
このフィルターを使用すると、ユーザーのプッシュ購読ステータスに基づいてセグメント化できます。
フィルター本文
1
2
3
4
5
6
7
{
"push_subscription_status":
{
"comparison": (String) one of the following allowed comparisons,
"value": (String) one of the following allowed values
}
}
- 許可される比較:
is,is_not - 許可される値:
opted_in,subscribed,unsubscribed
メール購読フィルター
このフィルターを使用すると、ユーザーのメール購読ステータスに基づいてセグメント化できます。
フィルター本文
1
2
3
4
5
6
7
{
"email_subscription_status":
{
"comparison": (String) one of the following allowed comparisons,
"value": (String) one of the following allowed values
}
}
- 許可される比較:
is,is_not - 許可される値:
opted_in,subscribed,unsubscribed
最終アプリ使用フィルター
このフィルターを使用すると、ユーザーが最後にアプリを使用した日時に基づいてセグメント化できます。これらのフィルターには2つのフィールドが含まれます。
フィルター本文
1
2
3
4
5
6
7
{
"last_used_app":
{
"comparison": (String) one of the allowed comparisons listed,
"value": (String) the value to be compared using the provided comparison
}
}
- 許可される比較:
after,before - 許可される値: datetime(ISO 8601文字列)