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 狀態
錯誤 字串 包含其他資料 (例如例外訊息) 或對於疑難排解可能實用的任何項目。

本頁內容

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now