Target管理员API概述
本文概述成功理解和使用Adobe Target Admin API所需的背景信息。 以下内容假设您了解如何为Adobe Target Admin API配置身份验证。
开始之前
在为管理员API提供的所有代码示例中,将{tenant}替换为您的租户值,your-bearer-token
替换为您使用JWT生成的访问令牌,将your-api-key
替换为您从Adobe Developer Console生成的API密钥。 有关租户和JWT的详细信息,请参阅关于如何为AdobeTarget管理员API配置身份验证的文章。
版本控制
所有API都有一个关联的版本。 提供您要使用的API的正确版本很重要。
如果请求包含有效负载(POST或PUT),则使用请求的Content-Type
标头指定版本。
如果请求不包含有效负载(GET、DELETE或OPTIONS),则使用Accept
标头指定版本。
如果未提供版本,则调用将默认使用V1 (application/vnd.adobe.target.v1+json)。
不支持的功能的错误消息
{
"httpStatus": 406,
"requestId": "8752b736-cf71-4d81-86c3-94be2b5ae648",
"requestTime": "2018-02-02T21:39:06.405Z",
"errors": [
{
"errorCode": "Unsupported.Feature",
"message": "Unsupported features detected"
}
]
}
管理员Postman收藏集
Postman是一款能够轻松触发API调用的应用程序。 此Target管理员API Postman集合包含所有需要使用活动、受众、选件、报表、Mbox和环境进行身份验证的Target管理员API调用
响应代码
以下是Target管理员API的常见响应代码。
活动
利用活动,可测试或个性化用户的内容。 活动可以是以下类型之一:
批量更新
多个管理员API可以作为单个批处理请求执行。
批量执行调用
POST /{tenant}/target/batch
将多个API调用栈叠在一起,并在单个批次中执行。
批量处理允许您在一个HTTP请求中传递多个操作的说明。 还可以指定相关操作之间的从属关系(如下节所述)。 TNT将处理每个独立的操作(可能并行),并将按顺序处理从属操作。 完成所有操作后,将传递回整合的响应,并关闭HTTP连接。
批处理API采用以JSON数组表示的逻辑HTTP请求数组 — 每个请求都有一个方法(对应于HTTP方法GET/PUT/POST/DELETE等)、相对URL(admin/rest/之后URL的部分)、可选标头数组(对应于HTTP标头)和一个可选正文(用于POST和PUT请求)。 批处理API返回一个以JSON数组表示的逻辑HTTP响应数组 — 每个响应都有一个状态代码、一个可选标头数组和一个可选正文(是一个JSON编码字符串)。 要使请求进行批处理,请构建一个JSON对象,该对象描述要执行的各个操作。 允许的最大操作数为256(从0到255)。
指定请求中操作之间的依赖关系默认情况下,批处理API请求中指定的操作是独立的 — 它们可以在服务器上以任意顺序执行,并且一个操作中的错误不会影响其他操作的执行。
通常,请求中的操作是相互依赖的 — 例如,一个操作的输出可用于下一个操作的输入。 例如,在operationId=0中创建的选件需要在campaign创建operationId=1中使用。
要将两个批处理操作链接在一起,请在依赖操作中指定所需操作的ID,例如:“dependsOnOperationId” :5。 此外,通过批处理操作的POST请求创建的资源的ID可用于“relativeUrl”和“body”中的依赖操作。
权限和限制
为了执行批处理API操作,基础用户必须至少具有“编辑者”权限(对于每个操作,如果比用户需要更多权限,则单个操作将失败)。 通常对批处理API操作应用节流策略,就像每个操作都已单独执行一样。
批处理完成时,所有操作都已完成,操作可能成功(2xx statusCode)、失败(4xx, 5xx status code)或因依赖项操作失败或已被跳过而跳过。
请求对象参数
示例请求对象
{
"operations": [
{
"operationId": 1,
"dependsOnOperationIds~": [0],
"method": "POST",
"relativeUrl": "/v1/offers",
"headers~": [
{
"name": "Content-Type",
"value": "application/json"
}
],
"body~": {
"key": "value"
}
}
]
}
响应对象参数
示例响应对象
{
"results": [
{
"operationId": 1,
"skipped~": false,
"statusCode~": 200,
"headers~": [
{
"name": "Content-Type",
"value": "application/json; charset=UTF-8"
}
],
"body~": {
"id": 5
}
}
]
}