Creare formule di classificazione

Informazioni sulla classificazione delle formule

Classificazione delle formule ti consente di definire regole che determinano quale offerta deve essere presentata per prima per un determinato posizionamento, anziché tenere conto dei punteggi di priorità delle offerte.

Le formule di classificazione sono espresse in Sintassi PQL e può sfruttare gli attributi del profilo, i dati contestuali e gli attributi dell’offerta. Per ulteriori informazioni su come utilizzare la sintassi PQL, consulta documentazione dedicata.

Una volta creata una formula di classificazione, puoi assegnarla a un posizionamento in una decisione. Per ulteriori informazioni, consulta Configurare la selezione delle offerte nelle decisioni.

Creare una formula di classificazione

Per creare una formula di classificazione, segui i passaggi seguenti:

  1. Accedere al Components quindi seleziona il Rankings scheda . Viene visualizzato l’elenco delle classificazioni create in precedenza.

  2. Fai clic su Create ranking per creare una nuova formula di classificazione.

  3. Specificare il nome, la descrizione e la formula della formula di classificazione.

    In questo esempio, vogliamo aumentare la priorità di tutte le offerte con l’attributo "caldo" se il tempo effettivo è caldo. Per eseguire questa operazione, contextData.weather=hot è stato passato nella chiamata decisionale.

  4. Fai clic su Save. La formula di classificazione viene creata, è possibile selezionarla dall'elenco per ottenere i dettagli e modificarla o eliminarla.

    È ora pronto per essere utilizzato in una decisione per classificare le offerte idonee per un posizionamento (vedi Configurare la selezione delle offerte nelle decisioni).

Esempi di formule di classificazione

Puoi creare diverse formule di classificazione in base alle tue esigenze. Di seguito sono riportati alcuni esempi.

Incrementa le offerte con determinati attributi di offerta basati sull’attributo di profilo

Se il profilo vive nella città corrispondente all’offerta, raddoppia la priorità per tutte le offerte della città.

Formula di classificazione:

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

Incrementa le offerte in cui la data di fine è inferiore a 24 ore da ora

Formula di classificazione:

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

Incrementa le offerte con alcuni attributi di offerta in base ai dati contestuali

Incrementa alcune offerte in base ai dati contestuali passati nella chiamata decisionale. Ad esempio, se contextData.weather=hot viene passato nella chiamata decisionale, la priorità di tutte le offerte con attribute=hot devono essere potenziati.

Formula di classificazione:

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)

Tieni presente che quando utilizzi l’API decisionale, i dati contestuali vengono aggiunti all’elemento profilo nel corpo della richiesta, come nell’esempio seguente.

Frammento dal corpo della richiesta:

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

Migliora le offerte in base alla propensione dei clienti ad acquistare il prodotto offerto

Se abbiamo 2 istanze di CustomerAI calcolo della propensione all'acquisto travelInsurance e extraBaggage per una compagnia aerea, la seguente formula di classificazione aumenterà la priorità (di 50 punti) dell'offerta specifica per l'assicurazione o il bagaglio se il punteggio di propensione del cliente per l'acquisto di quel prodotto è superiore a 90.

Tuttavia, perché CustomerAI l’istanza crea un proprio oggetto all’interno dello schema di profilo unificato; non è possibile selezionare in modo dinamico il punteggio in base al tipo di propensione dell’offerta. Così devi catena il if istruzioni per controllare innanzitutto il tipo di propensione dell’offerta, quindi estrarre il punteggio dal campo di profilo appropriato.

Formula di classificazione:

if ( offer.characteristics.propensityType = "extraBaggagePropensity" and _salesvelocity.CustomerAI.extraBaggagePropensity.score > 90, offer.rank.priority + 50,
    (
        if ( offer.characteristics.propensityType = "travelInsurancePropensity" and _salesvelocity.CustomerAI.insurancePropensity.score > 90, offer.rank.priority + 50, offer.rank.priority )
    )
)

Una soluzione migliore è quella di memorizzare i punteggi in un array del profilo. L’esempio seguente funziona su una varietà di diversi punteggi di propensione utilizzando solo una semplice formula di classificazione. Ci si aspetta che tu disponga di uno schema di profilo con un array di punteggi. In questo esempio, il tenant dell’istanza è _velocità di vendita e lo schema del profilo contiene quanto segue:

In questo caso, per un profilo come:

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

Le offerte conterrebbero un attributo per propensityType che corrisponde alla categoria dei punteggi:

La formula di classificazione può quindi impostare la priorità di ogni offerta in modo che sia uguale ai clienti propensityScore per propensityType. Se non viene trovato alcun punteggio, utilizza la priorità statica impostata nell’offerta:

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)

In questa pagina