Show Menu
主題×

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。這是 error 回呼範例: function handleError(status, error){......}
請參閱以下的「錯誤回應」以取得詳細資料。
timeout
數字
逾時,以毫秒為單位。如果未指定,將使用 at.js 中的預設逾時。
Target您可以從 UI 的下列路徑設定預設逾時:「設定」>「實作」>「編輯 Mbox.js 設定」>「逾時」。

範例

使用 getOffer() 新增參數,並使用 applyOffer() 進行 success-handling:
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() 進行 success-handling:
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); 
  } 
});

使用自訂 timeout 和自訂 success-handling 搭配 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
字串
包含其他資料 (例如例外訊息) 或對於疑難排解可能實用的任何項目。