Formules de classement

À propos des formules de classement

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

Pour créer une formule de classement, procédez comme suit :

  1. 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.

  2. Cliquez sur Créer un classement pour créer une formule de classement.

  3. 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.

  4. 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

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.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.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.propensityType, false)).head().core.propensityScore
in if(score.isNotNull(), score, offer.rank.priority)

Sur cette page