セグメント条件更新APIを開発したい

セグメント条件更新APIとは

本APIの概要

セグメント条件更新APIとは、貴社の基幹システム/アプリケーションとb→dashを繋ぐことで、b→dash管理画面を介さずに、「セグメント」アプリ上のセグメント用データに対して、「絞り込み条件」や「更新条件」を変更/更新することができるAPIです

貴社の基幹システム/アプリケーションに連携したセグメント更新を行いたい場合は、本API仕様書をご参照のもと貴社開発環境に実装してください。

セグメント条件更新APIは、セグメントの条件更新のリクエストのみ行うAPIのため、条件更新の結果を確認することはできません。セグメント条件更新結果をご確認したい場合は、「セグメント一覧取得API」も併せてご活用ください。
本APIが利用できる更新セグメント用データ

セグメント条件更新APIが更新できるセグメント用データは「単一セグメント」で作成したセグメントのみになります

「複合セグメント」で作成したセグメントの条件更新を行いたい場合は、複合セグメントを作成する際に「ベースセグメント」「追加セグメント」として選択した単一セグメントを本APIの対象としてご利用ください。

本APIで更新できるb→dash管理画面上のデータ

b→dash管理画面と同等の操作

セグメント条件更新APIでは、b→dash管理画面にある「セグメント編集画面(以下キャプチャ)」における操作と同様に、カラムに対して条件指定を行うことでレコードを絞り込むことができます。

※複合セグメントの場合は、「編集」をクリックしても下記の編集画面に遷移しません
複合セグメント作成時に「ベースセグメント」「追加セグメント」として選択した単一セグメントの編集画面をご参照ください

セグメント編集画面

本APIでは、セグメントの抽出条件の設定方法である「特定のデータファイルの値を抽出条件に用いる」機能を利用することはできません。
「特定のデータファイルの値を抽出条件に用いる」機能については、こちらの記載をご参照ください。
b→dash管理画面上の更新結果確認方法

セグメント条件更新APIを利用した結果は以下のb→dash管理画面(「セグメント一覧画面」「セグメント詳細画面(データファイル利用状況モーダル)」)で確認することができます。

セグメント一覧画面

データパレット詳細画面(データファイル利用状況モーダル)

本API利用にあたっての前提事項

事前準備

セグメント条件更新APIを利用する事前準備として「セグメント用データの作成」「参照データファイルの取込設定」「セグメント利用施策の運用停止」の3つの手順を踏む必要があります。

セグメント用データの作成

b→dash管理画面上で更新対象となるセグメント用データを作成する必要があります

セグメントアプリ上でセグメント用データの作成がまだ完了していない場合は「セグメントを作成したい」をご参照の上、設定を完了させてください。

参照データファイルの取込設定

本APIの利用でセグメントの「更新条件」を変更する場合、セグメント用データを作成する際に参照したデータファイルのデータファイル取込設定が「定期更新設定する」を選択している必要があります

データファイル取込設定をもう一度見直したい場合は、
データファイルの取込履歴の確認方法」「データファイルの取込履歴の編集方法」をご参照の上、設定を完了させてください。

セグメント利用施策の運用停止

本APIの利用でセグメントの「絞り込み条件」を変更する場合、更新するセグメントを利用している施策(メールアプリ、データ分析など)の運用を停止する必要があります

更新したいセグメントがどの施策で利用されているか、利用している施策が「運用中」であるかは、下記の「利用状況モーダル」で確認できます。必要に応じて施策を運用停止し、利用状況モーダルのステータスを「運用停止」または「運用終了」にしてください。

利用状況モーダル(運用停止操作の必要がある場合)の例

各施策の運用停止画面の例

共通仕様

セグメント条件更新APIでは、b→dash APIの共通仕様も参照する必要があります。共通仕様の詳細については「b→dash APIの共通仕様を知りたい」をご参照ください。

事前準備と共通仕様の確認ができましたら、セグメント条件更新APIの利用方法について説明していきます!

セグメント条件更新APIの仕様

処理フロー図

セグメント条件更新APIの処理フロー図は以下になります。

セグメント条件更新リクエスト

セグメント条件更新APIのURIURIパラメータを指定してデータ連携をリクエストするリクエストURIを準備します

〇セグメント条件更新APIのURI

URI https://api.smart-bdash.com/api/v1/segments/{segment_id}

〇URIパラメータ

プロパティ データ型
/サイズ
必須 説明
segment_id string
/255byte
{セグメントID} 更新するセグメントのID

【リクエストURIサンプル

https://api.smart-bdash.com/api/v1/segments/10
※上記URIは以下の条件の場合のサンプルとなります
segment_id:10
URIパラメータは、URIの「{xxx_xx}」に該当する値を代入することで指定することができます。
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
更新間隔
▽指定値は以下3通り
・『MONTHLY』:毎月
・『WEEKLY』:毎週
・『DAILY』:毎日
day integer($int32)
/2byte
更新日
※「更新間隔」が「MONTHLY」の場合は必須
▽以下の範囲から選択する
・1~31
hour string
/3byte
更新曜日
※「更新間隔」が「WEEKLY」の場合は必須
▽指定値は以下7通り
・『MON』:月曜日
・『TUE』:火曜日
・『WED』:水曜日
・『THU』:木曜日
・『FRI』:金曜日
・『SAT』:土曜日
・『SUN』:日曜日
minute integer($int32)
/2byte
更新時
▽指定値は以下の範囲内
・0~23
is_linked_to_
datafile_update
integer($int32)
/2byte
更新分
▽指定値は以下の範囲内
・0/15/30/45
name boolean
/5byte
データファイル更新のタイミングでセグメント抽出を行うか
▽指定値は以下の2通り
・『true』:行う
・『false』:行わない
name string
/255byte
セグメントの名称変更を行う場合に変更する値を指定する
※プロパティの指定がない場合は、元の名称のままとする
レコード絞り込み条件と指定方法の一覧

セグメント条件更新APIはカラムに対して条件指定を行うことで取得するレコードの絞り込みができます。本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」リクエスト形式でセグメント条件更新のリクエストをします

〇リクエスト形式

HTTPメソッド PUT

〇リクエストヘッダパラメータ

プロパティ
/サイズ
必須 説明
Authorization string
/2055字
Bearer {アクセストークン} 「認証方式を選択したい」で取得したアクセストークン

【リクエストコードサンプル】

PUT https://api.smart-bdash.com/api/v1/segments/10 

セグメント条件更新レスポンス

リクエストの送信に成功すると、下記のレスポンス形式でセグメント条件更新APIからレスポンスが返されます

〇レスポンスボディパラメータ

パラメータ名 Key データ型 説明
階層1:result object -
階層2:code integer($int32) ●ステータスコード
・リクエスト成功:「202」
・リクエストエラー:「400」

〇リクエストエラー発生時のエラーメッセージ詳細

# コード エラーメッセージ 説明
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」を
指定してください。
ソート条件のカラムが未指定

【レスポンスボディサンプル(成功レスポンス(202))】

{
  "result": {
  "code": 202,
 }
}
セグメント条件更新APIで受け取るレスポンスは、セグメント更新処理が正常に開始されたかどうかのレスポンスであり、セグメント更新処理の結果ではありません