adobe.target.getOffers() - at.js 2.x

此函數可讓您透過傳入多個 mbox 來擷取多個選件。此外,還可針對使用中活動內的所有檢視擷取多個選件。

NOTE
此函數於 at.js 2.x 推出。此函數不適用於 at.js 版本 1。x 版本不支援此函數。
索引鍵
類型
必要?
說明
consumerId
字串

如果未提供,預設值為用戶端的全域 mbox。此機碼可用來產生用於A4T整合的增補資料ID (SDID)。

使用getOffers()時,每個呼叫都會產生新的SDID。 如果您在相同頁面上有多個mbox要求,且想要保留SDID (以便它符合target-global-mbox中的SDID和Adobe Analytics SDID),請使用consumerId引數。

如果getOffers()包含三個mbox (名為「mbox1」、「mbox2」和「mbox3」),請在getOffers()呼叫中包含: consumerId: "mbox1, mbox2, mbox3"

decisioningMethod
字串
"server-side"、"on-device"、"hybrid"
request
物件
請參閱下方的「要求」表格。
timeout
數字
請求逾時。如果未指定,則會使用預設的 at.js 逾時。

請求

NOTE
請參閱傳送API檔案,取得下列所有欄位的可接受型別的相關資訊。
欄位名稱
必要?
限制
說明
request > id
tntIdthirdPartyIdmarketingCloudVisitorId 其中一個是必要項目。
request > id > thirdPartyId
大小上限= 128。
Request > experienceCloud
Request > experienceCloud > analytics
Adobe Analytics 整合
Request > experienceCloud > analytics > logging

必須在頁面上實作下列項目:

  • 訪客 ID 服務
  • Appmeasurement.js

支援下列值:

client_side:指定後,會傳回分析裝載給呼叫者,呼叫者應將其用來透過Data Insertion API傳送給Adobe Analytics。

server_side:這是預設值,其中Target和Analytics後端會使用SDID將呼叫拼接在一起以用於報表用途。

request > prefetch
request > prefetch > views

最大計數50。

名稱不得空白。

名稱長度<= 128。

值長度<= 5000。

名稱不得以「profile」開頭。

不允許的名稱: 「orderId」、「orderTotal」、「productPurchasedId」。

傳遞參數以用於擷取使用中活動內的相關檢視。
request > prefetch > views > profileParameters

計數上限50。

名稱不得空白。

名稱長度<= 128。

值長度<= 5000。

僅接受字串值。

名稱不得以「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。

串連並以逗號分隔。

產品識別碼總長度<= 250。

傳入已購產品 ID 以用於擷取使用中活動內的相關檢視。
request > execute
request > execute > pageLoad

request > execute > pageLoad

parameters

最大計數50。

名稱不得空白。

名稱長度<= 128。

值長度<= 5000。

僅接受字串值。

名稱不得以「profile」開頭。

不允許的名稱: 「orderId」、「orderTotal」、「productPurchasedId」。

頁面載入時使用指定的參數擷取選件。

request > execute > pageLoad

profileParameters

最大計數50。

名稱不得空白。

名稱長度<= 128。

值長度<=256。

名稱不得以「profile」開頭。

僅接受字串值。

頁面載入時使用指定的設定檔參數擷取選件。

request > execute > pageLoad

product

request > execute > pageLoad

product -> id

不得空白。

大小上限= 128。

頁面載入時使用指定的產品 ID 擷取選件。

request > execute > pageLoad

product > categoryId

不得空白。

大小上限= 128。

頁面載入時使用指定的類別 ID 擷取選件。

request > execute > pageLoad

order

request > execute > pageLoad

order > id

長度上限= 250。
頁面載入時使用指定的訂單 ID 擷取選件。

request > execute > pageLoad

order > total

>= 0。
頁面載入時使用指定的訂單總金額擷取選件。

request > execute > pageLoad

order > purchasedProductIds

沒有空白值。

每個值的長度上限為50。

串連並以逗號分隔。

產品識別碼總長度<= 250。

頁面載入時使用指定的已購產品 ID 擷取選件。
request > execute > mboxes

大小上限= 50。

沒有null元素。

request > execute > mboxes>mbox

不得空白。

沒有'-clicked'尾碼。

大小上限= 250。

允許的字元: `'-, ./=:;&!@#$%^&*()+

?~[]{}'`
request > execute > mboxes>mbox>index

不是Null。

獨特。

>= 0。

請注意,索引不代表處理 mbox 的順序。與含有數個區域 mbox 的網頁相同,無法指定處理 mbox 的順序。
request > execute > mboxes > mbox > parameters

最大計數= 50。

名稱不得空白。

名稱長度<= 128。

僅接受字串值。

值長度<= 5000。

名稱不得以「設定檔」開頭。

不允許的名稱: 「orderId」、「orderTotal」、「productPurchasedId」。

使用指定的參數為特定 mbox 擷取選件。
request > execute > mboxes>mbox>profileParameters

最大計數= 50。

名稱不得空白。

名稱長度<= 128。

僅接受字串值。

值長度<=256。

名稱不得以「設定檔」開頭。

使用指定的設定檔參數為特定 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總長度<= 250。

使用指定的已購產品 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: {}
            }
        }
    }
});
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3