Contexte dans les modules d’extension Edge

REMARQUE

Adobe Experience Platform Launch devient une suite de technologies destinées à la collecte de données dans Experience Platform. Ces modifications seront appliquées à l’ensemble de la documentation du produit au cours des prochaines semaines. Reportez-vous au document suivant pour consulter une référence consolidée des modifications terminologiques.

Tous les modules de bibliothèque des extensions Edge reçoivent un objet context lorsqu’ils sont exécutés. Ce document couvre les propriétés fournies par l’objet context et le rôle qu’ils jouent dans les modules de bibliothèque.

Adobe Request Context (arc)

La propriété arc est un objet qui fournit des informations sur l’événement déclenchant la règle. Les sections ci-dessous couvrent les différentes sous-propriétés contenues dans cet objet.

event

L’objet event représente l’événement qui a déclenché la règle et contient les valeurs suivantes :

logger.log(context.arc.event);
Propriété Description
xdm Objet XDM de l’événement.
data Couche de données personnalisée.

request

À ne pas confondre avec une requête du périphérique client, request est un objet légèrement modifié qui provient d’Adobe Experience Platform Edge Network.

logger.log(context.arc.request)

L’objet request présente deux propriétés de niveau supérieur : body et head. La propriété body contient des informations sur le modèle de données d’expérience (XDM) et peut être inspectée dans Adobe Experience Platform Debugger lorsque vous accédez à Launch et sélectionnez l’onglet Edge Trace.

ruleStash

ruleStash est un objet qui collectera chaque résultat des modules d’action.

logger.log(context.arc.ruleStash);

Chaque extension a son propre espace de noms. Par exemple, si votre extension porte le nom send-beacon, tous les résultats des actions send-beacon seront stockés sur l’espace de noms ruleStash['send-beacon'].

L’espace de noms est unique pour chaque extension et a la valeur undefined au début.

L’espace de noms est remplacé par le résultat renvoyé par chaque action. Par exemple, considérez une extension transform contenant deux actions : generate-fullname et generate-fulladdress. Ces deux actions sont ensuite ajoutées à une règle.

Si le résultat de l’action generate-fullname est Firstname Lastname, l’ensemble de règles s’affiche comme suit une fois l’action terminée :

{
  transform: 'Firstname Lastname'
}

Si le résultat de l’action generate-address est 3900 Adobe Way, l’ensemble de règles s’affiche comme suit une fois l’action terminée :

{
  transform: '3900 Adobe Way'
}

Remarquez que « Firstname Lastname » n’existe plus dans l’ensemble de règles, parce que l’action generate-address l’a remplacé par une nouvelle valeur.

Si vous voulez que ruleStash stocke les résultats des deux actions dans l’espace de noms transform, vous pouvez écrire votre module d’action comme dans l’exemple suivant :

module.exports = (context) => {
  let transformRuleStash = context.arc.ruleStash.transform;

  if (!transformRuleStash) {
    transformRuleStash = {};
  }

  transformRuleStash.fullName = 'Firstname Lastname';

  return transformRuleStash;
}

La première fois que cette action est exécutée, ruleStash commence comme undefined et est donc initialisé en tant qu’objet vide. La prochaine fois que l’action sera exécutée, elle recevra ruleStash qui a été renvoyé lors de l’appel précédent de l’action. L’utilisation d’un objet en tant que ruleStash vous permet d’ajouter de nouvelles données sans perdre les données précédemment définies par d’autres actions de notre extension.

Lorsque vous utilisez cette stratégie, veillez à toujours renvoyer l’ensemble complet des règles d’extension utilisant cette stratégie. Si vous deviez renvoyer uniquement une valeur, elle remplacerait toutes les autres propriétés que vous avez définies.

Utilitaires

La propriété utils représente un objet qui fournit des utilitaires spécifiques au runtime Platform Launch.

logger

L’utilitaire logger vous permet de consigner les messages qui s’afficheront pendant les sessions de débogage lors de l’utilisation de Adobe Experience Cloud Debugger.

context.utils.logger.error('Error!');

Le journal utilise les méthodes suivantes dans lesquelles message est le message que vous voulez enregistrer :

Méthode Description
log(message) Consigne un message sur la console.
info(message) Consigne un message d’information dans la console.
warn(message) Consigne un message d’avertissement dans la console.
error(message) Consigne un message d’erreur dans la console.
debug(message) Consigne un message de débogage dans la console. Visible uniquement lorsque la journalisation verbose est activée dans la console du navigateur.

fetch

Cet utilitaire implémente l’interface API de récupération. Vous pouvez utiliser la fonction pour envoyer des requêtes à des points d’entrée tiers.

context.utils.fetch('http://example.com/movies.json')
  .then(response => response.json())

getBuildInfo

Cet utilitaire renvoie un objet contenant des informations sur la version actuelle de la bibliothèque de runtime Platform Launch.

logger.log(context.utils.getBuildInfo().turbineBuildDate);

L’objet contient les valeurs suivantes :

Propriété Description
turbineVersion Version de Turbine utilisée dans la bibliothèque actuelle.
turbineBuildDate Date ISO 8601 de création de la version de Turbine utilisée dans le conteneur.
buildDate Date ISO 8601 de la création de la bibliothèque actuelle.
environment Environnement pour lequel cette bibliothèque a été créée. Les valeurs possibles sont les suivantes : development, staging et production.

Voici un exemple d’objet getBuildInfo pour démontrer les valeurs qu’il renvoie :

{
  turbineVersion: "1.0.0",
  turbineBuildDate: "2016-07-01T18:10:34Z",
  buildDate: "2016-03-30T16:27:10Z",
  environment: "development"
}

getExtensionSettings

Cette utilitaire renvoie l’objet settings qui a été enregistré pour la dernière fois à partir de la vue configuration de l’extension.

logger.log(context.utils.getExtensionSettings());

getSettings

Cet utilitaire renvoie l’objet settings qui a été enregistré pour la dernière fois à partir de la vue de module de bibliothèque correspondante.

logger.log(context.utils.getSettings());

getRule

Cet utilitaire renvoie un objet contenant des informations sur la règle qui déclenche le module.

logger.log(context.utils.getRule());

L’objet contient les valeurs suivantes :

Propriété Description
id Identifiant de règle.
name Nom de la règle.

Sur cette page