Acceso a tokens de respuesta
El contenido de Personalization devuelto desde Adobe Target incluye tokens de respuesta, que son detalles acerca de la actividad, oferta, experiencia, perfil de usuario, información geográfica y más. Estos detalles se pueden compartir con herramientas de terceros o utilizar para la depuración. Los tokens de respuesta se pueden configurar en la interfaz de usuario de Adobe Target.
Para acceder a cualquier contenido de personalización, proporcione una función de llamada de retorno al enviar un evento. Se llamará a esta devolución de llamada después de que el SDK reciba una respuesta correcta del servidor. Se le proporcionará una devolución de llamada con un objeto result
, el cual puede contener una propiedad propositions
con el contenido de personalización devuelto. A continuación se muestra un ejemplo de cómo proporcionar una función de llamada de retorno.
alloy("sendEvent", {
renderDecisions: true,
xdm: {}
}).then(function(result) {
if (result.propositions) {
// Manually render propositions
}
});
En este ejemplo, result.propositions
, si existe, es una matriz que contiene propuestas de personalización relacionadas con el evento. Consulte Procesamiento de contenido personalizado para obtener más información sobre el contenido de result.propositions
.
Supongamos que desea recopilar todos los nombres de las actividades de todas las propuestas que el SDK web procesó automáticamente e insertarlos en una sola matriz. A continuación, puede enviar la matriz única a un tercero. En este caso:
- Extraer propuestas del objeto
result
. - Recorra en bucle cada propuesta.
- Determine si el SDK procesó la propuesta.
- Si es así, realice un bucle en cada elemento de la propuesta.
- Recupere el nombre de la actividad de la propiedad
meta
, que es un objeto que contiene tokens de respuesta. - Inserte el nombre de la actividad en una matriz.
- Envíe los nombres de las actividades a un tercero.
El código tendría el siguiente aspecto:
alloy("sendEvent", {
renderDecisions: true,
xdm: {}
}).then(function(result) {
var activityNames = [];
propositions.forEach(function(proposition) {
if (proposition.renderAttempted) {
proposition.items.forEach(function(item) {
if (item.meta) {
// item.meta contains the response tokens.
var activityName = item.meta["activity.name"];
// Ignore duplicates
if (activityNames.indexOf(activityName) === -1) {
activityNames.push(activityName);
}
}
});
}
});
// Now that activity names are in an array,
// you can send them to a third party or use
// them in some other way.
});