Flow Service API でファイルベースのメールマーケティングの宛先に接続してデータを有効化する
このチュートリアルでは、Flow Service API を使用して、ファイルベースの メールマーケティングの宛先を作成し、新しく作成した宛先にデータフローを作成し、CSV ファイルを使用してデータを書き出す方法を実演します。
このチュートリアルでは、すべての例で Adobe Campaign の宛先を使用しますが、手順はファイルベースのメールマーケティングの宛先で同じです。
Platform ユーザーインターフェイスを使用して宛先に接続し、データを有効化する場合は、宛先の接続およびプロファイル書き出しのバッチ宛先に対するオーディエンスデータの有効化に関するチュートリアルを参照してください。
はじめに get-started
このガイドでは、Adobe Experience Platform の次のコンポーネントに関する十分な知識が必要です。
- Experience Data Model (XDM) System:Experience Platform がカスタマーエクスペリエンスのデータの整理に使用する、標準化されたフレームワーク。
- Segmentation Service:Adobe Experience Platform Segmentation Service を使用すると、Real-Time Customer Profile データから Adobe Experience Platform でオーディエンスを作成できます。
- Sandboxes:Experience Platform には、単一の Platform インスタンスを別々の仮想環境に分割し、デジタルエクスペリエンスアプリケーションの開発と発展に役立つ仮想サンドボックスが用意されています。
以下の節では、Platform でバッチ宛先に対してデータを有効化するために必要な追加情報を示します。
必要な資格情報の収集 gather-required-credentials
このチュートリアルの手順を完了するには、オーディエンスを接続してアクティブ化する宛先のタイプに応じて、次の資格情報を準備しておく必要があります。
- Amazon S3 接続:
accessId
、secretKey
- Adobe Campaign への Amazon S3 接続:
accessId
、secretKey
- SFTP 接続:
domain
、port
、username
、password
またはsshKey
(FTP ロケーションへの接続方法による) - Azure Blob 接続:
connectionString
accessId
、secretKey
と、Amazon S3 接続の資格情報 accessId
、secretKey
は同一です。API 呼び出し例の読み取り reading-sample-api-calls
このチュートリアルでは、API 呼び出しの例を提供し、リクエストの形式を設定する方法を示します。これには、パス、必須ヘッダー、適切な形式のリクエストペイロードが含まれます。また、API レスポンスで返されるサンプル JSON も示されています。ドキュメントで使用される API 呼び出し例の表記について詳しくは、 トラブルシューテングガイドのAPI 呼び出し例の読み方に関する節を参照してくださいExperience Platform。
必須ヘッダーおよびオプションヘッダーの値の収集 gather-values-headers
Platform API を呼び出すには、まず認証チュートリアルを完了する必要があります。次に示すように、すべての Experience Platform API 呼び出しに必要な各ヘッダーの値は認証チュートリアルで説明されています。
- Authorization: Bearer
{ACCESS_TOKEN}
- x-api-key:
{API_KEY}
- x-gw-ims-org-id:
{ORG_ID}
Experience Platform のリソースは、特定の仮想サンドボックスに分離できます。Platform API へのリクエストでは、操作を実行するサンドボックスの名前と ID を指定できます。次に、オプションのパラメーターを示します。
- x-sandbox-name:
{SANDBOX_NAME}
ペイロード(POST、PUT、PATCH)を含むすべてのリクエストには、メディアのタイプを指定する以下のような追加ヘッダーが必要です。
- Content-Type:
application/json
API リファレンスドキュメント api-reference-documentation
このチュートリアルに含まれるすべての API 操作について、付属リファレンスドキュメントが用意されています。詳しくは、Adobe I/O にある Flow Service API ドキュメントを参照してください。このチュートリアルと API リファレンスのドキュメントを並行して使用することをお勧めします。
使用可能な宛先のリストの取得 get-the-list-of-available-destinations
最初の手順として、データを有効化する宛先を決定する必要があります。まず、呼び出しを実行して、オーディエンスを接続およびアクティブ化できる使用可能な宛先のリストをリクエストします。 connectionSpecs
エンドポイントに次の GET リクエストを実行すると、使用可能な宛先のリストが返されます。
API 形式
GET /connectionSpecs
リクエスト
curl --location --request GET 'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs' \
--header 'accept: application/json' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}'
応答
リクエストが成功した場合、使用可能な宛先のリストと、その一意の ID(id
)が返されます。使用する宛先の値を保存します。この値は、以降の手順で必要になります。例えば、オーディエンスを接続して Adobe Campaign に配信する場合、応答で次のスニペットを探します。
{
"id": "0b23e41a-cb4a-4321-a78f-3b654f5d7d97",
"name": "Adobe Campaign",
...
...
}
参考までに、一般的に使用されるバッチ宛先の接続仕様 ID を次の表に示します。
0b23e41a-cb4a-4321-a78f-3b654f5d7d97
c1e44b6b-e7c8-404b-9031-58f0ef760604
a5e28ddf-e265-426e-83a1-9d03a3a6822b
f599a5b3-60a7-4951-950a-cc4115c7ea27
Experience Platform データへの接続 connect-to-your-experience-platform-data
次に、Experience Platform データに接続し、目的の宛先にプロファイルデータを書き出して有効化できるようにする必要があります。そのためには、以下に示す 2 つの手順を実行します。
- 最初に、Experience Platform のデータへのアクセスを認証する呼び出しを実行します。そのためには、ベース接続を設定します。
- 次に、ベース接続 ID を使用して、ソース接続 を作成する別の呼び出しを実行します。これで、Experience Platform データへの接続が確立されます。
Experience Platform のデータへのアクセスの認証
API 形式
POST /connections
リクエスト
curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/connections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Base connection to Experience Platform",
"description": "This call establishes the connection to Experience Platform data",
"connectionSpec": {
"id": "{CONNECTION_SPEC_ID}",
"version": "1.0"
}
}'
name
description
connectionSpec.id
8a9c3494-9708-43d7-ae3f-cda01e5030e1
の接続仕様 ID を使用します。応答
リクエストが成功した場合、ベース接続の一意の ID(id
)が返されます。この値は、次の手順でソース接続を作成する際に必要になるため保存します。
{
"id": "1ed86558-59b5-42f7-9865-5859b552f7f4"
}
Experience Platform データへの接続 connect-to-platform-data
API 形式
POST /sourceConnections
リクエスト
curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Connecting to Profile store",
"description": "Optional",
"connectionSpec": {
"id": "{CONNECTION_SPEC_ID}",
"version": "1.0"
},
"baseConnectionId": "{BASE_CONNECTION_ID}",
"data": {
"format": "CSV",
"schema": null
},
"params" : {}
}'
name
description
connectionSpec.id
8a9c3494-9708-43d7-ae3f-cda01e5030e1
の接続仕様 ID を使用します。baseConnectionId
data.format
CSV
は現時点で、サポートされている唯一のファイル書き出し形式です。応答
リクエストが成功した場合は、新しく作成した Profile store へのソース接続を表す一意の ID(id
)が返されます。これにより、Experience Platform データに正常に接続できたことを確認します。後の手順で必要になるため、この値を控えておきます。
{
"id": "ed48ae9b-c774-4b6e-88ae-9bc7748b6e97"
}
バッチ宛先への接続 connect-to-batch-destination
この手順では、目的のバッチのクラウドストレージまたはメールマーケティングの宛先への接続を設定します。そのためには、以下に示す 2 つの手順を実行します。
- 最初に、宛先のプラットフォームへのアクセスを認証する呼び出しを実行します。そのためには、ベース接続を設定します。
- 次に、ベース接続 ID を使用して、ターゲット接続 を作成する別の呼び出しを実行します。これにより、書き出されたデータファイルが送信されるストレージアカウント内の場所と、書き出されるデータの形式を指定します。
バッチ宛先へのアクセスの認証 authorize-access-to-batch-destination
API 形式
POST /connections
リクエスト
以下のリクエストにより、Adobe Campaign 宛先へのベース接続が確立されます。ファイルの書き出し先のストレージの場所(Amazon S3、SFTP、Azure Blob)に応じて、適切な auth
仕様を残し、その他を削除します。
curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/connections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "S3 Connection for Adobe Campaign",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "0b23e41a-cb4a-4321-a78f-3b654f5d7d97",
"version": "1.0"
},
"auth": {
"specName": "S3",
"params": {
"accessId": "{ACCESS_ID}",
"secretKey": "{SECRET_KEY}"
}
}
"auth": {
"specName": "SFTP with Password",
"params": {
"domain": "{DOMAIN}",
"host": "{HOST}",
"username": "{USERNAME}",
"password": "{PASSWORD}"
}
}
"auth": {
"specName": "SFTP with SSH Key",
"params": {
"domain": "{DOMAIN}",
"host": "{HOST}",
"username": "{USERNAME}",
"sshKey": "{SSH_KEY}"
}
}
"auth": {
"specName": "Azure Blob",
"params": {
"connectionString": "{AZURE_BLOB_CONNECTION_STRING}"
}
}
}'
サポートしている他のクラウドストレージおよびメールマーケティングのバッチの宛先について、接続リクエストの例を以下に示します。
以下のリクエストでは、Amazon S3 宛先へのベース接続が確立されます。
code language-shell |
---|
|
以下のリクエストでは、Azure Blob 宛先へのベース接続が確立されます。
code language-shell |
---|
|
以下のリクエストでは、Oracle Eloqua 宛先へのベース接続が確立されます。ファイルの書き出し先のストレージの場所に応じて、適切な auth
仕様を残し、その他を削除します。
code language-shell |
---|
|
以下のリクエストでは、Oracle Responsys 宛先へのベース接続が確立されます。ファイルの書き出し先のストレージの場所に応じて、適切な auth
仕様を残し、その他を削除します。
code language-shell |
---|
|
以下のリクエストでは、Salesforce Marketing Cloud 宛先へのベース接続が確立されます。ファイルの書き出し先のストレージの場所に応じて、適切な auth
仕様を残し、その他を削除します。
code language-shell |
---|
|
以下のリクエストでは、SFTP 宛先へのベース接続が確立されます。
code language-shell |
---|
|
name
description
connectionSpec.id
auth.specname
authSpec.name
を確認します。例えば、Adobe Campaign 宛先の場合は、
S3
、SFTP with Password
または SFTP with SSH Key
のいずれも使用できます。params
宛先に必要なパラメーターを調べるには、接続仕様エンドポイントへの GET 呼び出しを実行し、その際に目的の宛先の接続仕様を指定します。応答でパラメーター
authSpec.spec.required
を確認します。応答
リクエストが成功した場合、ベース接続の一意の ID(id
)が返されます。この値は、次の手順でターゲット接続を作成する際に必要になるため保存します。
{
"id": "1ed86558-59b5-42f7-9865-5859b552f7f4"
}
ストレージの場所とデータ形式を指定する specify-storage-location-data-format
Adobe Experience Platform は、メールマーケティングおよびクラウドストレージのバッチ宛先のデータを CSV ファイルの形式で書き出します。この手順では、ファイルが書き出されるストレージの場所のパスを指定できます。
filename.csv
、filename_2.csv
、filename_3.csv
のように、ファイルが大きな書き出しの一部であることを示す数字が付加されます。API 形式
POST /targetConnections
リクエスト
以下のリクエストにより、Adobe Campaign の宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。ファイルの書き出し先のストレージの場所に応じて、適切な params
仕様を残し、その他を削除します。
curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "TargetConnection for Adobe Campaign",
"description": "Connection to Adobe Campaign",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "0b23e41a-cb4a-4321-a78f-3b654f5d7d97",
"version": "1.0"
},
"data": {
"format": "json",
"schema": {
"id": "1.0",
"version": "1.0"
}
},
"params": {
"mode": "S3",
"bucketName": "{BUCKET_NAME}",
"path": "{FILEPATH}",
"format": "CSV"
}
"params": {
"mode": "AZURE_BLOB",
"container": "{CONTAINER}",
"path": "{FILEPATH}",
"format": "CSV"
}
"params": {
"mode": "FTP",
"remotePath": "{REMOTE_PATH}",
"format": "CSV"
}
}'
サポートしている他のクラウドストレージおよびメールマーケティングのバッチ宛先について、ストレージの場所を設定するリクエストの例を以下に示します。
以下のリクエストにより、Amazon S3 宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。
code language-shell |
---|
|
以下のリクエストにより、Azure Blob 宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。
code language-shell |
---|
|
以下のリクエストにより、Oracle Eloqua 宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。ファイルの書き出し先のストレージの場所に応じて、適切な params
仕様を残し、その他を削除します。
code language-shell |
---|
|
以下のリクエストにより、Oracle Responsys 宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。ファイルの書き出し先のストレージの場所に応じて、適切な params
仕様を残し、その他を削除します。
code language-shell |
---|
|
以下のリクエストにより、Salesforce Marketing Cloud 宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。ファイルの書き出し先のストレージの場所に応じて、適切な params
仕様を残し、その他を削除します。
code language-shell |
---|
|
以下のリクエストにより、SFTP 宛先へのターゲット接続が確立され、書き出されたファイルが配置されるストレージの場所が決定されます。
code language-shell |
---|
|
name
description
baseConnectionId
connectionSpec.id
params
宛先に必要なパラメーターを調べるには、接続仕様エンドポイントへの GET 呼び出しを実行し、その際に目的の宛先の接続仕様を指定します。応答でパラメーター
targetSpec.spec.required
を探します。params.mode
targetSpec.spec.properties.mode.enum
を探し、目的のモードを選択します。params.bucketName
params.path
params.format
CSV
は現時点で、サポートされている唯一のファイル書き出しタイプです。応答
リクエストが成功した場合は、新しく作成したバッチ宛先へのターゲット接続を表す一意の ID(id
)が返されます。この値は、後の手順で必要になるため保存します。
{
"id": "12ab90c7-519c-4291-bd20-d64186b62da8"
}
データフローの作成 create-dataflow
前の手順で取得したフロー仕様、ソース接続、ターゲット接続 ID を使用することで、Experience Platform データと、データファイルを書き出す宛先との間のデータフローを作成できます。この手順は、Experience Platform と目的の宛先との間で、データが流れるパイプラインを構築する手順と考えることができます。
データフローを作成するには、以下の POST リクエストを行います。このとき、ペイロード内で以下に示す値を指定します。
API 形式
POST /flows
リクエスト
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "activate audiences to Adobe Campaign",
"description": "This operation creates a dataflow which we will later use to activate audiences to Adobe Campaign",
"flowSpec": {
"id": "{FLOW_SPEC_ID}",
"version": "1.0"
},
"sourceConnectionIds": [
"{SOURCE_CONNECTION_ID}"
],
"targetConnectionIds": [
"{TARGET_CONNECTION_ID}"
],
"transformations": [
{
"name": "GeneralTransform",
"params": {
"segmentSelectors": {
"selectors": []
},
"profileSelectors": {
"selectors": []
}
}
}
]
}
name
description
flowSpec.Id
flowspecs
エンドポイントで GET 操作を実行します。詳しくは、フロー仕様 API リファレンスドキュメントを参照してください。応答で upsTo
を探し、接続先のバッチ宛先の対応する ID をコピーします。例えば、Adobe Campaign の場合、upsToCampaign
を探し、id
パラメーターをコピーします。sourceConnectionIds
targetConnectionIds
transformations
参考までに、一般的に使用されるバッチ宛先のフロー仕様 ID を次の表に示します。
71471eba-b620-49e4-90fd-23f1fa0174d8
51d675ce-e270-408d-91fc-22717bdf2148
493b2bd6-26e4-4167-ab3b-5e910bba44f0
応答
リクエストが成功した場合は、新しく作成したデータフローの ID(id
)と etag
が返されます。両方の値を控えておきます。これらは次の手順で、オーディエンスをアクティブ化し、データファイルを書き出すために必要になります。
{
"id": "8256cfb4-17e6-432c-a469-6aedafb16cd5",
"etag": "8256cfb4-17e6-432c-a469-6aedafb16cd5"
}
新しい宛先に対してデータをアクティブ化にする activate-data
ここまで、すべての接続とデータフローを作成しました。これで、宛先プラットフォームに対してプロファイルデータを有効化できます。この手順では、宛先に書き出すオーディエンスとプロファイル属性を選択します。
また、書き出すファイルのファイル命名形式や、どの属性を重複排除キーまたは必須属性として使用するかを指定することもできます。この手順では、宛先にデータを送信するスケジュールも指定できます。
新しい宛先に対してオーディエンスをアクティブ化するには、次の例に示すような JSONPATCH操作を実行する必要があります。 1 回の呼び出しで、複数のオーディエンスとプロファイル属性をアクティブ化できます。 JSON パッチについて詳しくは、RFC 仕様を参照してください。
API 形式
PATCH /flows
リクエスト
curl --location --request PATCH 'https://platform.adobe.io/data/foundation/flowservice/flows/{DATAFLOW_ID}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'Content-Type: application/json' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'If-Match: "{ETAG}"' \
--data-raw '[
{
"op": "add",
"path": "/transformations/0/params/segmentSelectors/selectors/-",
"value": {
"type": "PLATFORM_SEGMENT",
"value": {
"name": "Name of the audience that you are activating",
"description": "Description of the audience that you are activating",
"id": "{SEGMENT_ID}",
"filenameTemplate": "%DESTINATION_NAME%_%SEGMENT_ID%_%DATETIME(YYYYMMdd_HHmmss)%",
"exportMode": "DAILY_FULL_EXPORT",
"schedule": {
"frequency": "ONCE",
"startDate": "2021-12-20",
"startTime": "17:00"
}
}
}
},
{
"op": "add",
"path": "/transformations/0/params/segmentSelectors/selectors/-",
"value": {
"type": "PLATFORM_SEGMENT",
"value": {
"name": "Name of the audience that you are activating",
"description": "Description of the audience that you are activating",
"id": "{SEGMENT_ID}",
"filenameTemplate": "%DESTINATION_NAME%_%SEGMENT_ID%_%DATETIME(YYYYMMdd_HHmmss)%",
"exportMode": "DAILY_FULL_EXPORT",
"schedule": {
"frequency": "ONCE",
"triggerType": "SCHEDULED",
"startDate": "2021-12-20",
"startTime": "17:00"
},
}
}
},
{
"op": "add",
"path": "/transformations/0/params/profileSelectors/selectors/-",
"value": {
"type": "JSON_PATH",
"value": {
"path": "{PROFILE_ATTRIBUTE}"
}
}
}
]
{DATAFLOW_ID}
{ETAG}
前の手順 データフローの作成の応答から {ETAG}
を取得します。 前の手順の応答形式には、引用符がエスケープされています。 リクエストのヘッダーには、エスケープされていない値を使用する必要があります。 以下の例を参照してください。
- 応答の例:
"etag":""7400453a-0000-1a00-0000-62b1c7a90000""
- リクエストで使用する値:
"etag": "7400453a-0000-1a00-0000-62b1c7a90000"
etag 値は、データフローが正常に更新されるたびに更新されます。
{SEGMENT_ID}
{PROFILE_ATTRIBUTE}
"person.lastName"
op
add
、replace
、remove
があります。データフローにオーディエンスを追加するには、add
操作を使用します。path
value
id
name
filenameTemplate
このフィールドは、宛先に書き出すファイルのファイル名の形式を決定します。
以下のオプションを利用できます。
%DESTINATION_NAME%
:必須。書き出されるファイルには、宛先名が含まれます。%SEGMENT_ID%
:必須。書き出されるファイルには、書き出されたオーディエンスの ID が含まれます。%SEGMENT_NAME%
:オプション。書き出されるファイルには、書き出されたオーディエンスの名前が含まれます。DATETIME(YYYYMMdd_HHmmss)
または%TIMESTAMP%
:オプション。ファイルが Experience Platform で生成された時刻を含めるには、これら 2 つのオプションのいずれかを選択します。custom-text
:オプション。ファイル名の末尾に追加したいカスタムテキストでこのプレースホルダーを置き換えます。
ファイル名の設定について詳しくは、バッチ宛先の有効化に関するチュートリアルの「ファイル名の設定」の節を参照してください。
exportMode
"DAILY_FULL_EXPORT"
または "FIRST_FULL_THEN_INCREMENTAL"
を選択します。この 2 つのオプションについて詳しくは、バッチ宛先の有効化に関するチュートリアルの「完全なファイルのエクスポート」および「増分ファイルのエクスポート」を参照してください。startDate
frequency
必須。
"DAILY_FULL_EXPORT"
エクスポートモードの場合は、ONCE
またはDAILY
を選択できます。"FIRST_FULL_THEN_INCREMENTAL"
エクスポートモードの場合は、"DAILY"
、"EVERY_3_HOURS"
、"EVERY_6_HOURS"
、"EVERY_8_HOURS"
、"EVERY_12_HOURS"
を選択できます。
triggerType
バッチ宛先 の場合のみ。 このフィールドは、frequency
セレクターで "DAILY_FULL_EXPORT"
モードを選択する場合にのみ必要です。
必須。
- 毎日の Platform バッチセグメント化ジョブが完了した直後にアクティベーションジョブを実行するには、「
"AFTER_SEGMENT_EVAL"
」を選択します。 これにより、アクティベーションジョブが実行されると、最新のプロファイルが確実に宛先に書き出されます。 "SCHEDULED"
を選択して、特定の時間にアクティベーションジョブを実行します。 これにより、Experience Platformプロファイルデータは毎日同じ時刻に書き出されます。アクティベーションジョブが開始される前にバッチセグメント化ジョブが完了しているかどうかに応じて、書き出すプロファイルが最新ではない場合があります。 このオプションを選択する場合は、startTime
を追加して、日次書き出しが発生する UTC の時間を示す必要もあります。
endDate
"exportMode":"DAILY_FULL_EXPORT"
と "frequency":"ONCE"
を選択している場合は適用されません。オーディエンスメンバーが宛先への書き出しを停止する日付を設定します。
startTime
必須。 オーディエンスのメンバーを含んだファイルを生成し、宛先に書き出す時間を選択します。
応答
202 Accepted レスポンスを探します。レスポンスの本文は返されません。リクエストが正しいことを検証するには、次の手順「データフローの検証」を参照してください。
データフローの検証 validate-dataflow
このチュートリアルの最後の手順として、オーディエンスとプロファイル属性が正しくデータフローにマッピングされたことを検証する必要があります。
検証するには、次の GET リクエストを実行します。
API 形式
GET /flows
リクエスト
curl --location --request PATCH 'https://platform.adobe.io/data/foundation/flowservice/flows/{DATAFLOW_ID}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'Content-Type: application/json' \
--header 'x-sandbox-name: prod' \
--header 'If-Match: "{ETAG}"'
{DATAFLOW_ID}
:前の手順で取得したデータフローを使用します。{ETAG}
:前述の手順で取得した etag を使用します。
応答
返される応答には、前の手順で送信したオーディエンスとプロファイル属性が transformations
パラメーターに含まれている必要があります。 レスポンス内のサンプル transformations
パラメーターは次のようになります。
"transformations":[
{
"name":"GeneralTransform",
"params":{
"profileSelectors":{
"selectors":[
{
"type":"JSON_PATH",
"value":{
"path":"homeAddress.countryCode",
"operator":"EXISTS",
"mapping":{
"sourceType":"text/x.schema-path",
"source":"homeAddress.countryCode",
"destination":"homeAddress.countryCode",
"identity":false,
"primaryIdentity":false,
"functionVersion":0,
"copyModeMapping":false,
"sourceAttribute":"homeAddress.countryCode",
"destinationXdmPath":"homeAddress.countryCode"
}
}
},
{
"type":"JSON_PATH",
"value":{
"path":"person.name.firstName",
"operator":"EXISTS",
"mapping":{
"sourceType":"text/x.schema-path",
"source":"person.name.firstName",
"destination":"person.name.firstName",
"identity":false,
"primaryIdentity":false,
"functionVersion":0,
"copyModeMapping":false,
"sourceAttribute":"person.name.firstName",
"destinationXdmPath":"person.name.firstName"
}
}
},
{
"type":"JSON_PATH",
"value":{
"path":"person.name.lastName",
"operator":"EXISTS",
"mapping":{
"sourceType":"text/x.schema-path",
"source":"person.name.lastName",
"destination":"person.name.lastName",
"identity":false,
"primaryIdentity":false,
"functionVersion":0,
"copyModeMapping":false,
"sourceAttribute":"person.name.lastName",
"destinationXdmPath":"person.name.lastName"
}
}
},
{
"type":"JSON_PATH",
"value":{
"path":"personalEmail.address",
"operator":"EXISTS",
"mapping":{
"sourceType":"text/x.schema-path",
"source":"personalEmail.address",
"destination":"personalEmail.address",
"identity":false,
"primaryIdentity":false,
"functionVersion":0,
"copyModeMapping":false,
"sourceAttribute":"personalEmail.address",
"destinationXdmPath":"personalEmail.address"
}
}
},
{
"type":"JSON_PATH",
"value":{
"path":"segmentMembership.status",
"operator":"EXISTS",
"mapping":{
"sourceType":"text/x.schema-path",
"source":"segmentMembership.status",
"destination":"segmentMembership.status",
"identity":false,
"primaryIdentity":false,
"functionVersion":0,
"copyModeMapping":false,
"sourceAttribute":"segmentMembership.status",
"destinationXdmPath":"segmentMembership.status"
}
}
}
],
"mandatoryFields":[
"person.name.firstName",
"person.name.lastName"
],
"primaryFields":[
{
"fieldType":"ATTRIBUTE",
"attributePath":"personalEmail.address"
}
]
},
"segmentSelectors":{
"selectors":[
{
"type":"PLATFORM_SEGMENT",
"value":{
"id":"9f7d37fd-7039-4454-94ef-2b0cd6c3206a",
"name":"Interested in Mountain Biking",
"filenameTemplate":"%DESTINATION_NAME%_%SEGMENT_ID%_%DATETIME(YYYYMMdd_HHmmss)%",
"exportMode":"DAILY_FULL_EXPORT",
"schedule":{
"frequency":"ONCE",
"startDate":"2021-12-20",
"startTime":"17:00"
},
"createTime":"1640016962",
"updateTime":"1642534355"
}
},
{
"type":"PLATFORM_SEGMENT",
"value":{
"id":"25768be6-ebd5-45cc-8913-12fb3f348613",
"name":"Loyalty Segment",
"filenameTemplate":"%DESTINATION_NAME%_%SEGMENT_ID%_%DATETIME(YYYYMMdd_HHmmss)%",
"exportMode":"FIRST_FULL_THEN_INCREMENTAL",
"schedule":{
"frequency":"EVERY_6_HOURS",
"startDate":"2021-12-22",
"endDate":"2021-12-31",
"startTime":"17:00"
},
"createTime":"1640016962",
"updateTime":"1642534355"
}
}
]
}
}
}
]
API エラー処理 api-error-handling
このチュートリアルの API エンドポイントは、一般的なExperience PlatformAPI エラーメッセージの原則に従っています。 エラー応答の解釈について詳しくは、Platform トラブルシューティングガイドの API ステータスコードおよび リクエストヘッダーエラーを参照してください。
次の手順 next-steps
このチュートリアルでは、目的のファイルベースのメールマーケティング宛先の 1 つに Platform を正常に接続し、データファイルを書き出す各宛先へのデータフローを設定しました。 これで、発信データをメールキャンペーン、ターゲット広告、ほかの多くの使用事例の宛先で使用することができます。次のページでは、Flow Service API を使用した既存のデータフローの編集方法などの詳細を確認します。