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 Build-Regeln verwendet und sollten nicht mit dem eventType-Feld in XDM verwechselt werden.

Abschluss des Ereignisses senden

In der Regel enthält Ihre Eigenschaft eine oder mehrere Regeln, die die Aktion Ereignis senden verwenden,, um Ereignisse an 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 Ereignis-Abschluss 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 "Ereignisbeendigung senden"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 "Ereignisbeendigung 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 Benutzerspezifischer Code (aus der Core-Erweiterung) zu derselben Regel hinzu, die das Ereignis Ereignis-Abschluss senden enthält. In der Aktion Benutzerspezifischer Code hat Ihr benutzerdefinierter Code Zugriff auf eine Variable namens event. Diese Variable event enthält die vom Server zurückgegebenen Daten.

Ihre Regel für die Verarbeitung von Daten, die vom 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 Ereignis senden-Aktion angegeben, die für das Senden des Ereignisses verantwortlich 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 propositions-Array 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, wenn Sie dies möchten. Beachten Sie, dass für jedes Vorschlagsobjekt die Eigenschaft renderAttempted auf false festgelegt ist.

Hätten Sie beim Senden des Ereignisses stattdessen das Kontrollkästchen Renderentscheidungen aktiviert, hätte das SDK versucht, alle Vorschläge wiederzugeben, die für das automatische Rendering infrage kommen. Daher wird für jedes der Vorschlagsobjekte die 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 für das automatische Rendering nicht infrage kommen, fordern Sie den Inhalt an, indem Sie mithilfe des Felds Entscheidungsbereiche in der Aktion Ereignis senden Entscheidungsbereiche 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 Perimeter salutation oder discount entsprechen, zurückgegeben und in das Array propositions aufgenommen. 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 propositions -Array 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 mit dem Perimeter discount übereinstimmt, 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. Entpacken Sie Vorschläge aus dem event -Objekt.
  2. Durchlaufen Sie jeden Vorschlag und suchen Sie nach dem Vorschlag mit einem Umfang von 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 benutzerspezifischer Code innerhalb der Aktion Benutzerspezifischer Code kann wie folgt aussehen:

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

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.

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. Entpacken Sie Vorschläge aus dem event -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.
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.
}

Auf dieser Seite