adobe.target.getOffer(options)

Last update: 2023-07-17
  • Topics:
  • at.js
    View more on this topic
  • Created for:
  • Developer

This function fires a request to get a Target offer.

Use with adobe.target.applyOffer() to process the response or use your own success handling. The options parameter is mandatory and has the following structure:

Key Type Required Description
mbox String Yes Mbox name
params Object No Mbox parameters. An object of key-value pairs that has the following structure:

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

success Function Yes Callback to be executed when we got a response from the server. The success callback function will receive a single parameter that represents an array of offer objects. Here is a success callback example:

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

See Responses below for details.

error Function Yes Callback to be executed when we got an error. There are a few cases that are considered erroneous:
  • HTTP status code different from 200 OK
  • Response can not be parsed. For example we poorly constructed JSON or HTML instead of JSON.
  • Response contains the “error” key. For example an exception was thrown on the edge a request could not be properly processed. We could get an error when an mbox is blocked and we could not retrieve any content for it, etc. The error callback function will receive two parameters: status and error. Here is an error callback example: function handleError(status, error){......}
See Error Responses below for details.
timeout Number No Timeout in milliseconds. If not specified, the default timeout in at.js will be used.

The default timeout can be set from the Target UI under Administration > Implementation.

Examples

Adding parameters with getOffer() and using applyOffer() for 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);
  }
});

Adding parameters and profile parameters with getOffer() and using applyOffer() for 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);
  }
});

Using custom timeout and custom success-handling with getOffer():

“YOUR_OWN_CUSTOM_HANDLING_FUNCTION” is a placeholder for a function the customer would define.

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
});

Responses

The response parameter passed to the success callback will be an array of actions. An action is an object that usually has the following format:

Name Type Description
action String Type of action to be applied to the identified element.
selector Sting Represents a Sizzle selector.
cssSelector String DOM native selector, used for element pre-hiding.
content String The content to be applied to the identified element.

Example

{
    "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 Responses

The “status” and “error” parameters passed to the error callback will have the following format:

Name Type Description
status String Represents the error status. This parameter can have the following values:
  • timeout: Indicates that the request timed out.
  • parseerror: Indicates that the response could not be parsed, for example if we receive HTML or plain text instead of JSON.
  • error: Indicates a general error like we received HTTP status different from 200 OK
error String Contains additional data like exception message or anything else that might be useful for troubleshooting.

On this page