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 di Adobe Target.
Per accedere a qualsiasi contenuto di personalizzazione, fornisci una funzione di callback durante l’invio di un evento. Questo callback verrà richiamato dopo che l'SDK avrà ricevuto una risposta corretta dal server. Al callback verrà 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. Per ulteriori informazioni sul contenuto di result.propositions
, vedere Rendering del contenuto di personalizzazione.
Supponiamo di voler raccogliere tutti i nomi delle attività da tutte le proposte di cui è stato eseguito il rendering automatico dall’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.
- Determina se l’SDK ha eseguito il rendering della proposta.
- 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.
});