Formules de classement create-ranking-formulas
À propos des formules de classement about-ranking-formulas
Les formules de classement vous permettent de définir des règles déterminant quelle offre doit être présentée en premier pour un emplacement donné au lieu de prendre en compte les scores de priorité des offres.
Les formules de classement sont exprimées en syntaxe PQL et peuvent exploiter les attributs de profil, les données contextuelles et les attributs d'offre. Pour plus d'informations sur l'utilisation de la syntaxe PQL, reportez-vous à la documentation dédiée.
Après avoir créé une formule de classement, vous pouvez l’affecter à un emplacement dans une décision. Voir à ce propos la section Configurer la sélection des offres dans les décisions.
Création d'une formule de classement create-ranking-formula
Pour créer une formule de classement, procédez comme suit :
-
Accédez au menu Composants, puis sélectionnez l’onglet Classement. L’onglet Formules est sélectionné par défaut. La liste des formules créées précédemment s’affiche.
-
Cliquez sur Créer un classement pour créer une formule de classement.
-
Indiquez le nom, la description et la formule de la formule de classement.
Dans cet exemple, nous voulons augmenter la priorité de toutes les offres contenant l'attribut « chaud » en cas de météo avec températures chaudes. Pour ce faire, contextData.weather=hot a été transmis dans l'appel de décision.
note important IMPORTANT Lors de la création d’une formule de classement, la recherche dans une période précédente n’est pas prise en charge. Par exemple, si vous spécifiez un événement d’expérience qui s’est produit au cours du dernier mois en tant que composant de la formule. Toute tentative d’inclusion d’une période de recherche arrière lors de la création d’une formule déclenche une erreur lors de son enregistrement. -
Cliquez sur Enregistrer. Votre formule de classement est créée. Vous pouvez la sélectionner dans la liste pour obtenir des détails et la modifier ou la supprimer.
Elle est maintenant prête à être utilisée dans une décision pour classer les offres éligibles à un emplacement (voir Configurer la sélection des offres dans les décisions).
Exemples de formules de classement ranking-formula-examples
Vous pouvez créer de nombreuses formules de classement différentes en fonction de vos besoins. Voici quelques exemples.
Booster les offres avec un attribut d’offre spécifique basé sur l’attribut de profil
Si le profil réside dans la ville correspondant à l’offre, doublez la priorité de toutes les offres de cette ville.
Formule de classement:
if( offer.characteristics.get("city") = homeAddress.city, offer.rank.priority * 2, offer.rank.priority)
Booster les offres pour lesquelles la date de fin est inférieure à 24 heures
Formule de classement:
if( offer.selectionConstraint.endDate occurs <= 24 hours after now, offer.rank.priority * 3, offer.rank.priority)
Booster les offres avec un attribut d’offre spécifique basé sur les données contextuelles
Boostez certaines offres en fonction des données contextuelles transmises dans l’appel de prise de décision. Par exemple, si la valeur contextData.weather=hot
est transmise dans l’appel de prise de décision, la priorité de toutes les offres avec la valeur attribute=hot
doit être augmentée.
Formule de classement:
if (@{_xdm.context.additionalParameters;version=1}.weather.isNotNull()
and offer.characteristics.get("weather")=@{_xdm.context.additionalParameters;version=1}.weather, offer.rank.priority + 5, offer.rank.priority)
Notez que lorsque vous utilisez l’API de prise de décision, les données contextuelles sont ajoutées à l’élément de profil dans le corps de la requête, comme dans l’exemple ci-dessous.
Extrait de code du corps de la requête :
"xdm:profiles": [
{
"xdm:identityMap": {
"crmid": [
{
"xdm:id": "CRMID1"
}
]
},
"xdm:contextData": [
{
"@type":"_xdm.context.additionalParameters;version=1",
"xdm:data":{
"xdm:weather":"hot"
}
}
]
}],
Booster les offres en fonction de la propension des clients à acheter le produit proposé
Vous pouvez augmenter le score d’une offre en fonction d’un score de propension du client.
Dans cet exemple, le client d’instance est _salesvelocity et le schéma de profil contient une plage de scores stockés dans un tableau :
Ainsi, pour un profil tel que :
{"_salesvelocity": {"individualScoring": [
{"core": {
"category":"insurance",
"propensityScore": 96.9
}},
{"core": {
"category":"personalLoan",
"propensityScore": 45.3
}},
{"core": {
"category":"creditCard",
"propensityScore": 78.1
}}
]}
}
Les offres contiennent un attribut pour propensionType correspondant à la catégorie des scores :
Votre formule de classement peut alors définir la priorité de chaque offre pour qu’elle soit égale aux clients propensionScore pour ce propensionType. Si aucun score n’est trouvé, utilisez la priorité statique définie sur l’offre :
let score = (select _Individual_Scoring1 from _salesvelocity.individualScoring
where _Individual_Scoring1.core.category.equals(offer.characteristics.get("propensityType"), false)).head().core.propensityScore
in if(score.isNotNull(), score, offer.rank.priority)