使用Flow Service API为广告源创建数据流
本教程涵盖以下步骤:从第三方广告应用程序检索数据,以及通过源连接器和Flow Service API将其摄取到Adobe Experience Platform中。
- 要创建数据流,您必须已具有包含广告源的有效基本连接ID。 如果您没有此ID,请查看源概述,以了解可创建基本连接的广告源的列表。
 - 要让Experience Platform摄取数据,必须将所有基于表的批处理源的时区配置为UTC时区。
 
快速入门
本教程要求您实际了解Adobe Experience Platform的以下组件:
- 
                  
Experience Data Model (XDM) System: Experience Platform用于组织客户体验数据的标准化框架。
- 架构组合的基础知识:了解XDM架构的基本构建块,包括架构组合中的关键原则和最佳实践。
 - 架构注册表开发人员指南:包含成功执行对架构注册表API的调用所需了解的重要信息。 这包括您的
{TENANT_ID}、“容器”的概念以及发出请求所需的标头(请特别注意“接受”标头及其可能的值)。 
 - 
                  
Catalog Service:目录是Experience Platform中数据位置和谱系的记录系统。
 - 
                  
Batch ingestion:批量摄取API允许您将数据作为批处理文件摄取到Experience Platform中。
 - 
                  
沙盒: Experience Platform提供了将单个Experience Platform实例划分为多个单独的虚拟环境的虚拟沙盒,以帮助开发和改进数字体验应用程序。
 
使用Experience Platform API
有关如何成功调用Experience Platform API的信息,请参阅Experience Platform API快速入门指南。
创建源连接 source
您可以通过向Flow Service API发出POST请求来创建源连接。 源连接由连接ID、源数据文件的路径以及连接规范ID组成。
要创建源连接,还必须为数据格式属性定义一个枚举值。
为基于文件的连接器使用以下枚举值:
delimitedjsonparquet对于所有基于表的连接器,将该值设置为tabular。
API格式
POST /sourceConnections
            请求
curl -X POST \
    'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
    -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": "Google AdWords source connection",
        "baseConnectionId": "2484f2df-c057-4ab5-84f2-dfc0577ab592",
        "description": "Google AdWords source connection",
        "data": {
            "format": "tabular",
        },
        "params": {
            "tableName": "v201809.AD_PERFORMANCE_REPORT",
            "columns": [
                {
                    "name": "CallOnlyPhoneNumber",
                    "type": "string",
                    "xdm": {
                        "type": "string"
                    }
                },
                {
                    "name": "AdGroupId",
                    "type": "long",
                    "xdm": {
                        "type": "integer",
                        "minimum": -9007199254740992,
                        "maximum": 9007199254740991
                    }
                },
                {
                    "name": "AdGroupName",
                    "type": "string",
                    "xdm": {
                        "type": "string"
                    }
                },
                {
                    "name": "Date",
                    "type": "string",
                    "meta:xdmType": "date-time",
                    "xdm": {
                        "type": "string",
                        "format": "date-time"
                    }
                }
            ]
        },
        "connectionSpec": {
            "id": "d771e9c1-4f26-40dc-8617-ce58c4b53702",
            "version": "1.0"
        }
    }'
            baseConnectionIdparams.pathconnectionSpec.id响应
成功的响应返回新创建的源连接的唯一标识符(id)。 将此值存储为以后创建目标连接步骤中所需的值。
{
    "id": "ca7b8baa-587e-4223-bb8b-aa587e4223e3",
    "etag": "\"5701cdf0-0000-0200-0000-5e9680af0000\""
}
            创建目标XDM架构 target-schema
为了在Experience Platform中使用源数据,必须创建目标架构,以根据您的需求构建源数据。 然后,使用目标架构创建包含源数据的Experience Platform数据集。
通过对架构注册表API执行POST请求,可以创建目标XDM架构。
有关如何创建目标XDM架构的详细步骤,请参阅有关使用API 创建架构的教程。
创建目标数据集 target-dataset
通过向目录服务API执行POST请求,在有效负载中提供目标架构的ID,可以创建目标数据集。
有关如何创建目标数据集的详细步骤,请参阅有关使用API创建数据集的教程。
创建目标连接 target-connection
目标连接表示与所摄取数据所登陆的目标之间的连接。 要创建目标连接,您必须提供与数据湖关联的固定连接规范ID。 此连接规范ID为: c604ff05-7f1a-43c0-8e18-33bf874cb11c。
现在,您拥有目标架构、目标数据集以及到数据湖的连接规范ID的唯一标识符。 使用Flow Service API,您可以通过指定这些标识符以及将包含入站源数据的数据集来创建目标连接。
API格式
POST /targetConnections
            请求
curl -X POST \
    'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
    -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": "Google AdWords target connection,
        "description": "Google AdWords target connection,
        "data": {
            "schema": {
                "id": "https://ns.adobe.com/{TENANT_ID}/schemas/b9bf50e91f28528e5213c7ed8583018f48970d69040c37dc",
                "version": "application/vnd.adobe.xed-full+json;version=1"
            }
        },
        "params": {
            "dataSetId": "5e9681e389b80418ad4b3df0"
        },
        "connectionSpec": {
            "id": "c604ff05-7f1a-43c0-8e18-33bf874cb11c",
            "version": "1.0"
        }
    }'
            data.schema.id$id。data.schema.versionapplication/vnd.adobe.xed-full+json;version=1,这将返回架构的最新次版本。params.dataSetIdconnectionSpec.idc604ff05-7f1a-43c0-8e18-33bf874cb11c。{
    "id": "41af25df-cd99-4372-af25-dfcd99b37291",
    "etag": "\"4d01178a-0000-0200-0000-5e9683380000\""
}
            创建映射 mapping
要将源数据摄取到目标数据集中,必须首先将其映射到目标数据集所遵循的目标架构。
要创建映射集,请在提供目标XDM架构mappingSets和要创建的映射集的详细信息时,向Data Prep API的$id端点发出POST请求。
API格式
POST /conversion/mappingSets
            请求
curl -X POST \
    'https://platform.adobe.io/data/foundation/conversion/mappingSets' \
    -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 '{
        "version": 0,
        "xdmSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/b9bf50e91f28528e5213c7ed8583018f48970d69040c37dc",
        "xdmVersion": "1.0",
        "id": null,
        "mappings": [
            {
                "destinationXdmPath": "person.name.firstName",
                "sourceAttribute": "first_name",
                "identity": false,
                "identityGroup": null,
                "namespaceCode": null,
                "version": 0
            },
            {
                "destinationXdmPath": "person.name.lastName",
                "sourceAttribute": "last_name",
                "identity": false,
                "identityGroup": null,
                "namespaceCode": null,
                "version": 0
            },
            {
                "destinationXdmPath": "personalEmail.address",
                "sourceAttribute": "email",
                "identity": false,
                "identityGroup": null,
                "namespaceCode": null,
                "version": 0
            }
        ]
    }'
            xdmSchema响应
成功的响应返回新创建的映射的详细信息,包括其唯一标识符(id)。 在后续步骤中需要使用此值来创建数据流。
{
    "id": "febec6a6785e45ea9ed594422cc483d7",
    "version": 0,
    "createdDate": 1589398562232,
    "modifiedDate": 1589398562232,
    "createdBy": "{CREATED_BY}",
    "modifiedBy": "{MODIFIED_BY}"
}
            查找数据流规范 specs
数据流负责从源收集数据并将这些数据引入Experience Platform。 要创建数据流,您必须首先获取负责收集广告数据的数据流规范。
API格式
GET /flowSpecs?property=name=="CRMToAEP"
            请求
curl -X GET \
    'https://platform.adobe.io/data/foundation/flowservice/flowSpecs?property=name==%22CRMToAEP%22' \
    -H 'x-api-key: {API_KEY}' \
    -H 'x-gw-ims-org-id: {ORG_ID}' \
    -H 'x-sandbox-name: {SANDBOX_NAME}'
            响应
成功的响应将返回数据流规范的详细信息,该规范负责将数据从源引入Experience Platform。 响应包括创建新数据流所需的唯一流规范id。
| code language-json | 
|---|
                      
                     | 
                  
创建数据流
收集广告数据的最后一步是创建数据流。 现在,您已准备以下必需值:
数据流负责从源中计划和收集数据。 您可以通过在有效负载中提供前面提到的值时执行POST请求来创建数据流。
要计划摄取,您必须先将开始时间值设置为纪元时间(以秒为单位)。 然后,必须将频率值设置为五个选项之一: once、minute、hour、day或week。 间隔值用于指定两次连续摄取之间的时间段,创建一次性摄取不需要设置间隔。 对于所有其他频率,间隔值必须设置为等于或大于15。
API格式
POST /flows
            请求
curl -X POST \
    'https://platform.adobe.io/data/foundation/flowservice/flows' \
    -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": "Google AdWords dataflow",
        "description": "Google AdWords dataflow",
        "flowSpec": {
            "id": "14518937-270c-4525-bdec-c2ba7cce3860",
            "version": "1.0"
        },
        "sourceConnectionIds": [
            "ca7b8baa-587e-4223-bb8b-aa587e4223e3"
        ],
        "targetConnectionIds": [
            "41af25df-cd99-4372-af25-dfcd99b37291"
        ],
        "transformations": [
            {
                "name": "Copy",
                "params": {
                    "deltaColumn": {
                        "name": "updatedAt",
                        "dateFormat": "YYYY-MM-DD",
                        "timezone": "UTC"
                    }
                }
            },
            {
            "name": "Mapping",
            "params": {
                "mappingId": "febec6a6785e45ea9ed594422cc483d7",
                "mappingVersion": 0
                }
            }
        ],
        "scheduleParams": {
            "startTime": "1567411548",
            "frequency":"minute",
            "interval":"30"
        }
    }'
            flowSpec.idsourceConnectionIdstargetConnectionIdstransformations.params.mappingIdtransformations.params.deltaColumdeltaColumn支持的日期格式为yyyy-MM-dd HH:mm:ss。transformations.params.mappingIdscheduleParams.startTimescheduleParams.frequencyonce、minute、hour、day或week。scheduleParams.interval间隔指定两次连续流运行之间的周期。 间隔的值应为非零整数。 每个频率的最小接受间隔值如下:
- 一次:不适用
 - 分钟: 15
 - 小时: 1
 - 天: 1
 - 周: 1
 
响应
成功的响应返回新创建的数据流的ID (id)。
{
    "id": "e0bd8463-0913-4ca1-bd84-6309134ca1f6",
    "etag": "\"04004fe9-0000-0200-0000-5ebc4c8b0000\""
}
            监测数据流
创建数据流后,您可以监视通过它摄取的数据,以查看有关流运行、完成状态和错误的信息。 有关如何监视数据流的详细信息,请参阅有关API中监视数据流的教程
后续步骤
在本教程之后,您已创建一个源连接器,以按计划从广告系统中收集数据。 传入数据现在可供下游Experience Platform服务(如Real-Time Customer Profile和Data Science Workspace)使用。 有关更多详细信息,请参阅以下文档: