Rankningsformler create-ranking-formulas
Om rankningsformler about-ranking-formulas
Rankningsformler gör det möjligt att 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 erbjuda 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 urval av erbjudanden i beslut.
Skapa en rankningsformel create-ranking-formula
Så här skapar du en rankningsformel:
-
Öppna Components väljer du Ranking -fliken. The Formulas -fliken är markerad som standard. Listan med formler som skapats tidigare visas.
-
Klicka Create ranking för att skapa en ny rankningsformel.
-
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 contextData.west=hot har skickats 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. -
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 contextData.weather=hot
har skickats in i beslutsanropet, prioriteten för alla erbjudanden med attribute=hot
måste förstärkas.
Rankningsformel:
if (@event{_xdm.context.additionalParameters;version=1}.weather.isNotNull()
and offer.characteristics.get("weather")=@event{_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ärandetext:
"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 instansen tenant _salesvelocity och profilschemat innehåller ett intervall med bakgrundsmusik som lagras 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 som ska vara lika med kunderna propensityScore för 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)