Tipi di evento

Questa pagina descrive i tipi di evento Adobe Experience Platform forniti dall’estensione tag Adobe Experience Platform Web SDK. Sono utilizzati per generare regole e non devono essere confusi con il campo eventType nell'oggetto xdm.

Invio evento completato

In genere, la proprietà dispone di una o più regole che utilizzano l'azione Invia evento per inviare eventi all'Edge Network di Adobe Experience Platform. Ogni volta che un evento viene inviato a Edge Network, viene restituita una risposta al browser con dati utili. Senza il tipo di evento Invia evento completato, non potrai accedere ai dati restituiti.

Per accedere ai dati restituiti, crea una regola separata, quindi aggiungi un evento Invia evento completato alla regola. Questa regola viene attivata ogni volta che viene ricevuta una risposta dal server a seguito di un'azione Invia evento.

Quando un evento Invia evento completato attiva una regola, fornisce i dati restituiti dal server che possono essere utili per eseguire determinate attività. In genere, si aggiunge un'azione Codice personalizzato (dall'estensione Core) alla stessa regola contenente l'evento Invia evento completato. Nell'azione Codice personalizzato, il codice personalizzato avrà accesso a una variabile denominata event. Questa variabile event conterrà i dati restituiti dal server.

La regola per la gestione dei dati restituiti da Edge Network potrebbe essere simile alla seguente:

Di seguito sono riportati alcuni esempi di come eseguire alcune attività utilizzando l'azione Codice personalizzato in questa regola.

Rendering manuale di contenuti personalizzati

Nell’azione Codice personalizzato, inclusa nella regola per la gestione dei dati di risposta, puoi accedere alle proposte di personalizzazione restituite dal server. A questo scopo, digita il seguente codice personalizzato:

var propositions = event.propositions;

Se event.propositions esiste, si tratta di un array contenente oggetti di proposta di personalizzazione. Le proposte incluse nell’array sono determinate, in gran parte, dal modo in cui l’evento è stato inviato al server.

Per questo primo scenario, si supponga di non aver selezionato la casella di controllo Decisioni di rendering e di non aver fornito alcun ambito di decisione nell'azione Invia evento responsabile dell'invio dell'evento.

img.png

In questo esempio, l'array propositions contiene solo proposte relative all'evento idonee per il rendering automatico.

L'array propositions potrebbe essere simile a questo esempio:

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

Durante l'invio dell'evento, la casella di controllo Decisioni di rendering non è stata selezionata, pertanto l'SDK non ha tentato di eseguire automaticamente il rendering di alcun contenuto. L’SDK ha comunque recuperato automaticamente i contenuti idonei per il rendering automatico e ti ha fornito come eseguire il rendering manualmente, se lo desideri. Tieni presente che la proprietà renderAttempted di ogni oggetto della proposta è impostata su false.

Se invece avessi selezionato la casella di controllo Decisioni di rendering durante l'invio dell'evento, l'SDK avrebbe tentato di eseguire il rendering di tutte le proposte idonee per il rendering automatico. Di conseguenza, la proprietà renderAttempted di ciascuno degli oggetti della proposta sarà impostata su true. In questo caso, non sarebbe necessario eseguire manualmente il rendering di queste proposte.

Finora hai esaminato solo i contenuti di personalizzazione idonei per il rendering automatico (ad esempio, qualsiasi contenuto creato nel Compositore esperienza visivo di Adobe Target). Per recuperare qualsiasi contenuto di personalizzazione not idoneo per il rendering automatico, richiedi il contenuto fornendo ambiti decisionali utilizzando il campo Ambiti decisionali nell'azione Invia evento. Un ambito è una stringa che identifica una particolare proposta che desideri recuperare dal server.

L'azione Invia evento sarà simile alla seguente:

img.png

In questo esempio, se le proposte vengono trovate nel server corrispondente all'ambito salutation o discount, vengono restituite e incluse nell'array propositions. Tieni presente che le proposte idonee per il rendering automatico continueranno a essere incluse nell'array propositions, indipendentemente da come configuri i campi Decisioni di rendering o Ambiti decisionali nell'azione Invia evento. L'array propositions, in questo caso, sarà simile all'esempio seguente:

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

A questo punto, puoi eseguire il rendering del contenuto delle proposte come lo ritieni opportuno. In questo esempio, la proposta corrispondente all'ambito discount è una proposta HTML creata utilizzando il Compositore esperienza basato su moduli di Adobe Target. Si supponga di disporre di un elemento nella pagina con ID daily-special e di voler eseguire il rendering del contenuto della proposta discount nell'elemento daily-special. Effettua le seguenti operazioni:

  1. Estrarre le proposte dall'oggetto event.
  2. Eseguire un ciclo in ogni proposta, cercando la proposta con un ambito di discount.
  3. Se trovi una proposta, scorri ciclicamente ogni elemento della proposta, cercando l’elemento che è il contenuto HTML. (È meglio controllare che presumere.)
  4. Se trovi un elemento contenente contenuti HTML, individua l'elemento daily-special nella pagina e sostituisci il relativo HTML con il contenuto personalizzato.

Il codice personalizzato all'interno dell'azione Codice personalizzato potrebbe essere visualizzato come segue:

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

Accesso ai token di risposta di Adobe Target

Il contenuto Personalization restituito da Adobe Target include token di risposta, ovvero dettagli su attività, offerta, esperienza, profilo utente, informazioni geografiche e altro ancora. Questi dettagli possono essere condivisi con strumenti di terze parti o utilizzati per il debug. I token di risposta possono essere configurati nell’interfaccia utente di Adobe Target.

Nell’azione Codice personalizzato, inclusa nella regola per la gestione dei dati di risposta, puoi accedere alle proposte di personalizzazione restituite dal server. A tale scopo, digita il seguente codice personalizzato:

var propositions = event.propositions;

Se event.propositions esiste, si tratta di un array contenente oggetti di proposta di personalizzazione. Per ulteriori informazioni sul contenuto di result.propositions, vedere Eseguire manualmente il rendering del contenuto personalizzato.

Supponiamo di voler raccogliere tutti i nomi delle attività da tutte le proposte di cui è stato eseguito il rendering automatico dall’SDK web e inviarli in un singolo array. È quindi possibile inviare il singolo array a una terza parte. In questo caso, scrivere il codice personalizzato nell'azione Codice personalizzato in:

  1. Estrarre le proposte dall'oggetto event.
  2. Eseguire un ciclo tra le proposte.
  3. Determina se l’SDK ha eseguito il rendering della proposta.
  4. In tal caso, scorri ciclicamente ogni elemento della proposta.
  5. Recuperare il nome dell'attività dalla proprietà meta, che è un oggetto contenente token di risposta.
  6. Invia il nome dell’attività a un array.
  7. Invia i nomi delle attività a una terza parte.
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