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設定 預設逾時。

範例

使用 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" 參數將具備下列格式:

名稱 類型 說明
狀態 字串 代表錯誤狀態。此參數可具備下列值:
  • 超時: 指出要求逾時。
  • parseerror: 指出無法剖析回應,例如收到 HTML 或純文字而非 JSON。
  • error: 指出一般錯誤,例如收到 200 OK 以外的其他 HTTP 狀態
錯誤 字串 包含其他資料 (例如例外訊息) 或對於疑難排解可能實用的任何項目。

本頁內容