Zugriff auf Antwort-Token

Zu den von Adobe Target zurückgegebenen Personalisierungsinhalten gehören Antwort-Token, die Details zu Aktivität, Angebot, Erlebnis, Benutzerprofil, Geo-Informationen und mehr enthalten. 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.

Stellen Sie beim Senden eines Ereignisses eine Rückruffunktion bereit, um auf beliebige Personalisierungsinhalte zuzugreifen. Dieser Rückruf wird aufgerufen, nachdem das SDK eine erfolgreiche Antwort vom Server erhält. Ihr Rückruf wird mit einem 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 Callback-Funktion.

alloy("sendEvent", {
    renderDecisions: true,
    xdm: {}
  }).then(function(result) {
    if (result.propositions) {
      // Manually render propositions
    }
  });

In diesem Beispiel ist result.propositions, sofern vorhanden, ein Array, das Personalisierungsvorschläge für das Ereignis enthält. Weitere Informationen zum Inhalt von result.propositions finden Sie unter Rendering personalization content .

Angenommen, Sie möchten alle Aktivitätsnamen aus allen Vorschlägen erfassen, die automatisch vom Web SDK gerendert wurden, und sie in ein einzelnes Array übertragen. Sie können dann das einzelne Array an einen Drittanbieter senden. In diesem Fall:

  1. Entpacken Sie Vorschläge aus dem result -Objekt.
  2. Durchlaufen Sie jeden Vorschlag.
  3. Bestimmen Sie, ob das SDK den Vorschlag wiedergegeben hat.
  4. Falls ja, durchlaufen Sie jedes Element des Vorschlags.
  5. Rufen Sie den Aktivitätsnamen aus der meta -Eigenschaft ab, bei der es sich um ein Objekt mit Antwort-Token handelt.
  6. Ziehen Sie den Namen der Aktivität in ein Array.
  7. Senden Sie die Aktivitätsnamen an einen Drittanbieter.

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.
  });

Auf dieser Seite