adobe.target.getOffer(options)
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:
Mbox parameters. An object of key-value pairs that has the following structure:
{ "param1": "value1", "param2": "value2"}
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.
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 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:
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:
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