スケジュールのエンドポイント
スケジュールは、バッチセグメント化ジョブを1日1回自動的に実行するために使用できるツールです。 /config/schedules エンドポイントを使用して、スケジュールのリストの取得、新しいスケジュールの作成、特定のスケジュールの詳細の取得、特定のスケジュールの更新、または特定のスケジュールの削除を行うことができます。
はじめに
このガイドで使用されているエンドポイントは、Adobe Experience Platform Segmentation Service APIの一部です。 続行する前に、必須ヘッダーやサンプル API呼び出しの読み取り方法など、APIへの呼び出しを正常に行うために知っておく必要がある重要な情報については、入門ガイド を確認してください。
スケジュールのリストの取得 retrieve-list
組織のすべてのスケジュールのリストを取得するには、/config/schedules エンドポイントにGET リクエストを行います。
API 形式
/config/schedules エンドポイントは、結果を絞り込むのに役立つ、複数のクエリパラメーターをサポートしています。 これらのパラメーターはオプションですが、高価なオーバーヘッドを減らすために使用することを強くお勧めします。 パラメーターを指定せずにこのエンドポイントを呼び出すと、組織で使用可能なすべてのスケジュールが取得されます。 複数のパラメーターを使用する場合は、アンパサンド(&)で区切ります。
GET /config/schedules
GET /config/schedules?{QUERY_PARAMETERS}
クエリパラメータ
| table 0-row-3 1-row-3 2-row-3 | ||
|---|---|---|
| パラメーター | 説明 | 例 |
start |
オフセットの元となるページを開始します。 デフォルトでは、この値は 0 です。 | start=5 |
limit |
返されるスケジュールの数を指定します。 デフォルトでは、この値は 100 です。 | limit=20 |
リクエスト
次のリクエストは、組織内に投稿された最後の10個のスケジュールを取得します。
| code language-shell |
|---|
|
応答
応答が成功すると、HTTP ステータス 200が返され、指定した組織のスケジュールのリストがJSONとして返されます。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 | |
|---|---|
| プロパティ | 説明 |
_page.totalCount |
返されたスケジュールの合計数。 |
_page.pageSize |
スケジュールのページのサイズ。 |
children.id |
スケジュールのID。 |
children.imsOrgId |
スケジュールの組織ID。 |
children.sandbox |
スケジュールのサンドボックス情報を含むオブジェクト。 |
children.name |
スケジュールの名前を文字列として指定します。 |
children.state |
スケジュール状態を含む文字列。 サポートされている2つのステートは「アクティブ」と「非アクティブ」です。 デフォルトでは、状態は「非アクティブ」に設定されています。 |
children.type |
文字列としてのジョブのタイプ。 サポートされているタイプは batch_segmentation と export の 2 つです。 |
children.schedule |
ジョブスケジュールを含む文字列。 ジョブは、1日に1回しか実行するようにスケジュールできません。つまり、24時間の間にジョブを1回以上実行するようにスケジュールすることはできません。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。 この例では、「0 0 1 * *」とは、このスケジュールが毎日午前1時に実行されることを意味します。 |
children.frequency |
スケジュールが実行される頻度。 指定できる値は、daily、weekly、monthly、yearlyです。 |
children.properties |
スケジュールに関連する追加のプロパティを含むオブジェクト。 |
children.properties.segments |
スケジュールに属するセグメント定義のID。 |
children.owner |
スケジュールの所有者。 使用可能な値には、スケジュールがユーザー作成の場合はuser、スケジュールがシステム作成の場合はsystemがあります。 |
children.createEpoch |
スケジュールのエポック作成時間(秒単位)。 |
children.updateEpoch |
スケジュールが最後に更新された時間(秒単位)。 |
新しいスケジュールの作成 create
/config/schedules エンドポイントに POST リクエストをおこなうことで、新しいスケジュールを作成できます。
API 形式
POST /config/schedules
リクエスト
| code language-shell |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| プロパティ | 説明 |
name |
必須。 スケジュールの名前を文字列として指定します。 |
type |
必須。 文字列としてのジョブのタイプ。 サポートされているタイプは batch_segmentation と export の 2 つです。 |
properties |
必須。 スケジュールに関連する追加のプロパティを含むオブジェクト。 |
properties.segments |
typeが「batch_segmentation」に等しい場合は必須です。 スケジュールの一部として含めるセグメント定義のID。 |
schedule |
必須。 ジョブスケジュールを含む文字列。 ジョブは、1日に1回しか実行するようにスケジュールできません。つまり、24時間の間にジョブを1回以上実行するようにスケジュールすることはできません。 ジョブスケジュールは、スケジュールの頻度を決定します。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。 この例では、「0 0 1 * *」とは、このスケジュールが毎日午前1時に実行されることを意味します。 |
state |
オプション。 スケジュール状態を含む文字列。 サポートされている 2 つの状態は、active と inactive です。 デフォルトでは、状態は inactive に設定されています。 |
応答
正常な応答では、新しく作成したスケジュールの詳細と共に HTTP ステータス 200 が返されます。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 16-row-2 | |
|---|---|
| プロパティ | 説明 |
id |
新しく作成したスケジュールのID。 |
imsOrgId |
スケジュールを作成したユーザーの組織ID。 |
sandbox |
スケジュールのサンドボックス情報を含むオブジェクト。 サンドボックスについて詳しくは、 サンドボックスの概要を参照してください。 |
sandbox.sandboxId |
スケジュールを含むサンドボックスのID。 |
sandbox.sandboxName |
スケジュールを含むサンドボックスの名前。 |
sandbox.type |
サンドボックスの種類。 指定できる値はproductionとdevelopmentです。 |
sandbox.default |
サンドボックスがデフォルトのサンドボックスであるかどうかを示すブール値。 |
name |
スケジュールに付けた名前。 |
state |
スケジュールの状態。 指定できる値はactiveとinactiveです。 リクエスト本文の一部としてこれを設定しなかった場合、状態はinactiveに設定されます。 |
type |
スケジュールのジョブのタイプ。 指定できる値はbatch_segmentationとexportです。 |
schedule |
スケジュールの実行時を表すcron式。 cron式の作成について詳しくは、cron式の形式に関する節を参照してください。 |
frequency |
スケジュールが実行される頻度。 これは、スケジュールのcron式に直接依存します。 指定できる値は、daily、weekly、monthly、yearlyです。 |
properties |
スケジュールがbatch_segmentation タイプの場合、スケジュールのセグメント定義IDを含むオブジェクト。 |
owner |
スケジュールを所有するエンティティのタイプ。 スケジュールを作成したので、この値はuserです。 |
createEpoch |
スケジュールのエポック作成時間(秒単位)。 |
updateEpoch |
スケジュールが最後に更新された時間(秒単位)。 |
特定のスケジュールの取得 get
特定のスケジュールに関する詳細な情報を取得するには、/config/schedules エンドポイントにGET リクエストを行い、取得するスケジュールのIDをリクエストパスに指定します。
API 形式
GET /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id値。リクエスト
| code language-shell |
|---|
|
応答
正常な応答では、指定されたスケジュールの詳細情報と共に HTTP ステータス 200 が返されます。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 16-row-2 17-row-2 | |
|---|---|
| プロパティ | 説明 |
id |
スケジュールのID。 |
imsOrgId |
スケジュールが属する組織のID。 |
sandbox |
スケジュールのサンドボックス情報を含むオブジェクト。 サンドボックスについて詳しくは、 サンドボックスの概要を参照してください。 |
sandbox.sandboxId |
スケジュールを含むサンドボックスのID。 |
sandbox.sandboxName |
スケジュールを含むサンドボックスの名前。 |
sandbox.type |
サンドボックスの種類。 指定できる値はproductionとdevelopmentです。 |
sandbox.default |
サンドボックスがデフォルトのサンドボックスであるかどうかを示すブール値。 |
name |
スケジュールの名前を文字列として指定します。 |
state |
スケジュール状態を含む文字列。 サポートされている 2 つの状態は、active と inactive です。 デフォルトでは、状態は inactive に設定されています。 |
type |
文字列としてのジョブのタイプ。 サポートされているタイプは batch_segmentation と export の 2 つです。 |
schedule |
ジョブスケジュールを含む文字列。 ジョブは 1 日に 1 回のみ実行するようにスケジュールできます。つまり、24 時間の間に 2 回以上実行するようにジョブをスケジュールすることはできません。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。 この例では、「0 0 1 * *」とは、このスケジュールが毎日午前1時に実行されることを意味します。 |
frequency |
スケジュールが実行される頻度。 この値は、スケジュールのcron式に直接依存します。 指定できる値は、daily、weekly、monthly、yearlyです。 |
properties |
スケジュールに関連する追加のプロパティを含むオブジェクト。 |
properties.segments |
スケジュールの一部であるセグメント定義IDのリスト。 |
owner |
スケジュールを所有するエンティティのタイプ。 ユーザーがスケジュールを作成した場合、この値はuserです。 スケジュールがシステムで作成されたスケジュールの場合、この値はsystemです。 |
createEpoch |
スケジュールのエポック作成時間(秒単位)。 |
updateEpoch |
スケジュールが最後に更新された時間(秒単位)。 |
特定のスケジュールの詳細の更新 update
特定のスケジュールを更新するには、/config/schedules エンドポイントに対してPATCH リクエストを行い、更新しようとしているスケジュールのIDをリクエストパスに指定します。
PATCH リクエストを使用すると、個々のスケジュールの状態またはcron スケジュール のいずれかを更新できます。
API 形式
PATCH /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id値。JSON パッチ操作を使用して、スケジュールの状態を更新できます。 状態を更新するには、path プロパティを/stateとして宣言し、valueをactiveまたはinactiveのいずれかに設定します。 JSON パッチについて詳しくは、JSON パッチ ドキュメントを参照してください。
リクエスト
| accordion | ||
|---|---|---|
| スケジュール状態を更新するためのサンプルリクエスト。 | ||
|
| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| プロパティ | 説明 |
path |
パッチを適用する値のパス。 この場合、スケジュールの状態を更新するため、pathの値を「/state」に設定する必要があります。 |
value |
スケジュールの状態の更新値。 この値は、「アクティブ」または「非アクティブ」に設定して、スケジュールをアクティブ化または非アクティブ化できます。 組織でストリーミングが有効になっている場合は、でスケジュールを無効にすることはできません。 |
応答
正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。
path プロパティを/scheduleとして宣言し、valueを有効なcron スケジュールに設定します。 JSON パッチについて詳しくは、JSON パッチ ドキュメントを参照してください。 cron スケジュールの詳細については、cron式の形式に関する付録を参照してください。リクエスト
| code language-shell |
|---|
|
| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| プロパティ | 説明 |
path |
更新する値のパス。 この場合、cron スケジュールを更新するため、pathの値を/scheduleに設定する必要があります。 |
value |
cron スケジュールの更新された値。 この値は、Cron スケジュールの形式で指定する必要があります。 この例では、スケジュールは毎月 2 日に実行されます。 |
応答
正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。
特定のスケジュールの削除
特定のスケジュールの削除をリクエストするには、/config/schedules エンドポイントに対してDELETE リクエストを行い、削除するスケジュールのIDをリクエストパスに指定します。
API 形式
DELETE /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}id値。リクエスト
| code language-shell |
|---|
|
応答
正常な応答では、HTTP ステータス 204(コンテントなし)が返されます。
スケジュールにオーディエンスを追加 add-audiences
/config/schedules/add-audiences エンドポイントにPOST リクエストを行うことで、特定のスケジュールにオーディエンスを追加できます。
API 形式
POST /config/schedules/add-audiences
リクエスト
| code language-shell |
|---|
|
idsegments応答
応答が成功すると、HTTP ステータス 200が返され、操作の詳細が表示されます。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| プロパティ | 説明 |
added |
スケジュールに追加されたセグメント定義のIDを含む配列。 |
existing |
既にスケジュール上にあるセグメント定義のIDを含む配列。 |
invalid |
リクエスト本文の一部である無効なセグメント定義IDを含む配列。 |
segmentCount |
以前にスケジュールの一部であったセグメント定義の数(previous)、現在スケジュールの一部となっているセグメント定義の数(current)、およびこれら2つの値の差(diff)を含むオブジェクト。 |
スケジュールからオーディエンスを削除 remove-audiences
/config/schedules/remove-audiences エンドポイントにPOST リクエストを行うことで、特定のスケジュールからオーディエンスを削除できます。
API 形式
POST /config/schedules/remove-audiences
リクエスト
| code language-shell |
|---|
|
idsegments応答
応答が成功すると、HTTP ステータス 200が返され、操作の詳細が表示されます。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| プロパティ | 説明 |
removed |
スケジュールから削除されたセグメント定義のIDを含む配列。 |
notFound |
スケジュール内に見つからなかったセグメント定義のIDを含む配列。 |
segmentCount |
以前にスケジュールの一部であったセグメント定義の数(previous)、現在スケジュールの一部となっているセグメント定義の数(current)、およびこれら2つの値の差(diff)を含むオブジェクト。 |
オーディエンスマップを入手 get-audience-map
/config/schedules/audience-map エンドポイントにPOST リクエストを行うことで、オーディエンスのオーディエンスマップを取得できます。 オーディエンスマップは、セグメント定義IDと、そのIDが属するスケジュールとのマッピングを表します。
API 形式
POST /config/schedules/audience-map
リクエスト
| code language-shell |
|---|
|
segments応答
応答が成功すると、オーディエンスとスケジュールマッピングに関する詳細情報を含むHTTP ステータス 200が返されます。
| code language-json |
|---|
|
| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| プロパティ | 説明 |
audienceMap |
セグメント定義IDと、それらが属するスケジュールとのマッピング。 |
schedules |
オーディエンスマップ内にリストされているスケジュールに関する情報を含むオブジェクト。 |
トリガースケジュール ジョブ trigger
/config/schedules/trigger エンドポイントにPOST リクエストを行うことで、アクティブ化するスケジュールを手動でトリガーできます。
API 形式
POST /config/schedules/trigger
リクエスト
| code language-shell |
|---|
|
id応答
応答が成功すると、コンテンツなしでHTTP ステータス 200が返されます。
次の手順
このガイドを読むと、スケジュールの仕組みがより深く理解できるようになります。
付録 appendix
次の付録では、スケジュールで使用されるcron式の形式について説明します。
形式
cron式は、6個または7個のフィールドで構成される文字列です。 式は次のようになります。
0 0 12 * * ?
cron式の文字列では、最初のフィールドは秒、2番目のフィールドは分、3番目のフィールドは時間、4番目のフィールドは月の日、5番目のフィールドは月、6番目のフィールドは週の日を表します。 また、年を表す7番目のフィールドを含めることもできます。
, - * /, - * /, - * /, - * ? / L W, - * /, - * ? / L #, - * /SUNはsunの使用と同等です。使用できる特殊文字は、次の意味を表します。
**を入力すると、ごとに時間になります。?3、「週の日」フィールドに?を入力します。-9-15を「時間」フィールドに入れると、時間には9、10、11、12、13、14、15が含まれます。,MON, FRI, SATを「曜日」フィールドに入れた場合、曜日には月曜日、金曜日、土曜日が含まれることを意味します。//の前に配置された値によって増分の場所が決まります。一方、/の後に配置された値によって、増分の量が決まります。 例えば、1/7を「分」フィールドに入れると、分には1、8、15、22、29、36、43、50、57が含まれます。LLastを指定するために使用され、使用されるフィールドによって異なる意味を持ちます。 「月の日」フィールドで使用する場合は、月の最終日を表します。 「曜日」フィールドのみで使用する場合は、土曜日(SAT)の週の最終日を表します。 「曜日」フィールドと別の値を組み合わせて使用する場合は、その月のタイプの最終日を表します。 例えば、「曜日」フィールドに5Lを入れると、月の最後の金曜日が のみ になります。W18Wを「月の日」フィールドに入れ、その月の18日が土曜日の場合、最も近い平日である17日の金曜日にトリガーします。 その月の18日が日曜日であれば、最も近い平日である19日の月曜日にトリガーするでしょう。 「月の日」フィールドに1Wを入力し、最も近い曜日が前月である場合、イベントは 現在 か月の最も近い曜日にトリガーされます。さらに、
LとWを組み合わせてLWを作成できます。これにより、月の最後の曜日が指定されます。##の前に配置された値は曜日を表し、#の後に配置された値はその月のどの出現を表します。 例えば、1#3と入力すると、月の第3日曜日にトリガーします。 X#5を入れた場合、その月のその曜日に5回目の発生がない場合、イベントは not がトリガーされます。 例えば、1#5を入力し、その月に第5日曜日がない場合、イベントはnot トリガーされます。例
次の表は、cron式の文字列の例を示し、その意味を説明しています。
0 0 13 * * ?0 30 9 * * ? 20220 * 18 * * ?0 0/10 17 * * ?0 13,38 5 ? 6 WED0 30 12 ? * 4#30 30 12 ? * 6L0 45 11 ? * MON-THU