Contexte dans les modules d’extension Edge
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);
xdmdatarequest
À ne pas confondre avec une requête de l’appareil 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 le débogueur Adobe Experience Platform lorsque vous accédez à Launch et sélectionnez l’onglet Edge Trace.
ruleStash 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.
Utilitaires
La propriété utils représente un objet qui fournit des utilitaires spécifiques à l’exécution des balises.
logger
Lʼutilitaire logger vous permet de consigner les messages qui sʼafficheront pendant les sessions de débogage lors de lʼutilisation dʼAdobe Experience Platform Debugger.
context.utils.logger.error('Error!');
Le journal utilise les méthodes suivantes dans lesquelles message est le message que vous voulez enregistrer :
log(message)info(message)warn(message)error(message)debug(message)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 d’exécution des balises.
logger.log(context.utils.getBuildInfo().turbineBuildDate);
L’objet contient les valeurs suivantes :
turbineVersionturbineBuildDatebuildDateenvironmentdevelopment, 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 :
idname