adobe.target.getOffer(options)
Esta función activa una solicitud para obtener una oferta Target.
Use con adobe.target.applyOffer()
para procesar la respuesta o use su propia administración de éxito. El parámetro de opciones es obligatorio y tiene la siguiente estructura:
Parámetros de mbox. Un objeto de pares de clave-valor que tiene la siguiente estructura:
{ "param1": "value1", "param2": "value2"}
La llamada de retorno que se ejecutará cuando tengamos una respuesta del servidor. La función de llamada de retorno de éxito recibirá un solo parámetro que representa una matriz de objetos de oferta. Este es un ejemplo de llamada de retorno de éxito:
function handleSuccess(response){......}
Consulte Respuestas más adelante para conocer los detalles.
Llamada de retorno que se ejecutará cuando tengamos un error. Hay un par de casos que se consideran erróneos:
- Código de estado HTTP diferente a 200 OK
- No se puede analizar la respuesta. Por ejemplo, hemos construido mal JSON o HTML en lugar de JSON.
- La respuesta contiene la clave de “error”. Por ejemplo, se arrojó una excepción en el borde donde no se pudo procesar correctamente una solicitud. Obtuvimos un error cuando se bloquea un mbox y no pudimos recuperar ningún contenido, etc. La función de llamada de retorno de error recibirá dos parámetros: estado y error. Este es un ejemplo de devolución de llamada de error:
function handleError(status, error){......}
Consulte Respuestas de error más adelante para conocer los detalles.
Tiempo de espera en milisegundos. Si no se especifica, se usará el tiempo de espera predeterminado en at.js.
El tiempo de espera predeterminado se puede establecer desde la interfaz de usuario de Target en Administration > Implementation.
Ejemplos
Agregando parámetros con getOffer() y utilizando applyOffer() para la administración de éxito:
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);
}
});
Agregando parámetros y parámetros de perfil con getOffer() y utilizando applyOffer() para la administración de éxito:
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);
}
});
Usando tiempo de espera personalizado y control de éxito personalizado con getOffer():
"YOUR_OWN_CUSTOM_HANDLING_FUNCTION" es un marcador de posición para una función que tiene que definir el cliente.
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
});
Respuestas
El parámetro de respuesta que se pasa a la llamada de retorno de éxito será una matriz de acciones. Una acción es un objeto que suele tener el siguiente formato:
Ejemplo
{
"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
}]
}
}]
}
Respuestas de error
Los parámetros de “estado” y “error” pasados a la llamada de retorno de error tendrán el siguiente formato:
Representa el estado de error. Este parámetro puede tener los siguientes valores:
- timeout: indica que se ha agotado el tiempo de espera de la solicitud.
- parseerror: indica que no se pudo analizar la respuesta, por ejemplo, si recibimos HTML o texto sin formato en lugar de JSON.
- error: indica un error general como el que recibimos con estado HTTP diferente a 200 OK.