Fórmulas de clasificación le permite definir reglas que determinen qué oferta se debe presentar primero para una ubicación determinada, en lugar de tener en cuenta las puntuaciones de prioridad de las ofertas.
Las fórmulas de clasificación se expresan en Sintaxis PQL y pueden aprovechar atributos de perfil, datos de contexto y atributos de oferta. Para obtener más información sobre cómo utilizar la sintaxis PQL, consulte la documentación dedicada.
Una vez creada una fórmula de clasificación, puede asignarla a una ubicación en una decisión. Para obtener más información, consulte Configurar la selección de ofertas en decisiones.
Para crear una fórmula de clasificación, siga los pasos a continuación:
Acceda a la Componentes y, a continuación, seleccione la Clasificación pestaña. El Fórmulas está seleccionada de forma predeterminada. Se muestra la lista de fórmulas creadas anteriormente.
Clic Crear clasificación para crear una nueva fórmula de clasificación.
Especifique el nombre, la descripción y la fórmula de la fórmula.
En este ejemplo, queremos aumentar la prioridad de todas las ofertas con el atributo "hot" si el tiempo real es caluroso. Para ello, la variable contextData.weather=hot se pasó en la llamada de toma de decisiones.
Al crear una fórmula de clasificación, no se admite retroceder a un período de tiempo anterior. Por ejemplo, si especifica un evento de experiencia que se produjo durante el último mes como componente de la fórmula. Cualquier intento de incluir un período retroactivo durante la creación de la fórmula generará un déclencheur de error al guardarla.
Haga clic en Guardar. Cuando se crea la fórmula de clasificación, puede seleccionarla en la lista para obtener detalles y editarla o eliminarla.
Ahora está listo para utilizarse en una decisión para clasificar ofertas aptas para una ubicación (consulte Configuración de la selección de ofertas en decisiones).
Puede crear muchas fórmulas de clasificación diferentes según sus necesidades. A continuación se muestran algunos ejemplos.
Si el perfil vive en la ciudad correspondiente a la oferta, duplique la prioridad para todas las ofertas de esa ciudad.
Fórmula de clasificación:
if( offer.characteristics.get("city") = homeAddress.city, offer.rank.priority * 2, offer.rank.priority)
Fórmula de clasificación:
if( offer.selectionConstraint.endDate occurs <= 24 hours after now, offer.rank.priority * 3, offer.rank.priority)
Impulse determinadas ofertas en función de los datos de contexto que se pasan en la llamada de toma de decisiones. Por ejemplo, si la variable contextData.weather=hot
se pasa en la llamada de decisión, la prioridad de todas las ofertas con attribute=hot
debe ser potenciado.
Fórmula de clasificación:
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)
Tenga en cuenta que, al utilizar la API de decisiones, los datos de contexto se añaden al elemento de perfil en el cuerpo de la solicitud, como en el ejemplo siguiente.
Fragmento del cuerpo de la solicitud:
"xdm:profiles": [
{
"xdm:identityMap": {
"crmid": [
{
"xdm:id": "CRMID1"
}
]
},
"xdm:contextData": [
{
"@type":"_xdm.context.additionalParameters;version=1",
"xdm:data":{
"xdm:weather":"hot"
}
}
]
}],
Puede aumentar la puntuación de una oferta en función de una puntuación de tendencia del cliente.
En este ejemplo, el inquilino de instancia es _salesvelocity y el esquema de perfil contiene un rango de puntuaciones almacenadas en una matriz:
Teniendo en cuenta esto, para un perfil como:
{"_salesvelocity": {"individualScoring": [
{"core": {
"category":"insurance",
"propensityScore": 96.9
}},
{"core": {
"category":"personalLoan",
"propensityScore": 45.3
}},
{"core": {
"category":"creditCard",
"propensityScore": 78.1
}}
]}
}
Las ofertas contendrían un atributo para propensityType que coincide con la categoría de las puntuaciones:
La fórmula de clasificación puede establecer la prioridad de cada oferta para que sea igual a los clientes propensityScore por eso propensityType. Si no se encuentra ninguna puntuación, utilice la prioridad estática establecida en la oferta:
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)