You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@unomi.apache.org by jk...@apache.org on 2022/11/10 15:53:48 UTC

[unomi-tracker] branch refacto-control-group-usage updated: UNOMI-713: update control group usage by using new personalizationResults

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 <ke...@jahia.com>
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]);
+                        }
                     }
                 }
             }