adobe.target.getOffer(options)

此函式會引發要求以取得Target選件。

搭配使用 adobe.target.applyOffer() 來處理回應或使用您自己的成功處理。options 參數是強制性的,並且具有下列結構:

索引鍵
類型
必要
說明
mbox
字串
Mbox 名稱
params
物件

mbox 參數.機碼/值組的物件具有下列結構:

{ "param1": "value1", "param2": "value2"}

success
函數

收到來自伺服器的回應時要執行的回呼。success 回呼函數將接收代表選件物件陣列的單一參數。以下是success回呼範例:

function handleSuccess(response){......}

請參閱以下的「回應」以取得詳細資料。

error
函數

遇到錯誤時要執行的回呼。有一些案例會被視為錯誤:

  • HTTP 狀態代碼與 200 OK 不同
  • 無法剖析回應。例如,我們拙劣地建構了 JSON 或 HTML 而非 JSON。
  • 回應包括 "error" 索引鍵。例如,在 Edge 上擲出了例外,無法正確處理要求。當 mbox 遭到封鎖,我們無法擷取任何內容時,便可能出現錯誤,諸如此類情況。error 回呼函數將收到兩個參數: status 和 error。以下是錯誤回呼範例: function handleError(status, error){......}

請參閱以下的「錯誤回應」以取得詳細資料。

timeout
數字

逾時,以毫秒為單位。如果未指定,將使用 at.js 中的預設逾時。

可在Administration > Implementation底下的Target UI中設定預設逾時。

範例

正在使用getOffer()新增引數並使用applyOffer()進行成功處理:

adobe.target.getOffer({
  "mbox": "target-global-mbox",
  "params": {
     "a": 1,
     "b": 2
  },
  "success": function(offer) {
        adobe.target.applyOffer( {
           "mbox": "target-global-mbox",
           "offer": offer
        } );
  },
  "error": function(status, error) {
      console.log('Error', status, error);
  }
});

正在新增引數及設定檔引數與getOffer(),並使用applyOffer()進行成功處理:

adobe.target.getOffer({
  "mbox": "target-global-mbox",
  "params": {
     "a": 1,
     "b": 2,
     "profile.age": 27,
     "profile.gender": "male"
  },
  "success": function(offer) {
        adobe.target.applyOffer( {
           "mbox": "target-global-mbox",
           "offer": offer
        } );
  },
  "error": function(status, error) {
      console.log('Error', status, error);
  }
});

搭配getOffer()使用自訂逾時和自訂成功處理:

"YOUR_OWN_CUSTOM_HANDLING_FUNCTION" 客戶會定義的函數之預留位置。

adobe.target.getOffer({
  "mbox": "target-global-mbox",
  "success": function(offer) {
    YOUR_OWN_CUSTOM_HANDLING_FUNCTION(offer);
  },
  "error": function(status, error) {
    console.log('Error', status, error);
  },
  "timeout": 2000
});

回應

傳遞至 success 回呼的回應參數將會是動作的陣列。動作是一種物件,通常具備下列格式:

名稱
類型
說明
動作
字串
要套用至識別的元素的動作類型。
selector
字串
代表 Sizzle 選取器。
cssSelector
字串
DOM 原生選取器,用於元素預先隱藏。
內容
字串
要套用至識別的元素的內容。

範例

{
    "sessionId": "1444512212156-384616",
    "tntId": "1444512212156-384616.17_35",
    "offers": [{
        "plugins": ["<script type=\"text/javascript\">\r\n/*mboxHighlight+ (1of2) v1 ==> Response Plugin*/\r\nwindow.ttMETA=(typeof(window.ttMETA)!='undefined')?window.ttMETA:[];window.ttMETA.push({'mbox':'target-global-mbox','campaign':'at: redirect ootb','experience':'Experience B','offer':'/at_redirect_ootb/experiences/1/pages/0/1442082890250'});window.ttMBX=function(x){var mbxList=[];for(i=0;i<ttMETA.length;i++){if(ttMETA[i].mbox==x.getName()){mbxList.push(ttMETA[i])}}return mbxList[x.getId()]}\r\n</script>"],
        "actions": {
            "content": [{
                "passMboxSession": false,
                "selector": "body",
                "action": "redirect",
                "url": "https://example.com/04.html",
                "includeAllUrlParameters": true
            }]
        }
    }]
}

錯誤回應

傳遞至 error 回呼的 "status" 和 "error" 參數將具備下列格式:

名稱
類型
說明
狀態
字串

代表錯誤狀態。此參數可具備下列值:

  • timeout:表示要求逾時。
  • parseerror: 指出無法剖析回應,例如收到 HTML 或純文字而非 JSON。
  • error: 指出一般錯誤,例如收到 200 OK 以外的其他 HTTP 狀態
error
字串
包含其他資料 (例如例外訊息) 或對於疑難排解可能實用的任何項目。
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3