This is an automated email from the ASF dual-hosted git repository.

jkevan pushed a commit to branch refacto-control-group-usage
in repository https://gitbox.apache.org/repos/asf/unomi-tracker.git


The following commit(s) were added to refs/heads/refacto-control-group-usage by 
this push:
     new 2cfcde4  UNOMI-713: update control group usage by using new 
personalizationResults
2cfcde4 is described below

commit 2cfcde49220e6dbd4fb4aece9297cda852887050
Author: Kevan <[email protected]>
AuthorDate: Thu Nov 10 16:53:36 2022 +0100

    UNOMI-713: update control group usage by using new personalizationResults
---
 src/apache-unomi-tracker.js | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/apache-unomi-tracker.js b/src/apache-unomi-tracker.js
index ac19f62..2515fcf 100644
--- a/src/apache-unomi-tracker.js
+++ b/src/apache-unomi-tracker.js
@@ -168,11 +168,11 @@ export const newTracker = () => {
          */
         registerPersonalizationObject: function (personalization, variants, 
ajax, resultCallback) {
             var target = personalization.id;
-            wem._registerPersonalizationCallback(personalization, function 
(result, advancedResult) {
+            wem._registerPersonalizationCallback(personalization, function 
(result, additionalResultInfos) {
                 var selectedFilter = null;
                 var successfulFilters = [];
 
-                var inControlGroup = advancedResult && 
advancedResult.additionalResultInfos && 
advancedResult.additionalResultInfos.inControlGroup;
+                var inControlGroup = additionalResultInfos && 
additionalResultInfos.inControlGroup;
                 // In case of control group Unomi is not resolving any 
strategy or fallback for us. So we have to do the fallback here.
                 if (inControlGroup && personalization.strategyOptions && 
personalization.strategyOptions.fallback) {
                     selectedFilter = 
variants[personalization.strategyOptions.fallback];
@@ -1141,10 +1141,14 @@ export const newTracker = () => {
 
                 if (wem.digitalData.personalizationCallback) {
                     for (var j = 0; j < 
wem.digitalData.personalizationCallback.length; j++) {
-                        wem.digitalData.personalizationCallback[j].callback(
-                            
wem.cxs.personalizations[wem.digitalData.personalizationCallback[j].personalization.id],
-                            wem.cxs.personalizationResults ? 
wem.cxs.personalizationResults[wem.digitalData.personalizationCallback[j].personalization.id]
 : undefined
-                        );
+                        if (wem.cxs.personalizationResults) {
+                            // Since Unomi 2.1.0 personalization results are 
available with more infos
+                            var personalizationResult = 
wem.cxs.personalizations[wem.digitalData.personalizationCallback[j].personalization.id];
+                            
wem.digitalData.personalizationCallback[j].callback(personalizationResult.contentIds,
 personalizationResult.additionalResultInfos);
+                        } else {
+                            // probably a version older than Unomi 2.1.0, 
fallback to old personalization results
+                            
wem.digitalData.personalizationCallback[j].callback(wem.cxs.personalizations[wem.digitalData.personalizationCallback[j].personalization.id]);
+                        }
                     }
                 }
             }

Reply via email to