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 zum Erstellen von Regeln verwendet und sollten nicht mit dem Feld eventType im xdm-Objekt verwechselt werden.
Überwachungs-Hook ausgelöst monitoring-hook-triggered
Adobe Experience Platform Web SDK enthält Überwachungs-Hooks, mit denen Sie verschiedene Systemereignisse überwachen können. Diese Tools sind nützlich, um eigene Debugging-Tools zu entwickeln und Web SDK-Protokolle zu erfassen.
Ausführliche Informationen zu den Parametern, die die einzelnen Überwachungs-Hook-Ereignisse enthalten, finden Sie in der Dokumentation zu den Überwachungs-Hooks für Web SDK.
Die Web SDK-Tag-Erweiterung unterstützt die folgenden Überwachungs-Hooks:
-
onInstanceCreated: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, wenn Sie erfolgreich eine neue Web-SDK-Instanz erstellt haben.
-
onInstanceConfigured: Dieses Überwachungs-Hook-Ereignis wird von der Web-SDK ausgelöst, wenn der
configureerfolgreich aufgelöst wurde -
onBeforeCommand: Dieses Überwachungs-Hook-Ereignis wird von Web SDK ausgelöst, bevor ein anderer Befehl ausgeführt wird. Mit diesem Überwachungs-Hook können Sie die Konfigurationsoptionen eines bestimmten Befehls abrufen.
-
onCommandResolved: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, bevor die Befehlszusage aufgelöst wird. Sie können diese Funktion verwenden, um die Befehlsoptionen und das Ergebnis anzuzeigen.
-
onCommandRejected: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, wenn eine Befehlszusage abgelehnt wird, und enthält Informationen über die Fehlerursache.
-
onBeforeNetworkRequest: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, bevor eine Netzwerkanfrage ausgeführt wird.
-
onNetworkResponse: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, wenn der Browser eine Antwort erhält.
-
onNetworkError: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, wenn die Netzwerkanfrage fehlgeschlagen ist.
-
onBeforeLog: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, bevor Web SDK etwas in der Konsole protokolliert.
-
onContentRendering: Dieses Überwachungs-Hook-Ereignis wird von der
personalization-Komponente ausgelöst und hilft Ihnen beim Debugging des Renderings des Personalisierungsinhalts. Dieses Ereignis kann unterschiedliche Status haben:rendering-started: Gibt an, dass Web SDK Vorschläge rendern wird. Bevor Web SDK mit dem Rendern eines Entscheidungsumfangs oder einer Ansicht beginnt, können Sie imdatadie Vorschläge sehen, die von derpersonalizationgerendert werden sollen, sowie den Namen des Bereichs.no-offers: Gibt an, dass für die angeforderten Parameter keine Payload empfangen wurde.rendering-failed: Gibt an, dass Web SDK einen Vorschlag nicht rendern konnte.rendering-succeeded: Gibt an, dass das Rendering für einen Entscheidungsumfang abgeschlossen ist.rendering-redirect: Gibt an, dass Web SDK einen Umleitungsvorschlag ausführt.
-
onContentHiding: Dieses Überwachungs-Hook-Ereignis wird ausgelöst, wenn ein Stil zum Vorab-Ausblenden angewendet oder entfernt wird.
Send event complete
In der Regel verfügt Ihre Eigenschaft über eine oder mehrere Regeln, die die Send event zum Senden von Ereignissen an Adobe Experience Platform Edge Network verwenden. Jedes Mal, wenn ein Ereignis an Edge Network gesendet wird, wird eine Antwort mit nützlichen Daten an den Browser zurückgegeben. Ohne den Send event complete Ereignistyp 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 der Regel ein Send event complete Ereignis hinzu. Diese Regel wird jedes Mal ausgelöst, wenn als Ergebnis einer Send event eine erfolgreiche Antwort vom Server empfangen wird.
Wenn ein Send event complete-Ereignis eine Regel Trigger, stellt es vom Server zurückgegebene Daten bereit, die für die Ausführung bestimmter Aufgaben nützlich sein können. In der Regel fügen Sie derselben Regel, die das Custom code enthält, eine Core Aktion (aus der Send event complete-Erweiterung) hinzu. In der Custom code Aktion hat Ihr benutzerdefinierter Code Zugriff auf eine Variable mit dem Namen event. Diese event enthält die vom Server zurückgegebenen Daten.
Ihre Regel für die Verarbeitung der von Edge Network zurückgegebenen Daten könnte in etwa wie folgt aussehen:
Im Folgenden finden Sie einige Beispiele für die Durchführung bestimmter Aufgaben mithilfe der Custom code in dieser Regel.
Personalisierte Inhalte manuell rendern
In der Aktion für benutzerspezifischen Code, die in der Regel für die Verarbeitung von Antwortdaten enthalten ist, können Sie auf Personalisierungsvorschläge zugreifen, die vom Server zurückgegeben wurden. Dazu geben Sie den folgenden benutzerdefinierten Code ein:
var propositions = event.propositions;
Wenn event.propositions vorhanden ist, handelt es sich um ein Array mit Personalisierungsvorschlagsobjekten. Die im Array enthaltenen Vorschläge werden größtenteils davon bestimmt, wie das Ereignis an den Server gesendet wurde.
Angenommen, Sie haben für dieses erste Szenario das Kontrollkästchen Render decisions nicht aktiviert und in der decision scopes Aktion, die für das Senden des Ereignisses verantwortlich ist, keine Send event angegeben.
In diesem Beispiel enthält das propositions-Array nur Vorschläge im Zusammenhang mit dem 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 Render decisions nicht aktiviert, sodass der SDK nicht versucht hat, automatisch Inhalte zu rendern. Die SDK hat jedoch weiterhin automatisch die Inhalte abgerufen, die für die automatische Wiedergabe infrage kommen, und hat Ihnen diese zum manuellen Rendern bereitgestellt, falls Sie dies tun möchten. Beachten Sie, dass die renderAttempted jedes Vorschlagsobjekts auf false gesetzt ist.
Wenn Sie stattdessen beim Senden des Ereignisses das Kontrollkästchen Render decisions aktiviert hätten, hätte die SDK versucht, alle Vorschläge zu rendern, die für das automatische Rendern infrage kommen. Infolgedessen würde die renderAttempted-Eigenschaft jedes Vorschlagsobjekts auf true gesetzt. In diesem Fall müssten diese Vorschläge nicht manuell gerendert werden.
Bisher haben Sie sich nur mit Personalisierungsinhalten befasst, die für das automatische Rendering geeignet sind (z. B. alle Inhalte, die in Visual Experience Composer von Adobe Target erstellt wurden). Um Personalisierungsinhalte abzurufen die nicht für automatisches Rendering geeignet sind, fordern Sie den Inhalt an, indem Sie mithilfe des Felds Decision scopes in der Send event Entscheidungsumfänge angeben. Ein Bereich ist eine Zeichenfolge, die einen bestimmten Vorschlag identifiziert, den Sie vom Server abrufen möchten.
Die Send event würde wie folgt aussehen:
Wenn in diesem Beispiel Vorschläge auf dem Server gefunden werden, die mit dem salutation- oder discount übereinstimmen, werden sie zurückgegeben und in das propositions-Array aufgenommen. Beachten Sie, dass Vorschläge, die sich für das automatische Rendering qualifizieren, weiterhin im propositions-Array enthalten sind, unabhängig davon, wie Sie die Render decisions oder Decision scopes Felder in der Send event 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 Belieben rendern. In diesem Beispiel ist der Vorschlag, der mit dem discount übereinstimmt, ein HTML-Vorschlag, der mit dem formularbasierten Experience Composer von Adobe Target erstellt wurde. Angenommen, Sie haben ein Element auf Ihrer Seite mit der ID daily-special und möchten den Inhalt aus dem discount in das daily-special rendern. Gehen Sie folgendermaßen vor:
- Extrahieren von Vorschlägen aus dem
event. - Durchsuchen Sie jeden Vorschlag auf der Suche nach dem Vorschlag mit einem Umfang von
discount. - Wenn Sie einen Vorschlag finden, durchsuchen Sie jedes Element im Vorschlag und suchen Sie nach dem Element, das HTML-Inhalt ist. (Es ist besser zu überprüfen, als anzunehmen.)
- Wenn Sie ein Element finden, das HTML-Inhalte enthält, suchen Sie auf der Seite nach dem
daily-special-Element und ersetzen Sie dessen HTML durch den personalisierten Inhalt.
Ihr benutzerdefinierter Code innerhalb der Custom code Aktion könnte 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
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.
In der Aktion für benutzerspezifischen Code, die in der Regel für die Verarbeitung von Antwortdaten enthalten ist, können Sie auf Personalisierungsvorschläge zugreifen, die vom Server zurückgegeben wurden. Geben Sie dazu den folgenden benutzerdefinierten Code ein:
var propositions = event.propositions;
Wenn event.propositions vorhanden ist, handelt es sich um ein Array mit Personalisierungsvorschlagsobjekten. Weitere Informationen Inhalt von finden Sie result.propositionsManuelles Rendern personalisierter Inhalte“.
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. Schreiben Sie in diesem Fall benutzerdefinierten Code innerhalb der Custom code-Aktion, um:
- Extrahieren von Vorschlägen aus dem
event. - 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.
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.
}
Subscribe ruleset items subscribe-ruleset-items
Mit dem Ereignistyp Subscribe ruleset items können Sie Adobe Journey Optimizer-Inhaltskarten für eine Oberfläche abonnieren. Bei jeder Auswertung der Regelsätze erhält der für diesen Befehl bereitgestellte Callback ein Ergebnisobjekt mit Vorschlägen, die die Inhaltskartendaten enthalten.
Dieser Ereignistyp unterstützt die folgenden konfigurierbaren Eigenschaften:
- Schemas: Ein Array von Schemata, für die Inhaltskarten abonniert werden sollen. Sie können die Schemata manuell eingeben oder ein Datenelement bereitstellen.
- Surfaces: Ein Array von Oberflächen, für die Inhaltskarten abonniert werden sollen. Sie können die Oberflächen manuell eingeben oder ein Datenelement bereitstellen.