Para conectarse a un destino, necesita la variable Administrar destinos permiso de control de acceso.
Para activar los datos, necesita la variable Administrar destinos, Activar destinos, Ver perfiles y Ver segmentos permisos de control de acceso.
Lea el información general sobre el control de acceso o póngase en contacto con el administrador del producto para obtener los permisos necesarios.
Este tutorial muestra cómo utilizar la API de servicio de flujo para crear un lote almacenamiento en la nube o destino de marketing por correo electrónico, cree un flujo de datos en el destino recién creado y exporte los datos al destino recién creado mediante archivos CSV.
Este tutorial utiliza la variable Adobe Campaign en todos los ejemplos, pero los pasos son idénticos para todos los destinos de marketing por correo electrónico y almacenamiento en nube por lotes.
Si prefiere usar la interfaz de usuario de Platform para conectarse a un destino y activar datos, consulte Conectar un destino y Activar datos de audiencia en destinos de exportación de perfiles en lote tutoriales.
Esta guía requiere conocer los siguientes componentes de Adobe Experience Platform:
Las secciones siguientes proporcionan información adicional que debe conocer para activar datos en destinos por lotes en Platform.
Para completar los pasos de este tutorial, debe tener preparadas las siguientes credenciales, según el tipo de destino al que esté conectando y activando segmentos.
accessId
, secretKey
accessId
, secretKey
domain
, port
, username
, password
o sshKey
(en función del método de conexión con la ubicación FTP)connectionString
Las credenciales accessId
, secretKey
para Amazon S3 conexiones y accessId
, secretKey
para Amazon S3 conexiones a Adobe Campaign son idénticos.
Este tutorial proporciona llamadas de API de ejemplo para demostrar cómo dar formato a las solicitudes. Estas incluyen rutas de acceso, encabezados necesarios y cargas de solicitud con el formato correcto. También se proporciona el JSON de muestra devuelto en las respuestas de API. Para obtener información sobre las convenciones utilizadas en la documentación para las llamadas de API de ejemplo, consulte la sección sobre cómo leer llamadas de API de ejemplo en el Experience Platform guía de solución de problemas.
Para realizar llamadas a Platform API, primero debe completar la variable tutorial de autenticación. Al completar el tutorial de autenticación, se proporcionan los valores para cada uno de los encabezados necesarios en todos los Experience Platform Llamadas de API, como se muestra a continuación:
{ACCESS_TOKEN}
{API_KEY}
{ORG_ID}
Recursos en Experience Platform se puede aislar para entornos limitados virtuales específicos. En solicitudes para Platform Puede especificar el nombre y el ID del simulador de pruebas en el que se realizará la operación. Son parámetros opcionales.
{SANDBOX_NAME}
Para obtener más información sobre los entornos limitados en Experience Platform, consulte la documentación general de entorno limitado.
Todas las solicitudes que contienen una carga útil (POST, PUT, PATCH) requieren un encabezado de tipo de medio adicional:
application/json
Puede encontrar la documentación de referencia adjunta para todas las operaciones de API en este tutorial. Consulte la Documentación de la API del servicio de flujo en el Adobe I/O. Le recomendamos que utilice este tutorial y la documentación de referencia de la API en paralelo.
Como primer paso, debe decidir a qué destino activar los datos. Para empezar, realice una llamada para solicitar una lista de destinos disponibles a los que puede conectarse y activar segmentos. Realice la siguiente solicitud de GET a la connectionSpecs
para devolver una lista de destinos disponibles:
Formato de API
GET /connectionSpecs
Solicitud
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}'
Respuesta
Una respuesta correcta contiene una lista de destinos disponibles y sus identificadores únicos (id
). Almacene el valor del destino que planea utilizar, tal como se requerirá en pasos adicionales. Por ejemplo, si desea conectarse y enviar segmentos a Adobe Campaign, busque el siguiente fragmento en la respuesta:
{
"id": "0b23e41a-cb4a-4321-a78f-3b654f5d7d97",
"name": "Adobe Campaign",
...
...
}
Para su referencia, la siguiente tabla contiene los ID de las especificaciones de conexión para los destinos de lote más utilizados:
Destino | ID de especificación de conexión |
---|---|
Adobe Campaign | 0b23e41a-cb4a-4321-a78f-3b654f5d7d97 |
Amazon S3 | 4890fc95-5a1f-4983-94bb-e060c08e3f81 |
Azure Blob | e258278b-a4cf-43ac-b158-4fa0ca0d948b |
Oracle Eloqua | c1e44b6b-e7c8-404b-9031-58f0ef760604 |
Oracle Responsys | a5e28ddf-e265-426e-83a1-9d03a3a6822b |
Salesforce Marketing Cloud | f599a5b3-60a7-4951-950a-cc4115c7ea27 |
SFTP | 64ef4b8b-a6e0-41b5-9677-3805d1ee5dd0 |
A continuación, debe conectarse a su Experience Platform para poder exportar datos de perfil y activarlos en su destino preferido. Esto consta de dos subpasos que se describen a continuación.
Formato de API
POST /connections
Solicitud
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"
}
}'
Propiedad | Descripción |
---|---|
name |
Proporcione un nombre para la conexión base con el Experience Platform Profile Store. |
description |
Opcionalmente, puede proporcionar una descripción para la conexión base. |
connectionSpec.id |
Utilice el ID de especificación de conexión para la variable Almacenamiento de perfiles de Experience Platform - 8a9c3494-9708-43d7-ae3f-cda01e5030e1 . |
Respuesta
Una respuesta correcta contiene el identificador único de la conexión base (id
). Almacene este valor como sea necesario en el siguiente paso para crear la conexión de origen.
{
"id": "1ed86558-59b5-42f7-9865-5859b552f7f4"
}
Formato de API
POST /sourceConnections
Solicitud
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" : {}
}'
Propiedad | Descripción |
---|---|
name |
Proporcione un nombre para la conexión de origen al Experience Platform Profile Store. |
description |
Opcionalmente, puede proporcionar una descripción para la conexión de origen. |
connectionSpec.id |
Utilice el ID de especificación de conexión para la variable Almacenamiento de perfiles de Experience Platform - 8a9c3494-9708-43d7-ae3f-cda01e5030e1 . |
baseConnectionId |
Utilice el ID de conexión base que ha obtenido en el paso anterior. |
data.format |
CSV actualmente es el único formato de exportación de archivos admitido. |
Respuesta
Una respuesta correcta devuelve el identificador único (id
) para la conexión de origen a Profile Store. Esto confirma que se ha conectado correctamente a su Experience Platform datos. Almacene este valor tal como es necesario en un paso posterior.
{
"id": "ed48ae9b-c774-4b6e-88ae-9bc7748b6e97"
}
En este paso, está configurando una conexión con el almacenamiento en la nube por lotes o el destino de marketing por correo electrónico que desee. Esto consta de dos subpasos que se describen a continuación.
Formato de API
POST /connections
Solicitud
La solicitud siguiente establece una conexión base a Adobe Campaign destinos. Según la ubicación de almacenamiento en la que desee exportar archivos a (Amazon S3, SFTP, Azure Blob), mantenga el auth
especifique y elimine los demás.
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}"
}
}
}'
Consulte las solicitudes de ejemplo siguientes para conectarse a otros destinos de marketing por correo electrónico y almacenamiento en la nube de lotes admitidos.
La solicitud siguiente establece una conexión base a Amazon S3 destinos.
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": "Connect to Amazon S3",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "4890fc95-5a1f-4983-94bb-e060c08e3f81",
"version": "1.0"
},
"auth": {
"specName": "Access Key",
"params": {
"s3AccessKey": "{AMAZON_S3_ACCESS_KEY}",
"s3SecretKey": "{AMAZON_S3_SECRET_KEY}"
}
}
}'
La solicitud siguiente establece una conexión base a Azure Blob destinos.
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": "Connect to Azure Blob",
"description": "Summer advertising campaign",
"connectionSpec": {
"id": "e258278b-a4cf-43ac-b158-4fa0ca0d948b",
"version": "1.0"
},
"auth": {
"specName": "ConnectionString",
"params": {
"connectionString": "{AZURE_BLOB_CONNECTION_STRING}"
}
}
}'
La solicitud siguiente establece una conexión base a Oracle Eloqua destinos. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los auth
especifique y elimine los demás.
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": "Connect to Eloqua destination",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "c1e44b6b-e7c8-404b-9031-58f0ef760604",
"version": "1.0"
},
"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}"
}
}
}'
La solicitud siguiente establece una conexión base a Oracle Responsys destinos. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los auth
especifique y elimine los demás.
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": "Connect to Responsys destination",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "a5e28ddf-e265-426e-83a1-9d03a3a6822b",
"version": "1.0"
},
"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}"
}
}
}'
La solicitud siguiente establece una conexión base a Salesforce Marketing Cloud destinos. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los auth
especifique y elimine los demás.
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": "Connect to Salesforce Marketing Cloud",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "f599a5b3-60a7-4951-950a-cc4115c7ea27",
"version": "1.0"
},
"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}"
}
}
}'
La siguiente solicitud establece una conexión base a los destinos SFTP.
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": "Connect to SFTP with password",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "64ef4b8b-a6e0-41b5-9677-3805d1ee5dd0",
"version": "1.0"
},
"auth": {
"specName": "Basic Authentication for sftp",
"params": {
"host": "{HOST}",
"username": "{USERNAME}",
"password": "{PASSWORD}"
}
}
}'
Propiedad | Descripción |
---|---|
name |
Proporcione un nombre para la conexión base al destino del lote. |
description |
Opcionalmente, puede proporcionar una descripción para la conexión base. |
connectionSpec.id |
Utilice el ID de especificación de conexión para el destino de lote deseado. Ha obtenido este ID en el paso Obtener la lista de destinos disponibles. |
auth.specname |
Indica el formato de autenticación para el destino. Para averiguar el nombre de especificación para el destino, realice una Llamada de GET al extremo de la especificación de conexión, proporcionando la especificación de conexión del destino deseado. Busque el parámetro authSpec.name en la respuesta. Por ejemplo, para destinos de Adobe Campaign, puede utilizar cualquiera de los S3 , SFTP with Password o SFTP with SSH Key . |
params |
Según el destino al que se conecte, debe proporcionar diferentes parámetros de autenticación necesarios. Para conexiones Amazon S3, debe proporcionar su ID de acceso y clave secreta a su ubicación de almacenamiento de Amazon S3. Para averiguar los parámetros necesarios para el destino, realice una Llamada de GET al extremo de la especificación de conexión, proporcionando la especificación de conexión del destino deseado. Busque el parámetro authSpec.spec.required en la respuesta. |
Respuesta
Una respuesta correcta contiene el identificador único de la conexión base (id
). Almacene este valor como sea necesario en el siguiente paso para crear una conexión de destino.
{
"id": "1ed86558-59b5-42f7-9865-5859b552f7f4"
}
Adobe Experience Platform exporta datos para destinos de marketing por correo electrónico en lote y almacenamiento en la nube en forma de CSV archivos. En este paso, puede determinar la ruta en la ubicación de almacenamiento en la que se exportan los archivos.
Adobe Experience Platform divide automáticamente los archivos de exportación en 5 millones de registros (filas) por archivo. Cada fila representa un perfil.
Los nombres de archivos divididos se añaden con un número que indica que el archivo forma parte de una exportación más grande, como por ejemplo: filename.csv
, filename_2.csv
, filename_3.csv
.
Formato de API
POST /targetConnections
Solicitud
La solicitud siguiente establece una conexión de destino a Adobe Campaign destinos, para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los params
especifique y elimine los demás.
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"
}
}'
Consulte las solicitudes de ejemplo siguientes para configurar una ubicación de almacenamiento para otros destinos de marketing por correo electrónico y almacenamiento en la nube de lotes admitidos.
La solicitud siguiente establece una conexión de destino a Amazon S3 destinos, para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento.
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 Amazon S3",
"description": "Connection to Amazon S3",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "4890fc95-5a1f-4983-94bb-e060c08e3f81",
"version": "1.0"
},
"data": {
"format": "json",
"schema": {
"id": "1.0",
"version": "1.0"
}
},
"params": {
"mode": "S3",
"bucketName": "{BUCKET_NAME}",
"path": "{FILEPATH}",
"format": "CSV"
}
}'
La solicitud siguiente establece una conexión de destino a Azure Blob destinos, para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento.
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 Azure Blob",
"description": "Connection to Azure Blob",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "e258278b-a4cf-43ac-b158-4fa0ca0d948b",
"version": "1.0"
},
"data": {
"format": "json",
"schema": {
"id": "1.0",
"version": "1.0"
}
},
"params": {
"mode": "AZURE_BLOB",
"container": "{CONTAINER}",
"path": "{FILEPATH}",
"format": "CSV"
}
}'
La solicitud siguiente establece una conexión de destino a Oracle Eloqua destinos, para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los params
especifique y elimine los demás.
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 Oracle Eloqua",
"description": "Connection to Oracle Eloqua",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "c1e44b6b-e7c8-404b-9031-58f0ef760604",
"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": "FTP",
"remotePath": "{REMOTE_PATH}",
"format": "CSV"
}
}'
La solicitud siguiente establece una conexión de destino a Oracle Responsys destinos, para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los params
especifique y elimine los demás.
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 Oracle Responsys",
"description": "Connection to Oracle Responsys",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "a5e28ddf-e265-426e-83a1-9d03a3a6822b",
"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": "FTP",
"remotePath": "{REMOTE_PATH}",
"format": "CSV"
}
}'
La solicitud siguiente establece una conexión de destino a Salesforce Marketing Cloud destinos, para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento. En función de la ubicación de almacenamiento a la que desee exportar los archivos, mantenga los params
especifique y elimine los demás.
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 Salesforce Marketing Cloud",
"description": "Connection to Salesforce Marketing Cloud",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "f599a5b3-60a7-4951-950a-cc4115c7ea27",
"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": "FTP",
"remotePath": "{REMOTE_PATH}",
"format": "CSV"
}
}'
La siguiente solicitud establece una conexión de destino a los destinos SFTP para determinar dónde aterrizarán los archivos exportados en su ubicación de almacenamiento.
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 SFTP",
"description": "Connection to SFTP",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "64ef4b8b-a6e0-41b5-9677-3805d1ee5dd0",
"version": "1.0"
},
"data": {
"format": "json",
"schema": {
"id": "1.0",
"version": "1.0"
}
},
"params": {
"mode": "FTP",
"remotePath": "{REMOTE_PATH}",
}
}'
Propiedad | Descripción |
---|---|
name |
Proporcione un nombre para la conexión de destino al destino del lote. |
description |
Opcionalmente, puede proporcionar una descripción para la conexión de destino. |
baseConnectionId |
Utilice el ID de la conexión base que ha creado en el paso anterior. |
connectionSpec.id |
Utilice el ID de especificación de conexión para el destino de lote deseado. Ha obtenido este ID en el paso Obtener la lista de destinos disponibles. |
params |
Según el destino al que se conecte, debe proporcionar diferentes parámetros requeridos a su ubicación de almacenamiento. Para conexiones Amazon S3, debe proporcionar su ID de acceso y clave secreta a su ubicación de almacenamiento de Amazon S3. Para averiguar los parámetros necesarios para el destino, realice una Llamada de GET al extremo de la especificación de conexión, proporcionando la especificación de conexión del destino deseado. Busque el parámetro targetSpec.spec.required en la respuesta. |
params.mode |
En función del modo admitido para el destino, debe proporcionar un valor diferente aquí. Para averiguar los parámetros necesarios para el destino, realice una Llamada de GET al extremo de la especificación de conexión, proporcionando la especificación de conexión del destino deseado. Busque el parámetro targetSpec.spec.properties.mode.enum en la respuesta y seleccione el modo deseado. |
params.bucketName |
En conexiones S3, proporcione el nombre del bloque en el que se exportan los archivos. |
params.path |
Para conexiones S3, proporcione la ruta de archivo en su ubicación de almacenamiento donde se exportan los archivos. |
params.format |
CSV actualmente es el único tipo de exportación de archivo admitido. |
Respuesta
Una respuesta correcta devuelve el identificador único (id
) para la conexión de destino recién creada al destino del lote. Almacene este valor tal como es necesario en pasos posteriores.
{
"id": "12ab90c7-519c-4291-bd20-d64186b62da8"
}
Con las especificaciones de flujo, la conexión de origen y los ID de conexión de destino que obtuvo en los pasos anteriores, ahora puede crear un flujo de datos entre sus Experience Platform y el destino en el que se exportarán los archivos de datos. Considere este paso como la construcción de la canalización a través de la cual los datos fluirán posteriormente entre Experience Platform y el destino deseado.
Para crear un flujo de datos, realice una solicitud de POST como se muestra a continuación, mientras proporciona los valores mencionados a continuación dentro de la carga útil.
Formato de API
POST /flows
Solicitud
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 segments to Adobe Campaign",
"description": "This operation creates a dataflow which we will later use to activate segments 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": []
}
}
}
]
}
Propiedad | Descripción |
---|---|
name |
Proporcione un nombre para el flujo de datos que está creando. |
description |
Opcionalmente, puede proporcionar una descripción para el flujo de datos. |
flowSpec.Id |
Utilice el ID de especificación de flujo para el destino de lote al que desea conectarse. Para recuperar el ID de especificación de flujo, realice una operación de GET en la variable flowspecs como se muestra en la variable documentación de referencia de la API de especificaciones de flujo. En la respuesta, busque upsTo y copie el ID correspondiente del destino del lote al que desea conectarse. Por ejemplo, para Adobe Campaign, busque upsToCampaign y copie el id parámetro. |
sourceConnectionIds |
Utilice el ID de conexión de origen que obtuvo en el paso Conectarse a los datos del Experience Platform. |
targetConnectionIds |
Utilice el ID de conexión de destino que obtuvo en el paso Conectar con destino de lote. |
transformations |
En el siguiente paso, rellenará esta sección con los segmentos y atributos de perfil que se activarán. |
Para su referencia, la siguiente tabla contiene los ID de especificación de flujo para los destinos de lote utilizados comúnmente:
Destino | ID de especificación de flujo |
---|---|
Todos los destinos de almacenamiento en la nube (Amazon S3, SFTP, Azure Blob) y Oracle Eloqua | 71471eba-b620-49e4-90fd-23f1fa0174d8 |
Oracle Responsys | 51d675ce-e270-408d-91fc-22717bdf2148 |
Salesforce Marketing Cloud | 493b2bd6-26e4-4167-ab3b-5e910bba44f0 |
Respuesta
Una respuesta correcta devuelve el ID (id
) del flujo de datos recién creado y un etag
. Tenga en cuenta ambos valores tal como los necesitará en el siguiente paso, para activar segmentos y exportar archivos de datos.
{
"id": "8256cfb4-17e6-432c-a469-6aedafb16cd5",
"etag": "8256cfb4-17e6-432c-a469-6aedafb16cd5"
}
Después de crear todas las conexiones y el flujo de datos, ahora puede activar los datos de perfil en la plataforma de destino. En este paso, debe seleccionar qué segmentos y qué atributos de perfil desea exportar al destino.
También puede determinar el formato de nomenclatura de archivos de los archivos exportados y qué atributos deben utilizarse como claves de deduplicación o atributos obligatorios. En este paso, también puede determinar la programación para enviar datos al destino.
Para activar segmentos en el nuevo destino, debe realizar una operación de PATCH JSON similar al ejemplo siguiente. Puede activar varios segmentos y atributos de perfil en una llamada. Para obtener más información sobre el PATCH JSON, consulte la Especificación de RFC.
Formato de API
PATCH /flows
Solicitud
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 segment that you are activating",
"description": "Description of the segment 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 segment that you are activating",
"description": "Description of the segment 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}"
}
}
}
]
Propiedad | Descripción |
---|---|
{DATAFLOW_ID} |
En la URL, utilice el ID del flujo de datos que creó en el paso anterior. |
{ETAG} |
Obtenga la variable {ETAG} de la respuesta del paso anterior, Crear un flujo de datos. El formato de respuesta del paso anterior tiene comillas de escape. Debe utilizar los valores sin escape en el encabezado de la solicitud. Consulte el ejemplo siguiente:
El valor de etiqueta se actualiza con cada actualización correcta de un flujo de datos. |
{SEGMENT_ID} |
Proporcione el ID de segmento que desea exportar a este destino. Para recuperar los ID de segmento de los segmentos que desea activar, consulte recuperar una definición de segmento en la referencia de la API de Experience Platform. |
{PROFILE_ATTRIBUTE} |
Por ejemplo, "person.lastName" |
op |
La llamada de operación utilizada para definir la acción necesaria para actualizar el flujo de datos. Las operaciones incluyen: add , replace y remove . Para agregar un segmento a un flujo de datos, utilice la variable add operación. |
path |
Define la parte del flujo que se va a actualizar. Cuando agregue un segmento a un flujo de datos, utilice la ruta especificada en el ejemplo. |
value |
El nuevo valor con el que desea actualizar el parámetro. |
id |
Especifique el ID del segmento que está agregando al flujo de datos de destino. |
name |
Opcional. Especifique el nombre del segmento que está agregando al flujo de datos de destino. Tenga en cuenta que este campo no es obligatorio y que puede agregar correctamente un segmento al flujo de datos de destino sin proporcionar su nombre. |
filenameTemplate |
Este campo determina el formato del nombre de archivo de los archivos que se exportan al destino. Las opciones disponibles son las siguientes:
Para obtener más información sobre la configuración de los nombres de archivo, consulte la configurar nombres de archivo en el tutorial de activación de destinos de lote. |
exportMode |
Obligatorio. Seleccione "DAILY_FULL_EXPORT" o "FIRST_FULL_THEN_INCREMENTAL" . Para obtener más información sobre las dos opciones, consulte exportar archivos completos y exportar archivos incrementales en el tutorial de activación de destinos por lotes. |
startDate |
Seleccione la fecha en la que el segmento debe comenzar a exportar perfiles a su destino. |
frequency |
Obligatorio.
|
triggerType |
Para destinos de lote solo. Este campo solo es necesario al seleccionar la variable "DAILY_FULL_EXPORT" en el frequency selector. Obligatorio.
|
endDate |
Para destinos de lote solo. Este campo solo es necesario cuando se agrega un segmento a un flujo de datos en destinos de exportación de archivos por lotes como Amazon S3, SFTP o Azure Blob. No aplicable al seleccionar "exportMode":"DAILY_FULL_EXPORT" y "frequency":"ONCE" . Establece la fecha en la que los miembros del segmento dejan de exportarse al destino. |
startTime |
Para destinos de lote solo. Este campo solo es necesario cuando se agrega un segmento a un flujo de datos en destinos de exportación de archivos por lotes como Amazon S3, SFTP o Azure Blob. Obligatorio. Seleccione el momento en que los archivos que contienen miembros del segmento deben generarse y exportarse al destino. |
Consulte Actualizar componentes de un segmento en un flujo de datos para obtener información sobre cómo actualizar varios componentes (plantilla de nombre de archivo, tiempo de exportación, etc.) de segmentos exportados.
Respuesta
Busque una respuesta aceptada 202. No se devuelve ningún cuerpo de respuesta. Para validar que la solicitud era correcta, consulte el siguiente paso, Validación del flujo de datos.
Como último paso del tutorial, debe validar que los segmentos y los atributos de perfil se hayan asignado correctamente al flujo de datos.
Para validar esto, realice la siguiente solicitud de GET:
Formato de API
GET /flows
Solicitud
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}
: Utilice el flujo de datos del paso anterior.{ETAG}
: Utilice la etiqueta del paso anterior.Respuesta
La respuesta devuelta debe incluirse en la variable transformations
parámetros de los segmentos y atributos de perfil que envió en el paso anterior. Un ejemplo transformations
en la respuesta podría tener el siguiente aspecto:
"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"
}
}
]
}
}
}
]
Los extremos de API de este tutorial siguen los principios generales del mensaje de error de la API del Experience Platform. Consulte Códigos de estado de API y errores en el encabezado de la solicitud en la guía de solución de problemas de Platform para obtener más información sobre la interpretación de las respuestas de error.
Al seguir este tutorial, ha conectado correctamente Platform a uno de sus destinos de almacenamiento en la nube por lotes o de marketing por correo electrónico preferidos y ha configurado un flujo de datos en el destino correspondiente para exportar archivos de datos. Los datos salientes ahora se pueden utilizar en el destino para campañas de correo electrónico, publicidad segmentada y muchos otros casos de uso. Consulte las páginas siguientes para obtener más información, como cómo editar los flujos de datos existentes mediante la API de servicio de flujo: