Types d’événements

Cette page décrit les types d’événements Adobe Experience Platform fournis par l’extension de balise du SDK Web de Adobe Experience Platform. Ils sont utilisés pour règles de création et ne doit pas être confondu avec la variable eventType champ dans XDM.

Envoyer l’événement terminé

En règle générale, votre propriété comporte une ou plusieurs règles utilisant la variable Envoyer un événement action pour envoyer des événements à Adobe Experience Platform Edge Network. Chaque fois qu’un événement est envoyé à Edge Network, une réponse est renvoyée au navigateur avec des données utiles. Sans le Envoyer l’événement terminé type d’événement , vous n’auriez pas accès à ces données renvoyées.

Pour accéder aux données renvoyées, créez une règle distincte, puis ajoutez une Envoyer l’événement terminé à la règle. Cette règle est déclenchée chaque fois qu’une réponse réussie est reçue du serveur suite à une Envoyer un événement action.

Lorsqu’une Envoyer l’événement terminé déclenche une règle, il fournit les données renvoyées par le serveur qui peuvent s’avérer utiles pour accomplir certaines tâches. En règle générale, vous ajouterez une Code personnalisé (de l’objet Core ) à la même règle que celle qui contient la variable Envoyer l’événement terminé . Dans le Code personnalisé , votre code personnalisé aura accès à une variable nommée event. Ceci event contient les données renvoyées par le serveur.

Votre règle de gestion des données renvoyées par Edge Network peut ressembler à ceci :

Vous trouverez ci-dessous quelques exemples d’exécution de certaines tâches à l’aide de la fonction Code personnalisé dans cette règle.

Rendu manuel du contenu personnalisé

Dans l’action Custom Code (Code personnalisé) de la règle pour le traitement des données de réponse, vous pouvez accéder aux propositions de personnalisation renvoyées par le serveur. Pour ce faire, saisissez le code personnalisé suivant :

var propositions = event.propositions;

If event.propositions existe, il s’agit d’un tableau contenant des objets de proposition de personnalisation. Les propositions incluses dans le tableau sont déterminées, en grande partie, par la manière dont l’événement a été envoyé au serveur.

Pour ce premier scénario, supposons que vous n’ayez pas coché la variable Rendu des décisions , mais n’ont fourni aucun portées de décision à l’intérieur de Envoyer un événement action responsable de l’envoi de l’événement.

img.png

Dans cet exemple, la variable propositions contient uniquement les propositions relatives à l’événement qui peuvent faire l’objet d’un rendu automatique.

Le propositions tableau peut ressembler à cet exemple :

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

Lors de l’envoi de l’événement, la variable Rendu des décisions n’étant pas cochée, le SDK n’a pas tenté d’afficher automatiquement le contenu. Cependant, le SDK a toujours récupéré automatiquement le contenu éligible au rendu automatique et vous a fourni un rendu manuel si vous le souhaitez. Notez que chaque objet de proposition a son renderAttempted définie sur false.

Si vous avez plutôt coché la variable Rendu des décisions lors de l’envoi de l’événement, le SDK aurait tenté d’effectuer le rendu de toutes les propositions éligibles pour le rendu automatique. Par conséquent, chaque objet de proposition aurait sa renderAttempted définie sur true. Dans ce cas, il n’est pas nécessaire d’effectuer le rendu manuel de ces propositions.

Jusqu’à présent, vous n’avez examiné que le contenu de personnalisation éligible au rendu automatique (par exemple, tout contenu créé dans le compositeur d’expérience visuelle Adobe Target). Pour récupérer un contenu de personnalisation not éligible au rendu automatique, demandez le contenu en fournissant des portées de décision à l’aide de la variable Portées de décision dans le champ Envoyer un événement action. Une portée est une chaîne qui identifie une proposition particulière que vous souhaitez récupérer du serveur.

Le Envoyer un événement L’action se présenterait comme suit :

img.png

Dans cet exemple, si des propositions sont trouvées sur le serveur correspondant au salutation ou discount , elles sont renvoyées et incluses dans la variable propositions tableau. Gardez à l’esprit que les propositions admissibles au rendu automatique continueront à être incluses dans la variable propositions , quelle que soit la manière dont vous configurez la variable Rendu des décisions ou Portées de décision dans le champ Envoyer un événement action. Le propositions dans ce cas, le tableau ressemble à l’exemple suivant :

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

À ce stade, vous pouvez générer le contenu des propositions à votre gré. Dans cet exemple, la proposition correspondant au discount scope est une proposition de HTML créée à l’aide du compositeur d’expérience d’après les formulaires Adobe Target. Supposons que votre page comporte un élément avec l’identifiant de daily-special et souhaitez effectuer le rendu du contenu à partir du discount dans la daily-special élément . Procédez comme suit :

  1. Extraire les propositions des event .
  2. Parcourez chaque proposition, en recherchant la proposition avec un périmètre de discount.
  3. Si vous trouvez une proposition, passez en boucle chaque élément de la proposition, recherchant l’élément qui est le contenu HTML. (Mieux vaut vérifier que supposer.)
  4. Si vous trouvez un élément contenant du contenu de HTML, recherchez la variable daily-special sur la page et remplacez son HTML par le contenu personnalisé.

Votre code personnalisé dans le Code personnalisé peut se présenter comme suit :

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

Accès aux jetons de réponse Adobe Target

Le contenu de personnalisation renvoyé par Adobe Target inclut jetons de réponse, qui sont des détails sur l’activité, l’offre, l’expérience, le profil utilisateur, les informations géographiques, etc. Ces détails peuvent être partagés avec des outils tiers ou utilisés pour le débogage. Les jetons de réponse peuvent être configurés dans l’interface utilisateur d’Adobe Target.

Dans l’action Custom Code (Code personnalisé) de la règle pour le traitement des données de réponse, vous pouvez accéder aux propositions de personnalisation renvoyées par le serveur. Pour ce faire, saisissez le code personnalisé suivant :

var propositions = event.propositions;

If event.propositions existe, il s’agit d’un tableau contenant des objets de proposition de personnalisation. Voir Rendu manuel du contenu personnalisé pour plus d’informations sur le contenu de result.propositions.

Supposons que vous souhaitiez rassembler tous les noms d’activité de toutes les propositions automatiquement générées par le SDK web et les pousser dans un seul tableau. Vous pouvez ensuite envoyer le tableau unique à un tiers. Dans ce cas, écrivez du code personnalisé dans le Code personnalisé Action vers :

  1. Extraire les propositions des event .
  2. Passez en revue chaque proposition.
  3. Déterminez si le SDK a rendu la proposition.
  4. Si tel est le cas, passez en boucle chaque élément de la proposition.
  5. Récupérez le nom de l’activité à partir du meta , qui est un objet contenant des jetons de réponse.
  6. Envoyez le nom de l’activité dans un tableau.
  7. Envoyez les noms des activités à un tiers.
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.
}

Sur cette page