本記事では、「セグメント条件更新API」の概要・利用前提・仕様(リクエスト/レスポンス/エラーメッセージ)について紹介しています。
貴社の基幹システム/アプリケーションに連携したセグメント更新を行いたい場合は、本記事をご参照のもと、貴社開発環境に実装してください。
本記事の構成は下記の通りです。
各セクションの詳細は、以下をご参照ください。
セグメント条件更新APIとは、貴社の基幹システム/アプリケーションとb→dashを繋ぐことで、b→dash管理画面を介さずに、「セグメント」アプリ上のセグメント用データに対して、「絞り込み条件」や「更新条件」を変更/更新することができるAPIです。
セグメント条件更新APIでは、b→dash管理画面にある「セグメント編集画面」における操作と同様に、カラムに対して条件指定を行うことでレコードを絞り込むことができます。

本APIを利用した結果は、下記のb→dash管理画面で確認できます。

本APIを利用する事前準備として、下記の3つの手順を踏む必要があります。
b→dash管理画面上で更新対象となるセグメント用データを作成する必要があります。
本APIの利用でセグメントの「更新条件」を変更する場合、セグメント用データを作成する際に参照したデータファイルのデータファイル取込設定が「定期更新設定する」を選択している必要があります。
本APIの利用でセグメントの「絞り込み条件」を変更する場合、更新するセグメントを利用している施策(メールアプリ、データ分析など)の運用を停止する必要があります。
更新したいセグメントがどの施策で利用されているか、利用している施策が「運用中」であるかは、「利用状況モーダル」で確認できます。必要に応じて施策を運用停止し、利用状況モーダルのステータスを「運用停止」または「運用終了」にしてください。

本APIでは、b→dash APIの共通仕様も参照する必要があります。
セグメント条件更新APIの処理フロー図は下記の通りです。

本APIのURIにURIパラメータを指定して、データ連携をリクエストするリクエストURIを準備します。
項目 |
値 |
| URI | https://api.smart-bdash.com/api/v1/segments/{segment_id} |
| HTTPメソッド | PUT |
URIパラメータは下記の通りです。
プロパティ |
データ型 / サイズ |
必須 |
値 |
説明 |
| segment_id | string / 255byte | ○ |
{セグメントID} | 更新するセグメントのID |
https://api.smart-bdash.com/api/v1/segments/10
json形式のファイル(拡張子: .json)に、下記のリクエストボディパラメータを指定して、セグメントの更新内容を送信するためのリクエストボディを準備します。
プロパティ |
データ型 / サイズ |
必須 |
説明 |
| segment_conditions | object / 153400byte | - |
セグメント条件 |
| └ condition_or | object[] / 153400byte | - |
OR条件のブロック ※ ORブロックは最大10個まで設定可 |
| └ condition | object[] / 15340byte | - |
AND条件のブロック ※ 1つのORブロック内で最大20個まで設定可 |
| └ column_id | string / 255byte | ○ |
データファイル上でのカラムのID ※「condition」の指定がある場合、必須 |
| └ condition_name | string / 2byte | ○ |
条件指定 ※ 詳細は下記「レコード絞り込み条件と指定方法の一覧」をご参照ください ※「condition」の指定がある場合、必須 |
| └ condition_value | object / 510byte | △ |
条件値 ※ 条件指定が「BL」「NB」「NL」「NN」「T」「F」以外の場合は必須 |
| └ value | string / 255byte | △ |
条件の値 ※ 条件指定が「BW」「NW」以外の場合は必須 |
| └ from | string / 255byte | △ |
範囲/期間指定の条件の開始値 ※ 条件指定が「BW」「NW」の場合は必須 |
| └ to | string / 255byte | △ |
範囲/期間指定の条件の終了値 ※ 条件指定が「BW」「NW」の場合は必須 |
| aggregation_timing_settings | object / 480byte | - |
集計タイミング設定 |
| └ regular_update_settings | object[] / 480byte | - |
定期更新設定 ※ 20要素まで設定可能 |
| └ interval | string / 8byte | ○ |
更新間隔 MONTHLY: 毎月 / WEEKLY: 毎週 / DAILY: 毎日 |
| └ day | integer / 2byte | △ |
更新日(「更新間隔」が「MONTHLY」の場合は必須、1〜31) |
| └ day_of_the_week | string / 3byte | △ |
更新曜日(「更新間隔」が「WEEKLY」の場合は必須) MON / TUE / WED / THU / FRI / SAT / SUN |
| └ hour | integer / 2byte | ○ |
更新時(0〜23) |
| └ minute | integer / 2byte | ○ |
更新分(0/15/30/45) |
| └ is_linked_to_datafile_update | boolean / 5byte | ○ |
データファイル更新のタイミングでセグメント抽出を行うか true: 行う / false: 行わない |
| name | string / 255byte | - |
セグメントの名称変更を行う場合に変更する値を指定する ※ プロパティの指定がない場合は、元の名称のままとする |
本APIはカラムに対して条件指定を行うことで取得するレコードの絞り込みができます。下記に「絞り込み条件」と「コードの指定方法」をまとめておりますので、レコードの絞り込みを行う場合はご参照ください。
データ型 |
絞込み条件 |
抽出条件の定義 |
指定方法 |
テキスト型以外 |
NULL | NULLを抽出する | NL |
| NULLではない | NULL以外を抽出する | NN |
|
テキスト |
空文字 | 空文字を抽出する(スペースは含まれない) | BL |
| 空文字ではない | 空文字以外を抽出する | NB |
|
| 次を含む | 指定した文字列を含む値を抽出する(カンマ区切りで複数指定可能[OR条件、現在未実装]) | LK |
|
| 次を含まない | 指定した文字列を含まない値を抽出する(カンマ区切りで複数指定可能[OR条件、現在未実装]) | NI |
|
| 次で始まる | 指定した文字列の前方一致で抽出する | L% |
|
| 次で終わる | 指定した文字列の後方一致で抽出する | %L |
|
| 次に完全一致 | 指定した文字列の完全一致で抽出する | EQ |
|
| 次に完全一致しない | 指定した文字列の完全不一致で抽出する | NE |
|
整数 |
次より大きい | 指定した数値より大きい値を抽出する | GT |
| 以上 | 指定した数値以上の値を抽出する | GE |
|
| 次より小さい | 指定した数値より小さい値を抽出する | LT |
|
| 以下 | 指定した数値以下の値を抽出する | LE |
|
| 次の値の間 | 指定した2つの数値の間にある値を抽出する(指定した数値は含まれる) | BW |
|
| 次の値の間にない | 指定した2つの数値の間にない値を抽出する(指定した数値は含まれない) | NW |
|
| 次と等しい | 指定した数値と等しい値を抽出する | EQ |
|
| 次と等しくない | 指定した数値と等しくない値を抽出する | NE |
|
小数 |
次より大きい | 指定した数値より大きい値を抽出する | GT |
| 以上 | 指定した数値以上の値を抽出する | GE |
|
| 次より小さい | 指定した数値より小さい値を抽出する | LT |
|
| 以下 | 指定した数値以下の値を抽出する | LE |
|
| 次の値の間 | 指定した2つの数値の間にある値を抽出する(指定した数値は含まれる) | BW |
|
| 次の値の間にない | 指定した2つの数値の間にない値を抽出する(指定した数値は含まれない) | NW |
|
| 次と等しい | 指定した数値と等しい値を抽出する | EQ |
|
| 次と等しくない | 指定した数値と等しくない値を抽出する | NE |
|
日付 |
次より前の日付 | 指定した日付より前の日付を抽出する(フォーマット: yyyyMMdd形式) | LT |
| 次より後の日付 | 指定した日付より後の日付を抽出する(yyyyMMdd形式) | GT |
|
| 次の日付 | 指定した日付と一致する日付を抽出する(yyyyMMdd形式) | EQ |
|
| 次の期間にある | 指定した2つの日付の間にある日付を抽出する(指定した日付は含まれる、yyyyMMdd形式) | BW |
|
| 次の期間にない | 指定した2つの日付の間にない日付を抽出する(指定した日付は含まれない、yyyyMMdd形式) | NW |
|
日時 |
次より前の日付 | 指定した日付より前の日付を抽出する(yyyyMMddhh24miss形式) | LT |
| 次より後の日付 | 指定した日付より後の日付を抽出する(yyyyMMddhh24miss形式) | GT |
|
| 日付 | 指定した日付と一致する日付を抽出する(yyyyMMddhh24miss形式) | EQ |
|
| 次の期間にある | 指定した2つの日付の間にある日付を抽出する(指定した日付は含まれる、yyyyMMddhh24miss形式) | BW |
|
| 次の期間にない | 指定した2つの日付の間にない日付を抽出する(指定した日付は含まれない、yyyyMMddhh24miss形式) | NW |
|
真偽値 |
TRUE | 「true」を抽出する | T |
| FALSE | 「false」を抽出する | F |
{
"segment_conditions": {
"condition_or": [
{
"condition": [
{
"column_id": "COLUMN_1",
"condition_name": "EQ",
"condition_value": {
"value": "vwxyz"
}
},
{
"column_id": "COLUMN_2",
"condition_name": "BW",
"condition_value": {
"from": "20220101",
"to": "20221231235959"
}
},
{
"column_id": "COLUMN_3",
"condition_name": "NW",
"condition_value": {
"from": "20220101000000",
"to": "20221231235959"
}
},
{
"column_id": "COLUMN_4",
"condition_name": "T"
}
]
}
]
},
"aggregation_timing_settings": {
"regular_update_settings": [
{
"interval": "MONTHLY",
"day": 31,
"hour": 23,
"minute": 0
},
{
"interval": "WEEKLY",
"day_of_the_week": "FRI",
"hour": 23,
"minute": 0
}
],
"is_linked_to_datafile_update": true,
"name": "更新後セグメント名称"
}
}
準備したリクエストURI/リクエストボディと、下記のリクエストヘッダパラメータを用いて、貴社Webアプリから「PUT」リクエスト形式でセグメント条件更新のリクエストをします。
プロパティ |
型 / サイズ |
必須 |
値 |
説明 |
| Authorization | string / 2055字 | ◯ |
Bearer {アクセストークン} | 「認証方式を選択したい」で取得したアクセストークン |
PUT https://api.smart-bdash.com/api/v1/segments/10
リクエストの送信に成功すると、下記のレスポンス形式で本APIからレスポンスが返されます。
パラメータ名 |
データ型 |
説明 |
| 階層1: result | object | - |
| 階層2: code | integer | ステータスコード ・リクエスト成功: 「202」 ・リクエストエラー: 「400」 |
{
"result": {
"code": 202,
}
}
# |
コード |
エラーメッセージ |
説明 |
1 |
400 |
リクエストヘッダ「Range」には10,000行以内でリクエスト開始行数とリクエスト終了行数を指定してください | リクエストヘッダ「Range」の指定が10,000行数を超過した |
2 |
400 |
condition_nameに「{condition_name}」を指定時は、condition_value.valueを指定してください | 条件指定に「BL」「NB」「NL」「NN」「BW」「NW」「T」「F」以外を指定時にvalueが未指定 |
3 |
400 |
condition_nameに「{condition_name}」を指定時は、condition_value.fromを指定してください | 条件指定に「BW」「NW」を指定時にfromが未指定 |
4 |
400 |
condition_nameに「{condition_name}」を指定時は、condition_value.toを指定してください | 条件指定に「BW」「NW」を指定時にtoが未指定 |
5 |
400 |
{sort_order}には以下のいずれかを指定してください。asc/desc | ソート対象のカラムのID指定時にソート方法に不正な文字列が指定された |
6 |
400 |
limitには1〜10,000を指定してください | 最大取得件数に範囲外の値が指定された |
7 |
400 |
データファイル「{datafile_id}」カラム「{column_id}」が存在しません | 検索対象のカラムのIDに指定したカラムがデータファイルに存在しない |
8 |
400 |
データファイル「{datafile_id}」にカラム「{column_id}」が存在しません | ソート対象のカラムのIDに指定したカラムがデータファイルに存在しない |
9 |
400 |
テキスト型のカラム「{column_id}」の{condition_name}には以下のいずれかを指定してください。BL/NB/LK/NI/L%/%L/EQ/NE | テキスト型カラムの条件指定に不正な文字列が指定された |
10 |
400 |
整数型のカラム「{column_id}」の{condition_name}には以下を指定してください。GT/GE/LT/LE/BW/NW/EQ/NE/NL/NN | 整数型カラムの条件指定に不正な文字列が指定された |
11 |
400 |
小数型のカラム「{column_id}」の{condition_name}には以下を指定してください。GT/GE/LT/LE/BW/NW/EQ/NE/NL/NN | 小数型カラムの条件指定に不正な文字列が指定された |
12 |
400 |
日付型のカラム「{column_id}」の{condition_name}には以下を指定してください。LT/GT/EQ/BW/NW/NL/NN | 日付型カラムの条件指定に不正な文字列が指定された |
13 |
400 |
日時型のカラム「{column_id}」の{condition_name}には以下を指定してください。LT/GT/EQ/BW/NW/NL/NN | 日時型カラムの条件指定に不正な文字列が指定された |
14 |
400 |
真偽値型のカラム「{column_id}」の{condition_name}には以下を指定してください。T/F/NL/NN | 真偽値型カラムの条件指定に不正な文字列が指定された |
15 |
400 |
整数型のカラム「{column_id}」の{value}には整数に変換可能な文字列を指定してください | 条件指定が未指定、または「NL」「NN」「BW」「NW」以外を指定時に整数型カラムの条件の値に整数型以外が指定された |
16 |
400 |
整数型のカラム「{column_id}」の{from}には整数に変換可能な文字列を指定してください | 条件指定に「BW」「NW」を指定時に整数型カラムの条件の開始値に整数型以外が指定された |
17 |
400 |
整数型のカラム「{column_id}」の{to}には整数に変換可能な文字列を指定してください | 条件指定に「BW」「NW」を指定時に整数型カラムの条件の終了値に整数型以外が指定された |
18 |
400 |
小数型のカラム「{column_id}」の{value}には小数に変換可能な文字列を指定してください | 条件指定が未指定、または「NL」「NN」「BW」「NW」以外を指定時に小数型カラムの条件の値に小数型以外が指定された |
19 |
400 |
小数型のカラム「{column_id}」の{from}には小数に変換可能な文字列を指定してください | 条件指定に「BW」「NW」を指定時に小数型カラムの条件の開始値に小数型以外が指定された |
20 |
400 |
小数型のカラム「{column_id}」の{to}には小数に変換可能な文字列を指定してください | 条件指定に「BW」「NW」を指定時に小数型カラムの条件の終了値に小数型以外が指定された |
21 |
400 |
日付型のカラム「{column_id}」の{value}には以下の形式で文字列を指定してください。形式: yyyyMMdd | 条件指定が未指定、または「NL」「NN」「BW」「NW」以外を指定時に日付型カラムの条件の値に日付型以外が指定された |
22 |
400 |
日付型のカラム「{column_id}」の{from}には以下の形式で文字列を指定してください。形式: yyyyMMdd | 条件指定に「BW」「NW」を指定時に日付型カラムの条件の開始値に日付型以外が指定された |
23 |
400 |
日付型のカラム「{column_id}」の{to}には以下の形式で文字列を指定してください。形式: yyyyMMdd | 条件指定に「BW」「NW」を指定時に日付型カラムの条件の終了値に日付型以外が指定された |
24 |
400 |
日時型のカラム「{column_id}」の{value}には以下の形式で文字列を指定してください。形式: yyyyMMddhh24miss | 条件指定が未指定、または「NL」「NN」「BW」「NW」以外を指定時に日時型カラムの条件の値に日時型以外が指定された |
25 |
400 |
日時型のカラム「{column_id}」の{from}には以下の形式で文字列を指定してください。形式: yyyyMMddhh24miss | 条件指定に「BW」「NW」を指定時に日時型カラムの条件の開始値に日時型以外が指定された |
26 |
400 |
日時型のカラム「{column_id}」の{to}には以下の形式で文字列を指定してください。形式: yyyyMMddhh24miss | 条件指定に「BW」「NW」を指定時に日時型カラムの条件の終了値に日時型以外が指定された |
27 |
400 |
「query_condition.condition_or.condition.column_id」が存在しません。「query_condition」指定時には「column_id」を指定してください | 検索条件のカラムが未指定 |
28 |
400 |
「sort_condition.condition.column_id」が存在しません。「sort_condition」指定時には「column_id」を指定してください | ソート条件のカラムが未指定 |