Ändra standardmotorns beteende
Med kopplingar i interaktion kan du ändra standardmotorbeteendet.
Hokarna Target loading och Proposition post-processing är konfigurerade i Adobe Campaign i erbjudandeutrymmet:
Haken Dynamic offer har konfigurerats med erbjudandevikten i Adobe Campaign:
Inläsning av mål
Med den här kroken kan du utöka kontaktens profil (som lästes in av en fråga som inte är installerad) med ytterligare data från ett externt system.
Data som samlas in måste infogas i anropsdatanoden (interaktionsnod). Integratorn måste ha utökat anropsdataramodellen i förväg för att definiera strukturen för insamlade data. Användaren kan komma åt dessa data på samma sätt som för vanliga samtalsdata (enligt reglerna för behörighet och personaliseringsnivå).
Indataparametrar:
- xmlInteraction (xml-typ): Interaktionsnod
- aTargetId (tabelltyp): målidentifierare
- sUuid230 (strängtyp): värde för den permanenta cookien uid230
- sNlid (strängtyp): värdet för den nlid-sessionscookien
Returparametrar:
- anrikad interaktionsnod (den första parametern i den här kroken)
Exempel:
// Call an external system to get additional data for the target
var additionalData = getUrl("https://EXTERNAL_SYSTEM?target=" + encodeURIComponent(aTargetId.join("|")));
// Enrich the context with this data
interaction.@additionalData = additionalData;
Föreslå efterbehandling
Med den här funktionen kan du kontrollera konsekvens och kompatibilitet för giltiga förslag i en viss interaktion. Här kan du också definiera en ny funktion för beräkning av poäng eller sannolikhet.
Exempel på användning av konsistensregler:
- Begränsa antalet offerter i samma samtal, länkat till samma produkt eller samma kategori.
- Presentera endast erbjudanden relaterade till en produkt i samma interaktion.
Efterbearbetningen utförs efter typologiregeltillämpningen och den stödberättigande förslagssorteringen, och före prioriteringssteget.
Indataparametrar:
-
Förslag: tabell över giltiga förslag. Här är ett exempel på strukturen för ett element i den här tabellen
{ offer_id:1234, weight:2}
-
dicOffer (xml-typ): ordlista med alla attribut för giltiga erbjudanden (erbjudandekod, kategori-ID, kategorins fullständiga namn, startdatum, slutdatum, etikett, internt namn, erbjudande-ID, ytterligare erbjudandefält). Till exempel
{ "1242": <offer category-id="61242" categoryFullName="/FULL/PATH/TO/CATEGORY/" code="CODE" endDate="" id="62473" label="LABEL" name="OFR38_OE4" product-id="43" startDate=""/>, "1243": ...}
-
xmlTarget (xml-typ): profildatanod
-
xmlInteraction (xml-typ): anropsdatanod
-
iPropNumber (heltalstyp): antal förväntade erbjudanden
Returparametrar:
- lista över ändrade förslag (krokens första parameter)
- modifierad interaktionsnod
Exempel:
var aReturnedProps = [];
if( aProposition.length > 0 )
{
var iReturnedProps = 0;
for( var iPropIdx = 0; iPropIdx < aProposition.length && iReturnedProps < iPropNumber; iPropIdx ++ )
{
// Check a consistency rule for instance
if( true )
{
aReturnedProps.push(aProposition[iPropIdx]);
iReturnedProps++;
}
}
}
return aReturnedProps;
Dynamiskt erbjudande
Med den här funktionen kan du ringa ett samtal till en extern motor för att välja en lista över produkter som är kopplade till ett erbjudande. Det konfigureras i erbjudandet efter berättiganderegler och före typologiregelprogrammet.
I förväg ska integratören utöka förslagsschemat PropositionRcp med ytterligare information om produkten. Om du vill ange var dessa data ska lagras finns en Proposition being processed-länk på fliken Storage i utrymmet
Indataparametrar:
- xmlOffer (xml-typ): offer (erbjudandekod, kategori-ID, kategorins fullständiga namn, startdatum, slutdatum, etikett, internt namn, erbjudandeID, ytterligare erbjudandefält)
- Vikt: sammanhangsberoende vikt (dubbeltyp)
- xmlTarget (xml-typ): profildatanod
- xmlInteraction (xml-typ): anropsdatanod
Returparametrar:
En tabell med förslag som ska genereras returneras. Varje element i denna tabell består av följande information:
- erbjudandeidentifierare
- ytterligare produktdata (t.ex. produktkod)
- vikt
Exempel:
var product = getUrl("https://EXTERNAL_SYSTEM?offerCode=" + encodeURIComponent(xmlOffer.@code));
if( product )
return [{offer_id: parseInt(String(xmlOffer.@id)), weight: dWeight, productId: product}];