Händelsetyper

Den här sidan beskriver de Adobe Experience Platform-händelsetyper som finns i taggtillägget Adobe Experience Platform Web SDK. Dessa används för att skapa regler och ska inte blandas ihop med fältet eventType i xdm object.

Send event complete

Vanligtvis har din egenskap en eller flera regler som använder Send event-åtgärdenför att skicka händelser till Adobe Experience Platform Edge Network. Varje gång en händelse skickas till Edge Network returneras ett svar med användbara data till webbläsaren. Utan händelsetypen Send event complete har du inte åtkomst till dessa returnerade data.

Om du vill komma åt returnerade data skapar du en separat regel och lägger sedan till en Send event complete-händelse i regeln. Den här regeln aktiveras varje gång ett lyckat svar tas emot från servern som ett resultat av en Send event-åtgärd.

När en Send event complete-händelse utlöser en regel, innehåller den data som returneras från servern och som kan vara användbara för att utföra vissa åtgärder. Vanligtvis lägger du till en Custom code-åtgärd (från tillägget Core) i samma regel som innehåller händelsen Send event complete. I åtgärden Custom code får din anpassade kod åtkomst till en variabel som heter event. Den här event-variabeln innehåller data som returnerats från servern.

Din regel för att hantera data som returneras från Edge Network kan se ut ungefär så här:

Nedan visas några exempel på hur du utför vissa uppgifter med åtgärden Custom code i den här regeln.

Återge anpassat innehåll manuellt

I åtgärden Anpassad kod, som är en regel för att hantera svarsdata, kan du komma åt personaliseringsförslag som returnerats från servern. Om du vill göra det skriver du följande egen kod:

var propositions = event.propositions;

Om event.propositions finns är det en matris som innehåller objekt för personaliseringsförslag. Förslagen i arrayen bestäms till stor del av hur händelsen skickades till servern.

I det första scenariot antar vi att du inte har markerat kryssrutan Render decisions och inte har tillhandahållit någon decision scopes inuti åtgärden Send event som ansvarar för att skicka händelsen.

img.png

I det här exemplet innehåller arrayen propositions bara förslag som är relaterade till händelsen som är berättigade för automatisk återgivning.

Arrayen propositions kan se ut ungefär som i det här exemplet:

[
  {
    "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
  }
]

När händelsen skickades markerades inte kryssrutan Render decisions, vilket innebar att SDK inte försökte återge något innehåll automatiskt. SDK hämtade dock fortfarande automatiskt det innehåll som kan återges automatiskt och skickade det till dig för manuell återgivning om du vill göra det. Observera att egenskapen renderAttempted har angetts till false för varje förslagsobjekt.

Om du i stället hade markerat kryssrutan Render decisions när du skickade händelsen, skulle SDK ha försökt att återge alla förslag som är berättigade för automatisk återgivning. Därför skulle egenskapen renderAttempted för vart och ett av förslagsobjekten ha angetts till true. Du behöver inte återge dessa förslag manuellt i det här fallet.

Hittills har du bara tittat på innehåll som är kvalificerat för automatisk återgivning (till exempel innehåll som har skapats i Adobe Target Visual Experience Composer). Om du vill hämta anpassat innehåll som inte är berättigat till automatisk återgivning begär du innehållet genom att ange beslutsomfattningar med hjälp av fältet Decision scopes i åtgärden Send event. Ett omfång är en sträng som identifierar ett visst förslag som du vill hämta från servern.

Åtgärden Send event skulle se ut så här:

img.png

I det här exemplet returneras och inkluderas i propositions-arrayen om det finns förslag på servern som matchar omfånget salutation eller discount. Observera att förslag som kvalificerar för automatisk återgivning kommer att fortsätta inkluderas i propositions-arrayen, oavsett hur du konfigurerar Render decisions - eller Decision scopes-fälten i Send event -åtgärden. Arrayen propositions skulle i det här fallet se ut som i det här exemplet:

[
  {
    "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
  }
]

Nu kan du återge offertinnehåll när du vill. I det här exemplet är det förslag som matchar omfånget discount ett HTML-förslag som skapats med Adobe Target formulärbaserade Experience Composer. Anta att du har ett element på sidan med ID:t daily-special och vill återge innehållet från discount-utkastet till elementet daily-special. Gör följande:

  1. Extrahera utdrag från objektet event.
  2. Slinga igenom varje förslag och söker efter förslaget med omfånget discount.
  3. Om du hittar ett förslag går du igenom varje objekt i utkastet och letar efter det objekt som innehåller HTML. (Det är bättre att kontrollera än att anta.)
  4. Om du hittar ett objekt som innehåller innehåll från HTML söker du efter elementet daily-special på sidan och ersätter HTML med det anpassade innehållet.

Din egen kod i Custom code-åtgärden kan se ut så här:

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

Åtkomst till Adobe Target svarstoken

Personalization-innehåll som returneras från Adobe Target innehåller svarstoken, som är information om aktivitet, erbjudande, upplevelse, användarprofil, geoinformation med mera. Dessa uppgifter kan delas med verktyg från tredje part eller användas för felsökning. Svarstoken kan konfigureras i Adobe Target användargränssnitt.

I åtgärden Anpassad kod, som är en regel för att hantera svarsdata, kan du komma åt personaliseringsförslag som returnerats från servern. Om du vill göra det skriver du följande egen kod:

var propositions = event.propositions;

Om event.propositions finns är det en matris som innehåller objekt för personaliseringsförslag. Mer information om innehållet i result.propositions finns i Återge anpassat innehåll manuellt.

Anta att du vill samla in alla aktivitetsnamn från alla utkast som automatiskt renderades av web SDK och överföra dem till en enda array. Du kan sedan skicka den enskilda arrayen till en tredje part. I det här fallet skriver du egen kod inuti Custom code-åtgärden till:

  1. Extrahera utdrag från objektet event.
  2. Slinga igenom varje förslag.
  3. Avgör om SDK återgav förslaget.
  4. I så fall gör du en slinga genom varje objekt i förslaget.
  5. Hämta aktivitetsnamnet från egenskapen meta, som är ett objekt som innehåller svarstoken.
  6. Placera aktivitetsnamnet i en array.
  7. Skicka aktivitetsnamnen till en tredje part.
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