[ 
https://issues.apache.org/jira/browse/UNOMI-696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631681#comment-17631681
 ] 

Kevan Jahanshahi commented on UNOMI-696:
----------------------------------------

Now the control group are stored in the profile or session system properties, 
in the format:
{code:java}
{
  "systemProperties": {
    "personalizationStrategyStatus": [{
      "personalizationId": "40a6bca-348a-40c2-a00d-48c4346e8e2c",
      "inControlGroup": false,
      "timeStamp": "2022-11-08" 
    }]
  }
} {code}
This way we can persist personalization strategy status on profile or session 
in a generic way that could be reuse for other strategies than control groups.

The control group will also be returned in the personalization results in the 
context response, using this format:
Before:
{code:java}
{
  "personalizations": {
    "40a6bca-348a-40c2-a00d-48c4346e8e2c": ["variant_1_id", "variant_2_id"]
  }
} {code}
Now (We keep old syntax for retro-compatibility):
{code:java}
{
  "personalizations": {
    "40a6bca-348a-40c2-a00d-48c4346e8e2c": ["variant_1_id", "variant_2_id"]
  },
  "personalizationResults": {
    "40a6bca-348a-40c2-a00d-48c4346e8e2c": {
      "contentIds": ["variant_1_id", "variant_2_id"],
      "additionalResultInfos": {
        "inControlGroup": true
      }
    }
  }
} {code}
This way we can return additional informations related to the personalized 
results that will be useful for the client side.

> Store personalizationResolutions on profile and sessions
> --------------------------------------------------------
>
>                 Key: UNOMI-696
>                 URL: https://issues.apache.org/jira/browse/UNOMI-696
>             Project: Apache Unomi
>          Issue Type: New Feature
>            Reporter: romain.gauthier
>            Assignee: Kevan Jahanshahi
>            Priority: Major
>             Fix For: unomi-1.7.0, unomi-2.1.0
>
>
> Following https://issues.apache.org/jira/browse/UNOMI-690, it might be easier 
> and more consistent to store personalization resolutions on profile and 
> sessions, even when no control group is active. 
> - The current control group property needs to be renamed to 
> "personalizationResolutions" or "personalizationDecisions" and moved to a 
> system property
> - The information about the first personalization decision needs to be stored 
> on session and profile
> - If a control group is defined, the information about the control group 
> would be set only on the object where the control group is defined: session 
> OR profile. If the control group property doesnt exist inside the 
> personalization resolution for a session or a profile, it means either that 
> the control group was set on the other object or that no control group was 
> defined for the personalization



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to