adobe.target.getOffer(options)

此函数会触发用于获取Target选件的请求。

使用 adobe.target.applyOffer() 来处理响应或使用您自己的成功处理。options 参数是强制性的,具有以下结构:

类型
必需
描述
mbox
字符串
Mbox 名称
参数
对象

Mbox 参数。键值对这一对象具有以下结构:

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

success
函数

当我们从服务器获得响应时执行的回调函数。success 回调函数将接收一个参数,该参数表示一组选件对象。以下是一个success回调示例:

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

有关详细信息,请参阅下文的“响应”。

error
函数

我们遇到错误时执行的回调函数。以下是几个出现错误的案例:

  • HTTP 状态码不是 200 OK
  • 响应无法解析。例如,我们不当地构造了 JSON,或者构造了 HTML 而不是 JSON。
  • 响应包含“error”键值。例如,在边缘服务器上引发异常,无法正确处理请求。我们可能会在 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 回调函数的响应参数将是一组操作。操作是一个通常具有以下格式的对象:

名称
类型
描述
action
字符串
要应用于所标识元素的操作类型。
selector
字串符
表示一个 Sizzle 选择器。
cssSelector
字符串
DOM 原生选择器,用于预隐藏元素。
content
字符串
要应用于所标识元素的内容。

示例

{
    "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”参数将具有以下格式:

名称
类型
描述
status
字符串

表示错误状态。该参数可以具有以下值:

  • timeout:表示请求超时。
  • parseerror:表示无法解析响应,例如,如果我们收到 HTML 或纯文本而不是 JSON。
  • error:表示常规错误,例如我们收到的 HTTP 状态不是 200 OK
error
字符串
包含其他数据,例如异常消息或其他任何可能对故障诊断有用的信息。
recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3