Zugriff auf Antwort-Token
Von Adobe Target zurückgegebene Personalization-Inhalte enthalten Antwort-Token mit Details zur Aktivität, zum Angebot, zum Erlebnis, zum Benutzerprofil, zu geografischen Informationen und mehr. Diese Details können für Drittanbieter-Tools freigegeben oder zum Debugging verwendet werden. Antwort-Token können in der Benutzeroberfläche von Adobe Target konfiguriert werden.
Um auf Personalisierungsinhalte zuzugreifen, stellen Sie beim Senden eines Ereignisses eine Rückruffunktion bereit. Dieser Callback wird aufgerufen, nachdem die SDK eine erfolgreiche Antwort vom Server erhalten hat. Ihr Callback wird als result
-Objekt bereitgestellt, das eine propositions
-Eigenschaft enthalten kann, die alle zurückgegebenen Personalisierungsinhalte enthält. Nachfolgend finden Sie ein Beispiel für die Bereitstellung einer Rückruffunktion.
alloy("sendEvent", {
renderDecisions: true,
xdm: {}
}).then(function(result) {
if (result.propositions) {
// Manually render propositions
}
});
In diesem Beispiel ist result.propositions
, falls vorhanden, ein Array mit Personalisierungsvorschlägen im Zusammenhang mit dem Ereignis. Weitere Informationen Inhalt von result.propositions
finden Sie„Rendern von Personalisierungsinhalten“.
Angenommen, Sie möchten alle Aktivitätsnamen aus allen Vorschlägen erfassen, die automatisch von Web SDK gerendert wurden, und sie in ein einziges Array pushen. Sie können dann das einzelne Array an einen Drittanbieter senden. In diesem Fall:
- Extrahieren von Vorschlägen aus dem
result
. - Durchlaufen aller Vorschläge
- Stellen Sie fest, ob der SDK den Vorschlag gerendert hat.
- Wenn ja, durchlaufen Sie alle Elemente im Vorschlag.
- Rufen Sie den Aktivitätsnamen aus der
meta
-Eigenschaft ab, bei der es sich um ein Objekt mit Antwort-Token handelt. - Pushen Sie den Aktivitätsnamen in ein Array.
- Senden Sie die Aktivitätsnamen an eine Drittpartei.
Ihr Code würde wie folgt aussehen:
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.
});