adobe.target.getOffers() - at.js 2.x
建立對象:
- undefined
此函數可讓您透過傳入多個 mbox 來擷取多個選件。此外,還可針對使用中活動內的所有檢視擷取多個選件。
索引鍵 | 類型 | 必要? | 說明 |
---|---|---|---|
consumerId | 字串 | 無 |
如果未提供,預設值為用戶端的全域 mbox。此機碼可用來產生用於A4T整合的增補資料ID (SDID)。 使用 如果 |
decisioningMethod | 字串 | 無 | "server-side"、"on-device"、"hybrid" |
request | 物件 | 是 | 請參閱下方的「要求」表格。 |
timeout | 數字 | 無 | 請求逾時。如果未指定,則會使用預設的 at.js 逾時。 |
請求
欄位名稱 | 必要? | 限制 | 說明 |
---|---|---|---|
request > id | 無 | tntId 、thirdPartyId 或 marketingCloudVisitorId 其中一個是必要項目。 | |
request > id > thirdPartyId | 無 | 大小上限= 128。 | |
Request > experienceCloud | 無 | ||
Request > experienceCloud > analytics | 無 | Adobe Analytics 整合 | |
Request > experienceCloud > analytics > logging | 無 |
必須在頁面上實作下列項目:
|
支援下列值: client_side:指定後,會傳回分析裝載給呼叫者,呼叫者應將其用來透過Data Insertion API傳送給Adobe Analytics。 server_side:這是預設值,其中Target和Analytics後端會使用SDID將呼叫拼接在一起以用於報表用途。 |
request > prefetch | 無 | ||
request > prefetch > views | 無 |
最大計數50。 名稱不得空白。 名稱長度 值長度 名稱不得以「profile」開頭。 不允許的名稱: 「orderId」、「orderTotal」、「productPurchasedId」。 | 傳遞參數以用於擷取使用中活動內的相關檢視。 |
request > prefetch > views > profileParameters | 無 |
計數上限50。 名稱不得空白。 名稱長度 值長度 僅接受字串值。 名稱不得以「profile」開頭。 | 傳入設定檔參數以用於擷取使用中活動內的相關檢視。 |
request > prefetch > views > product | 無 | ||
request > prefetch > views > product -> id | 無 |
不得空白。 大小上限= 128。 | 傳入產品 ID 以用於擷取使用中活動內的相關檢視。 |
request > prefetch > views > product > categoryId | 無 |
不得空白。 大小上限= 128。 | 傳入產品類別 ID 以用於擷取活動內的相關檢視。 |
request > prefetch > views > order | 無 | ||
request > prefetch > views > order > id | 無 | 長度上限= 250。 | 傳入訂單 ID 以用於擷取使用中活動內的相關檢視。 |
request > prefetch > views > order > total | 無 | 總計>= 0。 | 傳入訂單總金額以用於擷取使用中活動內的相關檢視。 |
request > prefetch > views > order > purchasedProductIds | 無 |
沒有空白值。 每個值的長度上限為50。 串連並以逗號分隔。 產品識別碼總長度 | 傳入已購產品 ID 以用於擷取使用中活動內的相關檢視。 |
request > execute | 無 | ||
request > execute > pageLoad | 無 | ||
request > execute > pageLoad
| 無 |
最大計數50。 名稱不得空白。 名稱長度 值長度 僅接受字串值。 名稱不得以「profile」開頭。 不允許的名稱: 「orderId」、「orderTotal」、「productPurchasedId」。 | 頁面載入時使用指定的參數擷取選件。 |
request > execute > pageLoad
| 無 |
最大計數50。 名稱不得空白。 名稱長度 值長度 名稱不得以「profile」開頭。 僅接受字串值。 | 頁面載入時使用指定的設定檔參數擷取選件。 |
request > execute > pageLoad
| 無 | ||
request > execute > pageLoad
| 無 |
不得空白。 大小上限= 128。 | 頁面載入時使用指定的產品 ID 擷取選件。 |
request > execute > pageLoad
| 無 |
不得空白。 大小上限= 128。 | 頁面載入時使用指定的類別 ID 擷取選件。 |
request > execute > pageLoad
| 無 | ||
request > execute > pageLoad
| 無 | 長度上限= 250。 | 頁面載入時使用指定的訂單 ID 擷取選件。 |
request > execute > pageLoad
| 無 | >= 0。 | 頁面載入時使用指定的訂單總金額擷取選件。 |
request > execute > pageLoad
| 無 |
沒有空白值。 每個值的長度上限為50。 串連並以逗號分隔。 產品識別碼總長度 | 頁面載入時使用指定的已購產品 ID 擷取選件。 |
request > execute > mboxes | 無 |
大小上限= 50。 沒有null元素。 | |
request > execute > mboxes>mbox | 是 |
不得空白。 沒有'-clicked'尾碼。 大小上限= 250。 允許的字元: `'-, ./=:;&!@#$%^&*()+ | ?~[]{}'` |
request > execute > mboxes>mbox>index | 是 |
不是Null。 獨特。
| 請注意,索引不代表處理 mbox 的順序。與含有數個區域 mbox 的網頁相同,無法指定處理 mbox 的順序。 |
request > execute > mboxes > mbox > parameters | 無 |
最大計數= 50。 名稱不得空白。 名稱長度 僅接受字串值。 值長度 名稱不得以「設定檔」開頭。 不允許的名稱: 「orderId」、「orderTotal」、「productPurchasedId」。 | 使用指定的參數為特定 mbox 擷取選件。 |
request > execute > mboxes>mbox>profileParameters | 無 |
最大計數= 50。 名稱不得空白。 名稱長度 僅接受字串值。 值長度 名稱不得以「設定檔」開頭。 | 使用指定的設定檔參數為特定 mbox 擷取選件。 |
request > execute > mboxes>mbox > product | 無 | ||
request > execute > mboxes > mbox > product > id | 無 |
不得空白。 大小上限= 128。 | 使用指定的產品 ID 為特定 mbox 擷取選件。 |
request > execute > mboxes > mbox > product > categoryId | 無 |
不得空白。 大小上限= 128。 | 使用指定的類別 ID 為特定 mbox 擷取選件。 |
request > execute > mboxes > mbox > order | 無 | ||
request > execute > mboxes>mbox > order > id | 無 | 長度上限= 250。 | 使用指定的訂單 ID 為特定 mbox 擷取選件。 |
request > execute > mboxes > mbox > order > total | 無 | >= 0。 | 使用指定的訂單總金額為特定 mbox 擷取選件。 |
request > execute > mboxes > mbox > order > purchasedProductIds | 無 |
沒有空白值。 每個值的長度上限= 50。 串連並以逗號分隔。 產品ID總長度 | 使用指定的已購產品 ID 為特定 mbox 擷取選件。 |
為所有檢視呼叫 getOffers()
adobe.target.getOffers({
request: {
prefetch: {
views: [{}]
}
}
});
呼叫getOffers()以進行裝置上決策
adobe.target.getOffers({
decisioningMethod:"on-device",
request: {
execute: {
mboxes: [
{
index: 0,
name: "homepage"
}
]
}
}
});
呼叫 getOffers() 以使用傳入的參數和設定檔參數擷取最新的檢視
adobe.target.getOffers({
request: {
"prefetch": {
"views": [
{
"parameters": {
"ad": "1"
},
"profileParameters": {
"age": 23
}
}
]
}
}
});
呼叫 getOffers() 以使用傳入的參數和設定檔參數擷取 mbox。
adobe.target.getOffers({
request: {
execute: {
mboxes: [
{
index: 0,
name: "first-mbox"
},
{
index: 1,
name: "second-mbox",
parameters: {
a: 1
},
profileParameters: {
b: 2
}
}
]
}
}
});
呼叫getOffers()以從使用者端擷取分析裝載
adobe.target.getOffers({
request: {
experienceCloud: {
analytics: {
logging: "client_side"
}
},
prefetch: {
mboxes: [{
index: 0,
name: "a1-serverside-xt"
}]
}
}
})
.then(console.log)
回應:
{
"prefetch": {
"mboxes": [{
"index": 0,
"name": "a1-serverside-xt",
"options": [{
"content": "<img src=\"http://s7d2.scene7.com/is/image/TargetAdobeTargetMobile/L4242-xt-usa?tm=1490025518668&fit=constrain&hei=491&wid=980&fmt=png-alpha\"/>",
"type": "html",
"eventToken": "n/K05qdH0MxsiyH4gX05/2qipfsIHvVzTQxHolz2IpSCnQ9Y9OaLL2gsdrWQTvE54PwSz67rmXWmSnkXpSSS2Q==",
"responseTokens": {
"profile.memberlevel": "0",
"geo.city": "bucharest",
"activity.id": "167169",
"experience.name": "USA Experience",
"geo.country": "romania"
}
}],
"analytics": {
"payload": {
"pe": "tnt",
"tnta": "167169:0:0|0|100,167169:0:0|2|100,167169:0:0|1|100"
}
}
}]
}
}
然後可透過資料插入API將裝載轉送至Adobe Analytics。
透過getOffers()和applyOffers()從多個mbox擷取及呈現資料
at.js 2.x 可讓您透過 getOffers()
API 擷取多個 mbox。您也可以擷取多個 mbox 的資料,然後使用 applyOffers()
在 CSS 選取器所識別的不同位置中呈現資料。
下列範例顯示已實作 at.js 2.x 的單一 HTML 頁面:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>at.js 2.x, multiple selectors and multiple mboxes</title>
<script src="at.js"></script>
</head>
<body>
<div id="container1">Default content 1</div>
<div id="container2">Default content 2</div>
<div id="container3">Default content 3</div>
</body>
</html>
假設您有三個要透過從 Target 收到的內容修改的容器。您可為三個 mbox 建構單一要求,其中每個 mbox 都有要呈現於個別容器中的一些內容。
要求和呈現的程式碼可能如下列範例所示:
adobe.target.getOffers({
request: {
prefetch: {
mboxes: [
{
index: 0,
name: "mbox1"
},
{
index: 1,
name: "mbox2"
},
{
index: 2,
name: "mbox3"
}
]
}
}
})
.then(response => {
// get all mboxes from response
const mboxes = response.prefetch.mboxes;
let count = 1;
mboxes.forEach(el => {
adobe.target.applyOffers({
selector: "#container" + count,
response: {
prefetch: {
mboxes: [el]
}
}
});
count += 1;
});
});
在 request > prefetch > mboxes
區段中,有三個不同的 mbox。如果已成功完成要求,您會從 response > prefetch > mboxes
收到每個 mbox 的回應。有了回應和您要用於呈現的位置之後,您可以叫用 applyOffers()
,呈現從 Target 擷取的內容。在此範例中,我們有下列對應:
- mbox1 > CSS 選取器 #container1
- mbox2 > CSS 選取器 #container2
- mbox3 > CSS 選取器 #container3
此範例使用計數變數來建構 CSS 選取器。在實際情況中,您可以在 CSS 選取器和 mbox 之間使用不同的對應。
請注意,此範例使用 prefetch > mboxes
,但您也可以使用 execute > mboxes
。請務必確認,如果您在 getOffers()
中使用預先擷取,則在 applyOffers()
叫用中也應使用預先擷取。
呼叫getOffers()以執行pageLoad
下列範例說明如何使用getOffers()搭配at.js 2.x
adobe.target.getOffers({
request: {
execute: {
pageLoad: {
parameters: {}
}
}
}
});