Rankningsformler create-ranking-formulas

Om rankningsformler about-ranking-formulas

Rankningsformler gör att du kan definiera regler som avgör vilket erbjudande som ska presenteras först för en viss placering, i stället för att ta hänsyn till offertens prioritetspoäng.

Rankningsformler uttrycks i PQL-syntax och kan utnyttja profilattribut, kontextdata och attribut. Mer information om hur du använder PQL-syntaxen finns i dedikerad dokumentation.

När en rankningsformel har skapats kan du tilldela den till en placering i ett beslut. Mer information finns i Konfigurera erbjudandeval i beslut.

Skapa en rankningsformel create-ranking-formula

Så här skapar du en rankningsformel:

  1. Gå till menyn Components och välj fliken Ranking. Fliken Formulas är markerad som standard. Listan med formler som skapats tidigare visas.

  2. Klicka på Create ranking om du vill skapa en ny rankningsformel.

  3. Ange formelnamn, beskrivning och formel.

    I det här exemplet vill vi prioritera alla erbjudanden med attributet"hot" om vädret är varmt. För att göra detta skickades contextData.wall=hot i beslutsanropet.

    note important
    IMPORTANT
    När du skapar en rankningsformel stöds inte möjligheten att gå tillbaka till en tidigare tidsperiod. Om du till exempel anger en upplevelsehändelse som inträffade under den sista månaden som en komponent i formeln. Alla försök att inkludera en uppslagsperiod när formeln skapas kommer att utlösa ett fel när den sparas.
  4. Klicka på Save. Din rankningsformel skapas. Du kan välja den i listan för att få information och redigera eller ta bort den.

    Det är nu klart att användas i ett beslut om att rangordna kvalificerade erbjudanden för en placering (se Konfigurera urval av erbjudanden i beslut).

Exempel på rankningsformler ranking-formula-examples

Du kan skapa många olika rankningsformler efter behov. Nedan finns några exempel.

Öka erbjudanden med vissa attribut baserade på profilattribut

Om profilen finns i den stad som motsvarar erbjudandet fördubblas prioriteten för alla erbjudanden i den staden.

Rankningsformel:

if( offer.characteristics.get("city") = homeAddress.city, offer.rank.priority * 2, offer.rank.priority)

Förbättra erbjudanden där slutdatumet är mindre än 24 timmar från och med nu

Rankningsformel:

if( offer.selectionConstraint.endDate occurs <= 24 hours after now, offer.rank.priority * 3, offer.rank.priority)

Förbättra erbjudanden med vissa attribut baserade på kontextdata

Öka vissa erbjudanden baserat på de kontextdata som skickas i beslutsanropet. Om till exempel contextData.weather=hot skickas i beslutsanropet måste prioriteten för alla erbjudanden med attribute=hot ökas.

Rankningsformel:

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)

Observera att när du använder API:t för beslutsfattande läggs kontextdata till i elementet profile i begärandebrödtexten, som i exemplet nedan.

Fragment från begärandeinnehåll:

"xdm:profiles": [
{
    "xdm:identityMap": {
        "crmid": [
            {
            "xdm:id": "CRMID1"
            }
        ]
    },
    "xdm:contextData": [
        {
            "@type":"_xdm.context.additionalParameters;version=1",
            "xdm:data":{
                "xdm:weather":"hot"
            }
        }
    ]
 }],

Öka erbjudandena baserat på kundernas benägenhet att köpa den produkt som erbjuds

Ni kan höja poängen för ett erbjudande baserat på kundens benägenhetspoäng.

I det här exemplet är instanstenanten _salesvelocity och profilschemat innehåller ett intervall med poäng lagrade i en array:

Med detta i åtanke för en profil som:

{"_salesvelocity": {"individualScoring": [
                    {"core": {
                            "category":"insurance",
                            "propensityScore": 96.9
                        }},
                    {"core": {
                            "category":"personalLoan",
                            "propensityScore": 45.3
                        }},
                    {"core": {
                            "category":"creditCard",
                            "propensityScore": 78.1
                        }}
                    ]}
}

Erbjudandena skulle innehålla ett attribut för propensityType som matchar kategorin från poängen:

Din rankningsformel kan sedan ange prioriteten för varje erbjudande till lika med kunderna propensityScore för den propensityType. Om ingen poäng hittas, använd den statiska prioriteten som angetts i erbjudandet:

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)
recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76