Accesso ai token di risposta
Il contenuto Personalization restituito da Adobe Target include token di risposta, ovvero dettagli su attività, offerta, esperienza, profilo utente, informazioni geografiche e altro ancora. Questi dettagli possono essere condivisi con strumenti di terze parti o utilizzati per il debug. I token di risposta possono essere configurati nell'interfaccia utente Target.
Per accedere a qualsiasi contenuto di personalizzazione, fornisci una funzione di callback durante l’invio di un evento. Questo callback viene richiamato dopo che SDK ha ricevuto una risposta corretta dal server. Al callback viene fornito un oggetto result
, che potrebbe contenere una proprietà propositions
contenente eventuali contenuti di personalizzazione restituiti. Di seguito è riportato un esempio di fornitura di una funzione di callback.
alloy("sendEvent", {
renderDecisions: true,
xdm: {}
}).then(function(result) {
if (result.propositions) {
// Manually render propositions
}
});
In questo esempio, result.propositions
, se esiste, è un array contenente proposte di personalizzazione relative all'evento. Consulta Rendering del contenuto di personalizzazione per ulteriori informazioni sul contenuto di result.propositions.
Supponiamo di voler raccogliere tutti i nomi di attività da tutte le proposte di cui è stato eseguito il rendering automatico dal SDK web e inviarli in un singolo array. È quindi possibile inviare il singolo array a una terza parte. In questo caso:
- Estrarre le proposte dall'oggetto
result
. - Eseguire un ciclo tra le proposte.
- Determinare se la proposta è stata sottoposta a rendering da SDK.
- In tal caso, scorri ciclicamente ogni elemento della proposta.
- Recuperare il nome dell'attività dalla proprietà
meta
, che è un oggetto contenente token di risposta. - Invia il nome dell’attività a un array.
- Invia i nomi delle attività a una terza parte.
Il codice si presenterà come segue:
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.
});