Händelsetyper

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

Send event complete

Vanligtvis har din egenskap en eller flera regler med Send event åtgärd för att skicka händelser till Adobe Experience Platform Edge Network. Varje gång en händelse skickas till Edge Network returneras ett svar till webbläsaren med användbara data. Utan Send event complete händelsetyp, du skulle inte ha tillgång till dessa returnerade data.

Skapa en separat regel och lägg sedan till en Send event complete till 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ändelsen utlöser en regel och tillhandahåller data som returneras från servern 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 Core till samma regel som innehåller Send event complete -händelse. I Custom code -åtgärd får din egen kod åtkomst till en variabel med namnet event. Detta event variabeln innehåller data som returneras 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 Custom code åtgärd 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;

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

Anta att du inte har markerat Render decisions kryssruta och inte har angett decision scopes innanför Send event åtgärd som ansvarar för att skicka händelsen.

img.png

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

The propositions arrayen 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 skickas Render decisions kryssrutan har inte markerats, så SDK försökte inte återge 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 varje förslagsobjekt har sin renderAttempted egenskap inställd på false.

Om du istället hade markerat Render decisions när händelsen skickades skulle SDK ha försökt att återge alla förslag som är berättigade till automatisk återgivning. Därför får vart och ett av de föreslagna objekten sin renderAttempted egenskap inställd på 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). Så här hämtar du anpassat innehåll not som kan återge automatiskt begär innehållet genom att tillhandahålla beslutsomfattningar med Decision scopes fältet i Send event åtgärd. Ett omfång är en sträng som identifierar ett visst förslag som du vill hämta från servern.

The Send event skulle se ut så här:

img.png

I det här exemplet, om förslag hittas på servern som matchar salutation eller discount omfång, returneras de och inkluderas i propositions array. Observera att alla förslag som kvalificerar sig för automatisk återgivning kommer att finnas med i propositions oavsett hur du konfigurerar Render decisions eller Decision scopes fälten i Send event åtgärd. The 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 matchar förslaget discount omfånget är ett HTML-förslag som har skapats med Adobe Target formulärbaserade Experience Composer. Anta att du har ett element på sidan med ID:t för daily-special och vill återge innehållet från discount lägg in i daily-special -element. Gör följande:

  1. Extrahera förslag från event -objekt.
  2. Slinga igenom varje förslag och leta efter det 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 kan du hitta daily-special -element på sidan och ersätt HTML med det anpassade innehållet.

Din egen kod i Custom code 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

Personaliseringsinnehå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;

If event.propositions finns, är det en matris som innehåller objekt för personalisering. Se Återge anpassat innehåll manuellt för mer information om innehållet i result.propositions.

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ärd till:

  1. Extrahera förslag från event -objekt.
  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 meta -egenskap, 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