feat: track recommendations group (#793)

This commit is contained in:
Zainab Amir
2023-03-28 14:29:14 +05:00
committed by GitHub
parent 575f195970
commit bf650e6d4c
3 changed files with 31 additions and 10 deletions

View File

@@ -30,9 +30,9 @@ import {
import { getAllPossibleQueryParams } from '../data/utils';
import FormFieldRenderer from '../field-renderer';
import {
activateRecommendationsExperiment,
activateRecommendationsExperiment, RECOMMENDATIONS_EXP_VARIATION, trackRecommendationViewedOptimizely,
} from '../recommendations/optimizelyExperiment';
import { trackRecommendationsViewed } from '../recommendations/track';
import { trackRecommendationsGroup, trackRecommendationsViewed } from '../recommendations/track';
import { saveUserProfile } from './data/actions';
import { welcomePageSelector } from './data/selectors';
import messages from './messages';
@@ -79,7 +79,11 @@ const ProgressiveProfiling = (props) => {
const queryParams = getAllPossibleQueryParams(registrationResponse.redirectUrl);
if (enablePersonalizedRecommendations && !('enrollment_action' in queryParams)) {
const userIdStr = authenticatedUser.userId.toString();
const showRecommendations = activateRecommendationsExperiment(userIdStr);
const variation = activateRecommendationsExperiment(userIdStr);
const showRecommendations = variation === RECOMMENDATIONS_EXP_VARIATION;
trackRecommendationsGroup(variation, authenticatedUser.userId);
trackRecommendationViewedOptimizely(authenticatedUser.userId);
setShowRecommendationsPage(showRecommendations);
if (!showRecommendations) {
trackRecommendationsViewed([], true, authenticatedUser.userId);

View File

@@ -14,13 +14,7 @@ export const eventNames = {
* @param {String} userId user id of authenticated user.
* @return {boolean} true if the user is in variation else false
*/
const activateRecommendationsExperiment = (userId) => {
const variation = optimizelyInstance.activate(
RECOMMENDATIONS_EXP_KEY,
userId,
);
return variation === RECOMMENDATIONS_EXP_VARIATION;
};
const activateRecommendationsExperiment = (userId) => optimizelyInstance.activate(RECOMMENDATIONS_EXP_KEY, userId);
/**
* Fire an optimizely track event for post registration recommended course card clicked.
@@ -31,7 +25,18 @@ const trackRecommendationCardClickOptimizely = (userId, userAttributes = {}) =>
optimizelyInstance.track(eventNames.recommendedCourseClicked, userId, userAttributes);
};
/**
* Fire an optimizely track event for post registration recommendation viewed.
* @param {String} userId user id of authenticated user.
* @param {Object} userAttributes Dictionary of user attributes (optional).
*/
const trackRecommendationViewedOptimizely = (userId, userAttributes = {}) => {
optimizelyInstance.track(eventNames.recommendationsViewed, userId, userAttributes);
};
export {
RECOMMENDATIONS_EXP_VARIATION,
activateRecommendationsExperiment,
trackRecommendationCardClickOptimizely,
trackRecommendationViewedOptimizely,
};

View File

@@ -4,6 +4,7 @@ export const LINK_TIMEOUT = 300;
export const eventNames = {
recommendedCourseClicked: 'edx.bi.user.recommended.course.click',
recommendationsGroup: 'edx.bi.user.recommendations.group',
recommendationsViewed: 'edx.bi.user.recommendations.viewed',
};
@@ -43,7 +44,18 @@ export const trackRecommendationsViewed = (recommendedCourseKeys, isControl, use
);
};
export const trackRecommendationsGroup = (variation, userId) => {
sendTrackEvent(
eventNames.recommendationsGroup, {
variation,
page: 'authn_recommendations',
user_id: userId,
},
);
};
export default {
trackRecommendationsClicked,
trackRecommendationsGroup,
trackRecommendationsViewed,
};