Ereignistypen

Auf dieser Seite werden die Adobe Experience Platform-Ereignistypen beschrieben, die von der Adobe Experience Platform Web SDK-Tag-Erweiterung bereitgestellt werden. Diese werden für Erstellungsregeln verwendet und sollten nicht mit dem Feld eventType im Objekt xdm verwechselt werden.

Ereignis-Abschluss senden

In der Regel enthält Ihre Eigenschaft eine oder mehrere Regeln, die die Aktion Ereignis sendenverwenden, um Ereignisse an das Adobe Experience Platform-Edge Network zu senden. Jedes Mal, wenn ein Ereignis an Edge Network gesendet wird, wird eine Antwort mit nützlichen Daten an den Browser zurückgegeben. Ohne den Ereignistyp Ereignisbeendigung senden hätten Sie keinen Zugriff auf diese zurückgegebenen Daten.

Um auf die zurückgegebenen Daten zuzugreifen, erstellen Sie eine separate Regel und fügen Sie dann ein Ereignis zum Abschluss senden -Ereignis zur Regel hinzu. Diese Regel wird jedes Mal ausgelöst, wenn eine erfolgreiche Antwort vom Server als Ergebnis einer Ereignis senden -Aktion empfangen wird.

Wenn ein Ereignis vom Typ Ereignis zum Abschluss senden eine Regel Trigger, werden vom Server zurückgegebene Daten bereitgestellt, die für die Ausführung bestimmter Aufgaben nützlich sein können. In der Regel fügen Sie eine Aktion vom Typ Benutzerdefinierter Code (aus der Erweiterung Core ) zu derselben Regel hinzu, die das Ereignis Abschluss des Sendeereignisses enthält. In der Aktion Benutzerspezifischer Code hat Ihr benutzerdefinierter Code Zugriff auf eine Variable namens event. Diese event -Variable enthält die vom Server zurückgegebenen Daten.

Ihre Regel für die Verarbeitung von Daten, die von Edge Network zurückgegeben werden, könnte in etwa so aussehen:

Im Folgenden finden Sie einige Beispiele für die Ausführung bestimmter Aufgaben mithilfe der Aktion Benutzerspezifischer Code in dieser Regel.

Manuelles Rendern personalisierter Inhalte

In der Aktion "Benutzerspezifischer Code", die sich in der Regel für die Verarbeitung von Antwortdaten befindet, können Sie auf vom Server zurückgegebene Personalisierungsvorschläge zugreifen. Geben Sie dazu den folgenden benutzerdefinierten Code ein:

var propositions = event.propositions;

Wenn event.propositions vorhanden ist, handelt es sich um ein Array, das Personalisierungspropositionsobjekte enthält. Die im Array enthaltenen Vorschläge werden größtenteils danach bestimmt, wie das Ereignis an den Server gesendet wurde.

Angenommen, Sie haben für dieses erste Szenario das Kontrollkästchen Renderentscheidungen nicht aktiviert und keine Entscheidungsbereiche innerhalb der Aktion Ereignis senden angegeben, die für das Senden des Ereignisses zuständig ist.

img.png

In diesem Beispiel enthält das Array propositions nur Vorschläge für das Ereignis, die für die automatische Wiedergabe geeignet sind.

Das Array propositions könnte in etwa wie im folgenden Beispiel aussehen:

[
  {
    "id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
    "scope": "__view__",
    "items": [
      {
        "id": "11223344",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">An HTML proposition.</h2>",
          "selector": "#hero",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:PyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ8",
    "scope": "__view__",
    "items": [
      {
        "id": "11223345",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">Another HTML proposition.</h2>",
          "selector": "#sidebar",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  }
]

Beim Senden des Ereignisses wurde das Kontrollkästchen Renderentscheidungen nicht aktiviert, sodass das SDK nicht versucht hat, automatisch Inhalte zu rendern. Das SDK hat jedoch weiterhin automatisch die Inhalte abgerufen, die für das automatische Rendering infrage kommen, und Ihnen zur manuellen Wiedergabe bereitgestellt, sofern dies gewünscht ist. Beachten Sie, dass für jedes Vorschlagsobjekt die Eigenschaft renderAttempted auf false festgelegt ist.

Wenn Sie beim Senden des Ereignisses stattdessen das Kontrollkästchen Renderentscheidungen angekreuzt hätten, hätte das SDK versucht, alle Vorschläge wiederzugeben, die für das automatische Rendering infrage kommen. Daher würde für jedes der Vorschlagsobjekte seine Eigenschaft renderAttempted auf true gesetzt. In diesem Fall müssen diese Vorschläge nicht manuell gerendert werden.

Bisher haben Sie sich nur mit Personalisierungsinhalten befasst, die für die automatische Wiedergabe geeignet sind (z. B. mit Inhalten, die im Visual Experience Composer von Adobe Target erstellt wurden). Um Personalisierungsinhalte abzurufen, die nicht für die automatische Wiedergabe geeignet sind, fordern Sie den Inhalt an, indem Sie Entscheidungsbereiche mit dem Feld Entscheidungsbereiche in der Aktion Ereignis senden angeben. __ Ein Perimeter ist eine Zeichenfolge, die einen bestimmten Vorschlag identifiziert, den Sie vom Server abrufen möchten.

Die Aktion Ereignis senden würde wie folgt aussehen:

img.png

In diesem Beispiel werden Vorschläge, die dem Umfang salutation oder discount entsprechen, zurückgegeben und in das Array propositions aufgenommen, wenn sie auf dem Server gefunden werden. Beachten Sie, dass Vorschläge, die für das automatische Rendering infrage kommen, weiterhin im Array propositions enthalten sind, unabhängig davon, wie Sie die Felder Renderentscheidungen oder Entscheidungsbereiche in der Aktion Ereignis senden konfigurieren. Das Array propositions würde in diesem Fall in etwa wie im folgenden Beispiel aussehen:

[
  {
    "id": "AT:cZJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ2",
    "scope": "salutation",
    "items": [
      {
        "schema": "https://ns.adobe.com/personalization/json-content-item",
        "data": {
          "id": "4433221",
          "content": {
            "salutation": "Welcome, esteemed visitor!"
          }
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:FZJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ0",
    "scope": "discount",
    "items": [
      {
        "schema": "https://ns.adobe.com/personalization/html-content-item",
        "data": {
          "id": "4433222",
          "content": "<div>50% off your order!</div>",
          "format": "text/html"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:eyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ9",
    "scope": "__view__",
    "items": [
      {
        "id": "11223344",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">An HTML proposition.</h2>",
          "selector": "#hero",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  },
  {
    "id": "AT:PyJhY3Rpdml0eUlkIjoiMTI3MDE5IiwiZXhwZXJpZW5jZUlkIjoiMCJ8",
    "scope": "__view__",
    "items": [
      {
        "id": "11223345",
        "schema": "https://ns.adobe.com/personalization/dom-action",
        "data": {
          "content": "<h2 style=\"color: yellow\">Another HTML proposition.</h2>",
          "selector": "#sidebar",
          "type": "setHtml"
        },
        "meta": {}
      }
    ],
    "renderAttempted": false
  }
]

An dieser Stelle können Sie den Vorschlagsinhalt nach Bedarf rendern. In diesem Beispiel handelt es sich bei dem Vorschlag, der dem discount -Bereich entspricht, um einen HTML-Vorschlag, der mit dem formularbasierten Experience Composer von Adobe Target erstellt wurde. Angenommen, Sie haben ein Element auf Ihrer Seite mit der Kennung daily-special und möchten den Inhalt aus dem Vorschlag discount in das Element daily-special rendern. Gehen Sie folgendermaßen vor:

  1. Extrahieren Sie Vorschläge aus dem Objekt event .
  2. Durchlaufen Sie jeden Vorschlag und suchen Sie nach dem Vorschlag mit dem Umfang "discount".
  3. Wenn Sie einen Vorschlag finden, durchlaufen Sie jedes Element im Vorschlag, suchen Sie nach dem Element, das HTML-Inhalt ist. (Es ist besser zu überprüfen als anzunehmen.)
  4. Wenn Sie ein Element mit HTML-Inhalt finden, suchen Sie das Element daily-special auf der Seite und ersetzen Sie dessen HTML durch den personalisierten-Inhalt.

Ihr benutzerdefinierter Code innerhalb der Aktion Benutzerspezifischer Code wird möglicherweise wie folgt angezeigt:

var propositions = event.propositions;

var discountProposition;
if (propositions) {
  // Find the discount proposition, if it exists.
  for (var i = 0; i < propositions.length; i++) {
    var proposition = propositions[i];
    if (proposition.scope === "discount") {
      discountProposition = proposition;
      break;
    }
  }
}

var discountHtml;
if (discountProposition) {
  // Find the item from proposition that should be rendered.
  // Rather than assuming there a single item that has HTML
  // content, find the first item whose schema indicates
  // it contains HTML content.
  for (var j = 0; j < discountProposition.items.length; j++) {
    var discountPropositionItem = discountProposition.items[i];
    if (discountPropositionItem.schema === "https://ns.adobe.com/personalization/html-content-item") {
      discountHtml = discountPropositionItem.data.content;
      break;
    }
  }
}

if (discountHtml) {
  // Discount HTML exists. Time to render it.
  var dailySpecialElement = document.getElementById("daily-special");
  dailySpecialElement.innerHTML = discountHtml;
}

Zugriff auf Adobe Target-Antwort-Token

Personalization-Inhalte, die von Adobe Target zurückgegeben werden, umfassen Antwort-Token, d. h. Details zu Aktivität, Angebot, Erlebnis, Benutzerprofil, Geo-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.

In der Aktion "Benutzerspezifischer Code", die sich in der Regel für die Verarbeitung von Antwortdaten befindet, können Sie auf vom Server zurückgegebene Personalisierungsvorschläge zugreifen. Geben Sie dazu den folgenden benutzerdefinierten Code ein:

var propositions = event.propositions;

Wenn event.propositions vorhanden ist, handelt es sich um ein Array, das Personalisierungspropositionsobjekte enthält. Weitere Informationen zum Inhalt von result.propositions finden Sie unter Manuelles Rendern personalisierter Inhalte .

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. Schreiben Sie in diesem Fall benutzerdefinierten Code in die Aktion Benutzerspezifischer Code in:

  1. Extrahieren Sie Vorschläge aus dem Objekt event .
  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 Eigenschaft meta 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.
var propositions = event.propositions;
if (propositions) {
  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.
}
recommendation-more-help
12b4e4a9-5028-4d88-8ce6-64a580811743