Modifier le comportement standard du moteur hooks

Les points d'extension (hooks) permettent de modifier le comportement standard du moteur.

Les points d'extension Chargement de la cible et Post-traitement des propositions sont configurés, dans Adobe Campaign, au niveau de l'emplacement :

Le point d'extension Offre dynamique est configuré, dans Adobe Campaign, au niveau du poids de l'offre :

Chargement de la cible target-loading

Ce point d'extension permet d'enrichir le profil du contact (qui a été chargé par la requête d'usine) avec des données additionnelles provenant d'un système externe.

Les données collectées doivent être insérées dans le nœud des données d'appel (noeud Interaction). L'intégrateur doit, au préalable, avoir étendu le schéma des données d'appel pour définir la structure des données collectées. L'utilisateur peut accéder à ces données de la même façon que pour des données d'appel standard (au niveau des règles d'éligibilité et au niveau de la personnalisation).

Paramètres d'entrée:

  • xmlInteraction (type xml) : noeud Interaction
  • aTargetId (type tableau) : identifiant de la cible
  • sUuid230 (type chaîne) : valeur du cookie permanent uuid230
  • sNlid (type chaîne) : valeur du cookie de session nlid

Paramètres de retour :

  • noeud Interaction enrichi (premier paramètre du point d'extension)
NOTE
Le paramètre xmlInteraction contient à la fois les données d'appel et le profil du contact qui a été chargé par la requête d'usine.

Exemple:

// Call an external system to get additional data for the target
  var additionalData  = getUrl("https://EXTERNAL_SYSTEM?target=" + encodeURIComponent(aTargetId.join("|")));
  // Enrich the context with this data
  interaction.@additionalData = additionalData;

Post-traitement des propositions proposition-post-processing-

Ce point d'extension permet de vérifier la cohérence et la compatibilité des propositions éligibles au sein d'une même interaction. Il permet également de définir une nouvelle fonction de calcul d'un score ou d'une probabilité.

Exemple d'utilisation des règles de cohérence :

  • Limiter le nombre de propositions, au sein d'un même appel, associées à un même produit ou une même catégorie.
  • Proposer uniquement les offres relatives à un produit dans une même interaction.

Le post-traitement est exécuté après l'application des règles de typologie et le tri des propositions éligibles, et avant l'étape de priorisation.

Paramètres d'entrée:

  • aProposition : tableau des propositions éligibles. Voici un exemple de structure d'un élément de ce tableau :

    code language-none
    { offer_id:1234,
      weight:2}
    
  • dicOffer (type xml) : dictionnaire de tous les attributs des offres éligibles (code de l'offre, identifiant de la catégorie, nom complet de la catégorie, date de début, date de fin, libellé, nom interne, identifiant de l'offre, champs additionnels de l'offre). Exemple :

    code language-none
    { "1242": <offer category-id="61242" categoryFullName="/FULL/PATH/TO/CATEGORY/" code="CODE" endDate="" id="62473" label="LABEL" name="OFR38_OE4" product-id="43" startDate=""/>,
      "1243": ...}
    
  • xmlTarget : noeud des données de profil (type xml)

  • xmlInteraction : noeud des données d'appel (type xml)

  • iPropNumber : nombre d'offres attendues (type entier)

Paramètres de retour :

  • liste des propositions modifiée (premier paramètre du point d'extension)
  • noeud Interaction modifié

Exemple:

var aReturnedProps = [];

if( aProposition.length > 0 )
{
  var iReturnedProps = 0;
  for( var iPropIdx = 0; iPropIdx < aProposition.length && iReturnedProps < iPropNumber; iPropIdx ++ )
  {
    // Check a consistency rule for instance
    if( true )
    {
      aReturnedProps.push(aProposition[iPropIdx]);
      iReturnedProps++;
    }
  }
}

return aReturnedProps;

Offre dynamique dynamic-offer

Ce point d'extension permet d'appeler un moteur externe pour sélectionner une liste de produits associés à une offre. L'exécution s'effectue dans l'offre après l'application des règles d'éligibilité, et avant l'application des règles de typologie.

L’intégrateur doit au préalable étendre les propositions. PropositionRcp schéma avec les informations supplémentaires sur le produit. Pour indiquer où ces données seront stockées, une Proposition en traitement est disponible dans la variable Stockage de l’espace

Paramètres d'entrée:

  • xmlOffer (type xml) : offre (code de l'offre, identifiant de la catégorie, nom complet de la catégorie, date de début, date de fin, libellé, nom interne, identifiant de l'offre, champs additionnels de l'offre)
  • dWeight : poids du contexte (type double)
  • xmlTarget : noeud des données de profil (type xml)
  • xmlInteraction : noeud des données d'appel (type xml)

Paramètres de retour :

Un tableau des propositions à générer est retourné. Chaque élément de ce tableau est composé des informations suivantes :

  • identifiant de l'offre
  • données additionnelles du produit (par exemple, code produit)
  • poids
NOTE
Le système vérifie que l'identifiant de l'offre est le même en entrée et en sortie.

Exemple:

var product = getUrl("https://EXTERNAL_SYSTEM?offerCode=" + encodeURIComponent(xmlOffer.@code));
if( product )
  return [{offer_id: parseInt(String(xmlOffer.@id)), weight: dWeight, productId: product}];
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1