Target管理員API總覽
- 主題:
- APIs/SDKs
建立對象:
- 開發人員
本文提供成功瞭解及使用Adobe Target Admin API所需的背景資訊概觀。 下列內容假設您瞭解如何設定Adobe Target Admin API的驗證。
開始之前
在為Admin 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 Admin API Postman集合包含需要使用「活動」、「對象」、「選件」、「報表」、「Mbox」及「環境」進行驗證的所有Target Admin API呼叫
回應代碼
以下是Target管理員API的常見回應代碼。
活動
活動可讓您測試或個人化使用者的內容。 活動可為下列其中一種型別:
批次更新
多個管理員API可作為單一批次請求執行。
批次執行呼叫
POST /{tenant}/target/batch
將多個API呼叫棧疊在一起,並在單一批次中執行。
批次處理可讓您傳遞單一HTTP請求中數個作業的指示。 您也可以指定相關作業之間的相依性(如下節所述)。 TNT將處理每個獨立的作業(可能同時進行),並將依序處理您的相依作業。 完成所有操作後,將傳回整合的回應,並關閉HTTP連線。
批次API採用以JSON陣列表示的邏輯HTTP要求陣列 — 每個要求都有方法(對應至HTTP方法GET/PUT/POST/DELETE等)、relativeUrl (admin/rest/之後的URL部分)、選用標頭陣列(對應至HTTP標頭)和選用內文(適用於POST和PUT要求)。 批次API會傳回以JSON陣列表示的邏輯HTTP回應陣列 — 每個回應都有狀態代碼、選用的標頭陣列和選用的內文(這是JSON編碼字串)。 若要進行批次要求,請建置JSON物件,以說明要執行的各個作業。 允許的最大運算元為256 (從0到255)。
指定要求中作業之間的相依性依預設,批次API要求中指定的作業是獨立的 — 它們可以在伺服器上以任意順序執行,而且一個作業中的錯誤不會影響其他作業的執行。
通常,請求中的操作是相依的 — 例如,一個操作的輸出可用於下一個操作的輸入。 例如,operationId=0中建立的選件,需要用於行銷活動建立operationId=1。
若要將兩個批次作業連結在一起,請在相依作業中指定所需作業的ID,例如:"dependsOnOperationId" :5。 此外,透過批次作業的POST請求建立的資源ID可用於「relativeUrl」和「body」中的相依作業。
許可權與節流
為了執行批次API動作,基礎使用者必須至少擁有「編輯者」許可權(針對每個個別作業,若需要使用者擁有的其他許可權,該個別作業將失敗)。 常見的節流策略會套用至批次API動作,就像每個作業都是個別執行一樣。
當所有作業都完成時,批次處理完成,作業可能成功(2xx statusCode)、失敗(4xx、5xx狀態代碼)或因相依性作業失敗或已略過,而略過。
要求物件引數
範例要求物件
{
"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
}
}
]
}